ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

C#+WinAPI отправка сообщений в окно
  #1  
Старый 15.04.2010, 10:33
FlyBird
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме:
91186

Репутация: 18
По умолчанию C#+WinAPI отправка сообщений в окно

У меня возникла проблема.
Не получается отправить в окно сообщение о нажатой кнопке F1
Капаюсь уже в таблицах ассема, в лекциях с инста, но разве в них что-то найдешь после 2-х лет перекладывания с места на место.
/
Код:
//**********WinAPI функции*********

        [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)] 
        public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
        public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
        public static extern int DestroyWindow(IntPtr hWnd);

//*********/WinAPI функции*********



**********WinAPI константы*********
        const int BM_SETSTATE = 243; 
        const int WM_LBUTTONDOWN = 513; 
        const int WM_LBUTTONUP = 514; 
        const int WM_KEYDOWN = 256; 
        const int WM_CHAR = 258; 
        const int WM_KEYUP = 257; 
        const int WM_SETFOCUS = 7; 
        const int WM_SYSCOMMAND = 274; 
        const int SC_MINIMIZE = 32;
        const int WM_CLOSE = 0x0010;
//*********/WinAPI константы*********

...
...
...
private void SentMes_Click(object sender, EventArgs e)
{

            IntPtr hWnd = FindWindow(null, comboBox1.SelectedItem.ToString()); 
            IntPtr t1;
            if (hWnd == IntPtr.Zero) 
            { 
                MessageBox(new IntPtr(0), "Not found main", "Error", 0);
                return; 
            }
            

            retValue = SendMessage(hWnd, WM_SETFOCUS, nul, nul);
            retValue = SendMessage(hWnd, WM_KEYDOWN, t1, nul);
            retValue = SendMessage(hWnd, WM_KEYUP, t1, nul);
}
Где-то тут зарылся косяк.
В тестируется все в блокноте. Сообщения о нажатых символах идут. Но если отправить код 112, то напишется буква. Помню, что у системных клавишь 2 кода, но вот хоть убейте, не могу вспомнить второй и как его отправить.

Может кто чем поможет?
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
my.mail.ru отправка сообщений. GreenBear Социальные сети 0 10.03.2010 21:15
Отправка Bluetooth сообщений Fristail Сотовый фрикинг 5 31.10.2009 12:52
Окно с кнопкой на Api je0n Авторские статьи 1 09.11.2006 02:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ