Вот код, который у меня есть: < /p>
public string selectedProgram;
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, Rectangle rect);
private void button2_Click(object sender, EventArgs e)
{
Process[] process = Process.GetProcesses();
foreach (var p in process)
{
selectedProgram = listView1.SelectedItems.ToString();
Rectangle bounds = new Rectangle();
GetWindowRect(Handle, bounds);
Bitmap bmp = new Bitmap(bounds.Width, bounds.Height);
using (var gfx = Graphics.FromImage(bmp))
{
gfx.CopyFromScreen(bounds.Location, Point.Empty, bounds.Size);
pictureBox1.Image = bmp;
frm2.Show();
frm2.pictureBox1.Image = pictureBox1.Image;
}
}
}
< /code>
Я получаю ошибку или какое -то зеленое выделение на getWindowRect (Handle, Bonds); < /code> с надписью: < /p>
Вызов к функции Pinvoke Функция 'Shot! Shot! ForceFormSapplication1.form3 :: getWindowRect' снял стек. Вероятно, это связано с тем, что управляемая подпись Pinvoke не соответствует неуправляемой целевой подписи. Убедитесь, что вызовая соглашение и параметры подписи Pinvoke совпадают с целевой неуправляемой подписью.>
Подробнее здесь: https://stackoverflow.com/questions/113 ... ation-in-c