Handle окна - C#
Формулировка задачи:
Привет всем. Хотел бы чтобы программа получила доступ к игре Gta san Andreas ( для игры по сети через клиент Samp ). В игре через клиент пишется сообщение через F6 и отправляется нажатием ENTER. У меня в программе есть кнопка допустим "посадить игрока" и edit1 нужно чтобы пользователь вводил id игрока в edit1 и нажимал кнопку "посадить игрока" ( iD он знает сам ). Пример: команда /jail ID
Вроде нужно: 3 длл на импорт библиотек вин апи, ешё штук пять для поиска и фокусировки окна, ну и для отправки кнопок в это окно. Пожалуйста дайте код. Желательно весь!
Решение задачи: «Handle окна»
textual
Листинг программы
const int WM_KEYDOWN = 256;
const int WM_KEYUP = 257;
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string _ClassName, string _WindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
private static extern IntPtr FindWindowEx(IntPtr hwndPrnt, IntPtr hwndChildAfter, string _ClassName, string _WindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
private void Post()
{
IntPtr hWnd = FindWindow(null, "Безымянный - Блокнот");
if (hWnd == IntPtr.Zero)
{
MessageBox.Show("Not found main", "Error");
return;
}
IntPtr hEdit = FindWindowEx(hWnd, IntPtr.Zero, "Edit", "");
if (hEdit == IntPtr.Zero)
{
MessageBox.Show("Not found child", "Error");
return;
}
IntPtr t1 = (IntPtr)Keys.F5;
IntPtr nul = IntPtr.Zero;
PostMessage(hEdit, WM_KEYUP, t1, nul);
PostMessage(hEdit, WM_KEYDOWN, t1, nul);
}