diff --git a/FFmpegResources/avcodec-60.dll b/FFmpegResources/avcodec-61.dll similarity index 85% rename from FFmpegResources/avcodec-60.dll rename to FFmpegResources/avcodec-61.dll index 822a60e..16bef0c 100644 Binary files a/FFmpegResources/avcodec-60.dll and b/FFmpegResources/avcodec-61.dll differ diff --git a/FFmpegResources/avdevice-60.dll b/FFmpegResources/avdevice-61.dll similarity index 66% rename from FFmpegResources/avdevice-60.dll rename to FFmpegResources/avdevice-61.dll index c0f78eb..5305285 100644 Binary files a/FFmpegResources/avdevice-60.dll and b/FFmpegResources/avdevice-61.dll differ diff --git a/FFmpegResources/avfilter-9.dll b/FFmpegResources/avfilter-10.dll similarity index 83% rename from FFmpegResources/avfilter-9.dll rename to FFmpegResources/avfilter-10.dll index 48ac49a..16874ee 100644 Binary files a/FFmpegResources/avfilter-9.dll and b/FFmpegResources/avfilter-10.dll differ diff --git a/FFmpegResources/avformat-60.dll b/FFmpegResources/avformat-61.dll similarity index 67% rename from FFmpegResources/avformat-60.dll rename to FFmpegResources/avformat-61.dll index 016033b..2bfa342 100644 Binary files a/FFmpegResources/avformat-60.dll and b/FFmpegResources/avformat-61.dll differ diff --git a/FFmpegResources/avutil-58.dll b/FFmpegResources/avutil-58.dll deleted file mode 100644 index 61c941a..0000000 Binary files a/FFmpegResources/avutil-58.dll and /dev/null differ diff --git a/FFmpegResources/avutil-59.dll b/FFmpegResources/avutil-59.dll new file mode 100644 index 0000000..cf5fbfa Binary files /dev/null and b/FFmpegResources/avutil-59.dll differ diff --git a/FFmpegResources/ffmpeg.exe b/FFmpegResources/ffmpeg.exe index b2a478c..818f7a2 100644 Binary files a/FFmpegResources/ffmpeg.exe and b/FFmpegResources/ffmpeg.exe differ diff --git a/FFmpegResources/ffplay.exe b/FFmpegResources/ffplay.exe index 99c29e9..d57ec51 100644 Binary files a/FFmpegResources/ffplay.exe and b/FFmpegResources/ffplay.exe differ diff --git a/FFmpegResources/ffprobe.exe b/FFmpegResources/ffprobe.exe index d60c0d8..902e408 100644 Binary files a/FFmpegResources/ffprobe.exe and b/FFmpegResources/ffprobe.exe differ diff --git a/FFmpegResources/postproc-57.dll b/FFmpegResources/postproc-57.dll deleted file mode 100644 index 141cd71..0000000 Binary files a/FFmpegResources/postproc-57.dll and /dev/null differ diff --git a/FFmpegResources/postproc-58.dll b/FFmpegResources/postproc-58.dll new file mode 100644 index 0000000..7810a18 Binary files /dev/null and b/FFmpegResources/postproc-58.dll differ diff --git a/FFmpegResources/swresample-4.dll b/FFmpegResources/swresample-5.dll similarity index 63% rename from FFmpegResources/swresample-4.dll rename to FFmpegResources/swresample-5.dll index 1717818..c4b47a3 100644 Binary files a/FFmpegResources/swresample-4.dll and b/FFmpegResources/swresample-5.dll differ diff --git a/FFmpegResources/swscale-7.dll b/FFmpegResources/swscale-7.dll deleted file mode 100644 index df5153b..0000000 Binary files a/FFmpegResources/swscale-7.dll and /dev/null differ diff --git a/FFmpegResources/swscale-8.dll b/FFmpegResources/swscale-8.dll new file mode 100644 index 0000000..ddabfb0 Binary files /dev/null and b/FFmpegResources/swscale-8.dll differ diff --git a/Langs/Strings.ar-SA.resx b/Langs/Strings.ar-SA.resx index 4dbfca8..76156e6 100644 --- a/Langs/Strings.ar-SA.resx +++ b/Langs/Strings.ar-SA.resx @@ -227,7 +227,7 @@ هذا البرنامج ممكن بفضل -TutorialesVbNET و Flaticon. +TutorialesVbNET FFmpeg و Flaticon. دمج ملف فيديو وملف صوتي واحد diff --git a/Langs/Strings.de-DE.resx b/Langs/Strings.de-DE.resx index 49bd3c0..1f7ac85 100644 --- a/Langs/Strings.de-DE.resx +++ b/Langs/Strings.de-DE.resx @@ -229,7 +229,7 @@ weitere Updates werden bald verfügbar sein! Diese Software wird ermöglicht -durch TutorialesVbNET und Flaticon. +durch TutorialesVbNET, FFmpeg und Flaticon. Video zusammenführen mit nur einer Audio-Datei diff --git a/Langs/Strings.en-US.resx b/Langs/Strings.en-US.resx index a48645a..48417a6 100644 --- a/Langs/Strings.en-US.resx +++ b/Langs/Strings.en-US.resx @@ -227,7 +227,7 @@ are updates coming soon! This software is made possible by -TutorialesVbNET and Flaticon. +TutorialesVbNET, FFmpeg and Flaticon. Merge video and a single audio file diff --git a/Langs/Strings.es-ES.resx b/Langs/Strings.es-ES.resx index 287b582..8dded5f 100644 --- a/Langs/Strings.es-ES.resx +++ b/Langs/Strings.es-ES.resx @@ -227,7 +227,7 @@ habrán más actualizaciones próximante! Este software fue hecho gracias a -TutorialesVbNET y Flaticon. +TutorialesVbNET, FFmpeg y Flaticon. Mezclar solo vídeo y un audio diff --git a/Langs/Strings.fr-FR.resx b/Langs/Strings.fr-FR.resx index 97ef80e..57ac035 100644 --- a/Langs/Strings.fr-FR.resx +++ b/Langs/Strings.fr-FR.resx @@ -232,7 +232,7 @@ de nouvelles mises Ce logiciel est rendu possible -grâce à TutorialesVbNET et Flaticon. +grâce à TutorialesVbNET, FFmpeg et Flaticon. Fusionner une vidéo et un fichier audio unique diff --git a/Langs/Strings.it-IT.resx b/Langs/Strings.it-IT.resx index 03e7a64..7892861 100644 --- a/Langs/Strings.it-IT.resx +++ b/Langs/Strings.it-IT.resx @@ -227,7 +227,7 @@ perche ci saranno altri futuri aggiornamenti! Questo software è stato realizzato grazie a -TutorialesVbNET e Flaticon. +TutorialesVbNET, FFmpeg e Flaticon. Unisci video ed un singolo file audio diff --git a/Langs/Strings.ja-JP.resx b/Langs/Strings.ja-JP.resx index 10465e8..a22bf4b 100644 --- a/Langs/Strings.ja-JP.resx +++ b/Langs/Strings.ja-JP.resx @@ -227,8 +227,9 @@ お見逃しなく! - このソフトウェアはTutorialesVbNETと -Flaticonによって可能になりました。 + このソフトウェアは、TutorialesVbNET、 +FFmpeg、およびFlaticon +のおかげで可能となりました。 ビデオと1つのオーディオファイルをマージする diff --git a/Langs/Strings.pt-BR.resx b/Langs/Strings.pt-BR.resx index a2167dd..cd6ced9 100644 --- a/Langs/Strings.pt-BR.resx +++ b/Langs/Strings.pt-BR.resx @@ -227,7 +227,7 @@ próximas atualizações! Este software é possível por -TutorialesVbNET e Flaticon. +TutorialesVbNET, FFmpeg e Flaticon. Mesclar vídeo e um único arquivo de áudio diff --git a/Langs/Strings.uk-UA.resx b/Langs/Strings.uk-UA.resx index 726d544..743ce22 100644 --- a/Langs/Strings.uk-UA.resx +++ b/Langs/Strings.uk-UA.resx @@ -232,7 +232,7 @@ Це програмне забезпечення стало можливим завдяки -TutorialesVbNET і Flaticon. +TutorialesVbNET, FFmpeg і Flaticon. Об'єднайте відео та лише один аудіофайл diff --git a/Langs/Strings.zh-CN.resx b/Langs/Strings.zh-CN.resx index da6263a..5ddc8a9 100644 --- a/Langs/Strings.zh-CN.resx +++ b/Langs/Strings.zh-CN.resx @@ -226,7 +226,7 @@ 这个软件是由于 -教程VbNET 和 Flaticon。 +教程VbNET FFmpeg 和 Flaticon。 混合视频和只有一个音频文件 diff --git a/README.md b/README.md index 48b7f62..e400ff3 100644 --- a/README.md +++ b/README.md @@ -26,13 +26,13 @@ Simple Screen Recorder is a tool that allows users to record their screen activi - If you check the "Capture all monitors" option, the app is going to record a video with all the monitors connected to the PC.
-- Use the radio buttons to select whether you want to record the audio from both the microphone and desktop audio.
+- In the section **Audio recording method**, use the combobox to select the audio component you want to record, such as desktop audio or a connected microphone.
- Click the "Start Recording" button to begin the screen recording process. The screen recording will begin and the timer in the lower left corner of the window will start counting up.
- To stop the screen recording, click the "Stop Recording" button. The recorded video file will be saved in the "Recordings" folder.
-- When you enter the "Recordings" folder, you'll see the audio and video files separated. Having the files like this is very useful if you want to edit the video and audio tracks with total freedom. However, you also can combine/merge your audio and video files using the "Media Merge" tool. All the merged files will be saved in the "Output Files" folder.
+- When you enter the "Recordings" folder, you'll see the audio and video files separated. Having files like this is very useful if you want to edit the video and audio tracks with total freedom. However, you also can combine/merge your audio and video files using the "Media Merge" tool. All the merged files will be saved in the "Output Files" folder.
- You can also record audio separately. You can record your microphone, desktop audio, or both separately. Select the Audio Recording option in the main window and you can record audio from your PC. The recorded audio files are stored in the "Audio Recordings" folder.
@@ -65,7 +65,7 @@ Where can you install the app?

Demo

- Watch a demo of version 1.2.8 of the app on YouTube: + Watch a demo of the app recording gameplay on YouTube:
Simple-Screen-Recorder app test | C# Project (.NET 8 and WinForms) @@ -74,12 +74,12 @@ Where can you install the app?

Install

- Windows 8, 10, 11 (64 bits) | v1.2.8 | Download directly from GitHub

+ Windows 8, 10, 11 (64 bits) | v1.2.9 | Download directly from GitHub

Uses .Net 8.0 and FFmpeg (ffmpeg-6.1.1-full_build-shared)

Acknowledgments

-

Thanks to Flaticon for the icon and TutorialesVbNET for giving me the idea to create this.

+

Thanks to Flaticon for the icons, FFmpeg for their incredible framework, NAudio, and TutorialesVbNET for giving me the inspiration to create this.

diff --git a/Simple-Screen-Recorder.csproj b/Simple-Screen-Recorder.csproj index 6b225b1..2d44375 100644 --- a/Simple-Screen-Recorder.csproj +++ b/Simple-Screen-Recorder.csproj @@ -9,11 +9,11 @@ enable Simple_Screen_Recorder.Program True - 1.2.8 + 1.2.9 Lextrack Lextrack - 1.2.8 - 1.2.8 + 1.2.9 + 1.2.9 screen recorder.png Resources\screen recorder.ico x64 @@ -146,19 +146,19 @@ - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest @@ -170,13 +170,13 @@ PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest diff --git a/UI/AboutForm.Designer.cs b/UI/AboutForm.Designer.cs index ab56068..7481e95 100644 --- a/UI/AboutForm.Designer.cs +++ b/UI/AboutForm.Designer.cs @@ -66,7 +66,7 @@ private void InitializeComponent() label3.Name = "label3"; label3.Size = new Size(151, 38); label3.TabIndex = 7; - label3.Text = "Simple Screen Recorder\r\nv1.2.8"; + label3.Text = "Simple Screen Recorder\r\nv1.2.9"; // // label2 // diff --git a/UI/AudioRecorderMainWindow.cs b/UI/AudioRecorderMainWindow.cs index 7f8e1b2..fa76d5c 100644 --- a/UI/AudioRecorderMainWindow.cs +++ b/UI/AudioRecorderMainWindow.cs @@ -14,6 +14,8 @@ public partial class AudioRecorderMainWindow : Form private string AudioName = ""; public int ProcessId { get; private set; } + public static string ResourcePath = Path.Combine(Directory.GetCurrentDirectory(), @"FFmpegResources\ffmpeg"); + public AudioRecorderMainWindow() { InitializeComponent(); @@ -44,7 +46,6 @@ private void btnStartRecording_Click(object sender, EventArgs e) RecordAudio(); DisableElementsUI(); RecordFfmpegInitial(); - } private void RecordFfmpegInitial() @@ -62,6 +63,7 @@ private void DisableElementsUI() ComboBoxMicrophone.Enabled = false; ComboBoxSpeaker.Enabled = false; BtnBackScreen.Enabled = false; + comboBoxAudioSourceAudio.Enabled = false; } private void BtnStop_Click(object sender, EventArgs e) @@ -86,6 +88,7 @@ private void StopAudioRec() ComboBoxMicrophone.Enabled = true; ComboBoxSpeaker.Enabled = true; BtnBackScreen.Enabled = true; + comboBoxAudioSourceAudio.Enabled = true; CheckAudioStop(); CheckFfmpegProcces(); @@ -124,34 +127,33 @@ private void RecordAudio() } } - private void CheckAudioStop() { string selectedOption = comboBoxAudioSourceAudio.SelectedItem.ToString(); - if (selectedOption == StringsEN.TwoTrack) + if (selectedOption == StringsEN.TwoTrackAudio) { - if (ScreenAudioMic.waveIn is object) + if (AudioRecorderMic.waveIn is object) { - ScreenAudioMic.waveIn.StopRecording(); + AudioRecorderMic.waveIn.StopRecording(); } - if (ScreenAudioDesktop.waveIn is object) + if (AudioRecorderDesktop.waveIn is object) { - ScreenAudioDesktop.waveIn.StopRecording(); + AudioRecorderDesktop.waveIn.StopRecording(); } } - else if (selectedOption == StringsEN.Desktop) + else if (selectedOption == StringsEN.DesktopAudio) { - if (ScreenAudioDesktop.waveIn is object) + if (AudioRecorderDesktop.waveIn is object) { - ScreenAudioDesktop.waveIn.StopRecording(); + AudioRecorderDesktop.waveIn.StopRecording(); } } - else if (selectedOption == StringsEN.Microphone) + else if (selectedOption == StringsEN.MicrophoneAudio) { - if (ScreenAudioMic.waveIn is object) + if (AudioRecorderMic.waveIn is object) { - ScreenAudioMic.waveIn.StopRecording(); + AudioRecorderMic.waveIn.StopRecording(); } } @@ -187,7 +189,7 @@ private static void RecSpeaker() AudioRecorderDesktop.Cleanup(); AudioRecorderDesktop.CreateWaveInDevice(); - var soundPlayer = new System.Media.SoundPlayer(Properties.Resources.Background); + var soundPlayer = new System.Media.SoundPlayer(Resources.Background); soundPlayer.PlayLooping(); AudioRecorderDesktop.outputFilename = "SystemAudio." + Strings.Format(DateTime.Now, "MM-dd-yyyy.HH.mm.ss") + ".wav"; @@ -200,6 +202,12 @@ private void btnOutputRecordings_Click(object sender, EventArgs e) Process.Start("explorer.exe", "AudioRecordings"); } + private void CountRecAudio_Tick(object sender, EventArgs e) + { + var Difference = DateTime.Now.Subtract(TimeRec); + LbTimer.Text = "Rec: " + Difference.Hours.ToString().PadLeft(2, '0') + ":" + Difference.Minutes.ToString().PadLeft(2, '0') + ":" + Difference.Seconds.ToString().PadLeft(2, '0'); + } + private void GetTextsMain() { Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Settings.Default.Languages); @@ -222,6 +230,7 @@ private void GetTextsMain() comboBoxAudioSourceAudio.Items.Add(StringsEN.MicrophoneAudio); comboBoxAudioSourceAudio.SelectedIndex = selectedIndex; } + private void LoadUserSettingsCombobox() { comboBoxAudioSourceAudio.SelectedIndex = Settings.Default.AudioRecordingSourceIndex; @@ -240,15 +249,17 @@ private void AudioRecorderMainWindow_FormClosed(object sender, FormClosedEventAr private void BtnBackScreen_Click(object sender, EventArgs e) { - this.Close(); - RecorderScreenMainWindow backscreenrec = new RecorderScreenMainWindow(); - backscreenrec.Show(); - } - private void CountRecAudio_Tick(object sender, EventArgs e) - { - var Difference = DateTime.Now.Subtract(TimeRec); - LbTimer.Text = "Rec: " + Difference.Hours.ToString().PadLeft(2, '0') + ":" + Difference.Minutes.ToString().PadLeft(2, '0') + ":" + Difference.Seconds.ToString().PadLeft(2, '0'); + if (btnStartRecording.Enabled == false) + { + System.Windows.MessageBox.Show(StringsEN.message2, "Error"); + } + else + { + this.Close(); + RecorderScreenMainWindow backscreenrec = new RecorderScreenMainWindow(); + backscreenrec.Show(); + } } } } diff --git a/UI/MergeAllMediaForm.cs b/UI/MergeAllMediaForm.cs index 81089e4..826d4a6 100644 --- a/UI/MergeAllMediaForm.cs +++ b/UI/MergeAllMediaForm.cs @@ -57,7 +57,7 @@ private void BtnVideo_Click(object sender, EventArgs e) var archivo = new OpenFileDialog(); archivo.InitialDirectory = recordingsFolder; archivo.Filter = "Video files|*.avi;*.mkv;*.wmv|All files|*.*"; - archivo.Multiselect = false; // Solo permite la selección de un archivo + archivo.Multiselect = false; if (archivo.ShowDialog() == DialogResult.OK) { @@ -77,7 +77,7 @@ private void BtnDeskAudio_Click(object sender, EventArgs e) var archivo = new OpenFileDialog(); archivo.InitialDirectory = recordingsFolder; archivo.Filter = "Audio files|*.wav;*.aac|All files|*.*"; - archivo.Multiselect = false; // Solo permite la selección de un archivo + archivo.Multiselect = false; if (archivo.ShowDialog() == DialogResult.OK) { @@ -97,7 +97,7 @@ private void BtnMicAudio_Click(object sender, EventArgs e) var archivo = new OpenFileDialog(); archivo.InitialDirectory = recordingsFolder; archivo.Filter = "Audio files|*.wav;*.aac|All files|*.*"; - archivo.Multiselect = false; // Solo permite la selección de un archivo + archivo.Multiselect = false; if (archivo.ShowDialog() == DialogResult.OK) { diff --git a/UI/RecorderScreenMainWindow.cs b/UI/RecorderScreenMainWindow.cs index 8c57be0..d20332a 100644 --- a/UI/RecorderScreenMainWindow.cs +++ b/UI/RecorderScreenMainWindow.cs @@ -40,11 +40,6 @@ private void Form1_Load(object sender, EventArgs e) InitializeForm(); } - private void SetKeyPreview() - { - this.KeyPreview = true; - } - private void CreateOutputFolder() { string outputFolderPath = Path.Combine(Application.StartupPath, "OutputFiles"); @@ -72,8 +67,6 @@ private void InitializeComboBoxes() } - - private void OpenAudioComponents() { ScreenAudioMic.OpenComp(); @@ -125,68 +118,6 @@ private void CheckBoxAllMonitors_CheckedChanged(object sender, EventArgs e) } } - #region Testing things in VideoCodecs - /*private void StartRecordingProcess(string codec, int fps, string bitrate, string screenArgs) - { - try - { - string ffmpegArgs = $"{ResourcePath} -f gdigrab -framerate {fps} {screenArgs} -c:v {codec} -b:v {bitrate} Recordings/{VideoName}"; - - ProcessStartInfo processInfo = new("cmd.exe", $"/c {ffmpegArgs}") - { - WindowStyle = ProcessWindowStyle.Hidden, - CreateNoWindow = true, - RedirectStandardOutput = true - }; - Process.Start(processInfo); - } - catch (Exception ex) - { - MessageBox.Show($"Failed to start recording: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void VideoCodecs() - { - int fps = int.Parse((string)comboBoxFps.SelectedItem); - string bitrate = (string)comboBoxBitrate.SelectedItem; - string codecArgs; - string codec; - - if (CheckBoxAllMonitors.Checked) - { - codecArgs = "-i desktop"; - } - else - { - Screen selectedScreen = Screen.AllScreens[comboBoxMonitors.SelectedIndex]; - Rectangle bounds = selectedScreen.Bounds; - codecArgs = $"-offset_x {bounds.Left} -offset_y {bounds.Top} -video_size {bounds.Width}x{bounds.Height} -i desktop"; - } - - switch (comboBoxCodec.SelectedItem.ToString()) - { - case "H264 (Default)": - codec = "h264_mf -qp 0"; - break; - case "MPEG-4": - codec = "mpeg4 -preset medium"; - break; - case "H264 NVENC (Nvidia)": - codec = "h264_nvenc -qp 0"; - break; - case "H264 AMF (AMD)": - codec = "h264_amf -qp 0"; - break; - default: - codec = "h264_mf -qp 0"; - break; - } - - StartRecordingProcess(codec, fps, bitrate, codecArgs); - }*/ - #endregion - private void VideoCodecs() { if (CheckBoxAllMonitors.Checked == true) @@ -404,7 +335,7 @@ private static void RecSpeaker() ScreenAudioDesktop.Cleanup(); ScreenAudioDesktop.CreateWaveInDevice(); - var soundPlayer = new System.Media.SoundPlayer(Properties.Resources.Background); + var soundPlayer = new System.Media.SoundPlayer(Resources.Background); soundPlayer.PlayLooping(); ScreenAudioDesktop.outputFilename = "SystemAudio." + Strings.Format(DateTime.Now, "MM-dd-yyyy.HH.mm.ss") + ".wav"; @@ -412,6 +343,68 @@ private static void RecSpeaker() ScreenAudioDesktop.waveIn.StartRecording(); } + #region Testing things with VideoCodecs + /*private void StartRecordingProcess(string codec, int fps, string bitrate, string screenArgs) + { + try + { + string ffmpegArgs = $"{ResourcePath} -f gdigrab -framerate {fps} {screenArgs} -c:v {codec} -b:v {bitrate} Recordings/{VideoName}"; + + ProcessStartInfo processInfo = new("cmd.exe", $"/c {ffmpegArgs}") + { + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + RedirectStandardOutput = true + }; + Process.Start(processInfo); + } + catch (Exception ex) + { + MessageBox.Show($"Failed to start recording: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void VideoCodecs() + { + int fps = int.Parse((string)comboBoxFps.SelectedItem); + string bitrate = (string)comboBoxBitrate.SelectedItem; + string codecArgs; + string codec; + + if (CheckBoxAllMonitors.Checked) + { + codecArgs = "-i desktop"; + } + else + { + Screen selectedScreen = Screen.AllScreens[comboBoxMonitors.SelectedIndex]; + Rectangle bounds = selectedScreen.Bounds; + codecArgs = $"-offset_x {bounds.Left} -offset_y {bounds.Top} -video_size {bounds.Width}x{bounds.Height} -i desktop"; + } + + switch (comboBoxCodec.SelectedItem.ToString()) + { + case "H264 (Default)": + codec = "h264_mf -qp 0"; + break; + case "MPEG-4": + codec = "mpeg4 -preset medium"; + break; + case "H264 NVENC (Nvidia)": + codec = "h264_nvenc -qp 0"; + break; + case "H264 AMF (AMD)": + codec = "h264_amf -qp 0"; + break; + default: + codec = "h264_mf -qp 0"; + break; + } + + StartRecordingProcess(codec, fps, bitrate, codecArgs); + }*/ + #endregion + private void DisableElementsUI() { comboBoxMonitors.Enabled = false; @@ -420,12 +413,12 @@ private void DisableElementsUI() ComboBoxSpeaker.Enabled = false; comboBoxCodec.Enabled = false; comboBoxFps.Enabled = false; - CheckBoxAllMonitors.Enabled = false; ComboBoxFormat.Enabled = false; RefreshMonitors.Enabled = false; menuStrip1.Enabled = false; comboBoxBitrate.Enabled = false; + comboBoxAudioSource.Enabled = false; } private void StopRec() @@ -435,13 +428,13 @@ private void StopRec() ComboBoxMicrophone.Enabled = true; ComboBoxSpeaker.Enabled = true; comboBoxMonitors.Enabled = true; - comboBoxFps.Enabled = true; CheckBoxAllMonitors.Enabled = true; ComboBoxFormat.Enabled = true; RefreshMonitors.Enabled = true; menuStrip1.Enabled = true; comboBoxBitrate.Enabled = true; + comboBoxAudioSource.Enabled = true; CheckAudioStop(); CheckFfmpegProcces(); @@ -508,12 +501,12 @@ private void GetTextsMain() labelMonitorSelector.Text = StringsEN.labelMonitorSelector; btnMergedFiles.Text = StringsEN.btnMergedFiles; - int selectedIndex = comboBoxAudioSource.SelectedIndex; // Guardar el índice seleccionado + int selectedIndex = comboBoxAudioSource.SelectedIndex; comboBoxAudioSource.Items.Clear(); comboBoxAudioSource.Items.Add(StringsEN.TwoTrack); comboBoxAudioSource.Items.Add(StringsEN.Desktop); comboBoxAudioSource.Items.Add(StringsEN.Microphone); - comboBoxAudioSource.SelectedIndex = selectedIndex; // Restaurar el índice seleccionado + comboBoxAudioSource.SelectedIndex = selectedIndex; } @@ -664,7 +657,11 @@ private void RecorderScreenMainWindow_KeyDown(object sender, KeyEventArgs e) { BtnExit.PerformClick(); } + } + private void SetKeyPreview() + { + this.KeyPreview = true; } } } \ No newline at end of file