Как заставить FindWindow работать?
System.TypeLoadException: "Не удалось загрузить тип "Nioka.Form1" из сборки "Nioka, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", так как метод "FindWindow" не имеет реализации (не имеет RVA)."
код
using System;
using System.Windows.Forms;
namespace Nioka
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public static extern IntPtr FindWindow(string lp1, string lp2);
public void ControlAnotherProgram()
{
string notepad = "Notepad";
//находим хендл главного окна
IntPtr mainWindow = FindWindow(notepad, null);
}
}
}
Как заставить FindWindow работать?
Ответы (2 шт):
Автор решения: Qwertiy
→ Ссылка
Атрибут кто писать будет?
[DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
Порядок аргументов тоже немного другой, если искать по названию окна
IntPtr mainWindow = FindWindow(null, notepad);
Автор решения: Nstr
→ Ссылка
Заработало. Написал вот так
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Nioka
{
public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ControlAnotherProgram();
}
public void ControlAnotherProgram()
{
Console.WriteLine("Standard Numeric Format Specifiers");
string notepad = "Notepad";
//находим хендл главного окна
IntPtr mainWindow = FindWindow(notepad, null);
}
}
}
Добавил
using System.Runtime.InteropServices;