Захват и сохранение изображения по определенному пути - PullRequest
0 голосов
/ 10 апреля 2019

Попытка создать программу, которая будет делать скриншоты экранов моих мониторов и сохранять их по пути, который я определю с помощью кнопки, см. Button1_Click.Затем я сохраняю его в настройках свойств и загружаю его каждый раз, когда запускается программа, однако, несмотря на то, что в TakeScreenshotBtn_Click, где находится bmpScreen.Save, я не могу сохранить его по определенному пути.Либо он сохранит его там, где работает .exe, либо просто ничего не будет делать.Я использовал @ label2.text.Выдает ошибку GDI +.

Экран захвата:

var bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                              Screen.PrimaryScreen.Bounds.Height,
                              PixelFormat.Format32bppArgb);
var gfxScreenshot = Graphics.FromImage(bmpScreenshot);

gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
                                Screen.PrimaryScreen.Bounds.Y,
                                0,
                                0,
                                Screen.PrimaryScreen.Bounds.Size,
                                CopyPixelOperation.SourceCopy);
                LogTxtBox.AppendText("[#] Captured whole monitor." + Environment.NewLine);
                await Task.Delay(1000);
                label2.Text = Properties.Settings.Default.SavingPath.ToString();
                bmpScreenshot.Save(label2.Text + "Capture-" + DateTime.Now.ToString("yyyy-MM-dd-h-mm-tt") + ".png", ImageFormat.Png);

                LogTxtBox.AppendText("[#] Saved screenshot under name : " + DateTime.Now.ToString("yyyy-MM-dd-h-mm-tt") + Environment.NewLine);

Установить путь:

DialogResult result = SetFolderPath.ShowDialog();
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(SetFolderPath.SelectedPath)) {
    string Path = SetFolderPath.SelectedPath;
    ClickNShare.Properties.Settings.Default.SavingPath = Path;
    ClickNShare.Properties.Settings.Default.Save();
    MessageBox.Show("Path set to: " + Path.ToString(), "Path set!", MessageBoxButtons.OK, MessageBoxIcon.Information);
    LogTxtBox.AppendText("[#] Path set to: " + Path.ToString() + Environment.NewLine);
}
...