ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.04.2010, 13:05
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Похоже на то, что мне нужно. Спасибо, буду дальше махиначить
|
|
|

22.04.2010, 11:00
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
И все же это чуточку не то.
У него такого же рода проблема. Список констант, которые вроде пашут, а вроде и нет.
|
|
|

22.04.2010, 12:07
|
|
Новичок
Регистрация: 24.07.2009
Сообщений: 9
Провел на форуме: 229875
Репутация:
10
|
|
Эм...
SendKeys.Send("{F1}");
или я что то не понимаю)
|
|
|

23.04.2010, 18:57
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Что-то тогда не ясно, как отправить это окну, которое в фокусе.
|
|
|

23.04.2010, 20:27
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Решение найдено.
Вилка прав(а)
http://msdn.microsoft.com/en-us/library/ms171548.aspx
|
|
|

17.05.2010, 10:21
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Что-то замучала эта задачка.
Когда идет посылка SendKeys.Send("{F1}"); приходится ждать ответа.
А я хочу слать кажду секунду сообщение о нажатой кнопке .
|
|
|

17.05.2010, 10:51
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
DDoS какой-то.
надо учитывать что SendKeys отправляет сообщение активному окну.
чтобы не ждать "ответа" нужно асинхронно посылать сообщения.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

17.05.2010, 10:52
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Неее... можно выставить, что типо окно в фокусе и слать ему сообщения, хотя ты его сам активным не делаешь.
|
|
|

17.05.2010, 15:48
|
|
Познающий
Регистрация: 15.07.2009
Сообщений: 71
Провел на форуме: 520157
Репутация:
35
|
|
Сообщение от FlyBird
Что-то замучала эта задачка.
Когда идет посылка SendKeys.Send("{F1}"); приходится ждать ответа.
А я хочу слать кажду секунду сообщение о нажатой кнопке .
FlyBird, если не охота ждать то посылай сообщения через PostMessage, так сообщения ставятся в очередь и ты сразу получишь управления после вызова функции, при использовании SendMessage сообщения отправляются на прямую, и тебе придется ждать...
Раз ты проверял все на блокноте то небольшой пример, правда на Delphi
Код:
procedure TFormMain.Button1Click(Sender: TObject);
var
hWnd,hChild: THandle;
begin
// Ещем окно с классом 'Notepad'
hWnd:= FindWindowA('Notepad',nil);
if hWnd<>0 then begin
hChild:= FindWindowExA(hWnd,0,'Edit',nil); // Ищем текстовое поле
if hChild<>0 then begin
SendMessage(hChild, WM_CHAR, Word('-'), 0); // Посылаем символ "-"
PostMessage(hChild, WM_KEYDOWN, VK_RETURN, 0); // Переводим строку
end;
PostMessage(hWnd, WM_KEYDOWN, VK_F5, 0); // Посылаем главному окну о нажатии клавиши F5
end else
ShowMessage('Notepad not found');
end;
|
|
|

20.05.2010, 11:17
|
|
Познающий
Регистрация: 14.10.2007
Сообщений: 47
Провел на форуме: 91186
Репутация:
18
|
|
Сообщение от alexey-m
FlyBird, если не охота ждать то посылай сообщения через PostMessage, так сообщения ставятся в очередь и ты сразу получишь управления после вызова функции, при использовании SendMessage сообщения отправляются на прямую, и тебе придется ждать...
Раз ты проверял все на блокноте то небольшой пример, правда на Delphi
Код:
procedure TFormMain.Button1Click(Sender: TObject);
var
hWnd,hChild: THandle;
begin
// Ещем окно с классом 'Notepad'
hWnd:= FindWindowA('Notepad',nil);
if hWnd<>0 then begin
hChild:= FindWindowExA(hWnd,0,'Edit',nil); // Ищем текстовое поле
if hChild<>0 then begin
SendMessage(hChild, WM_CHAR, Word('-'), 0); // Посылаем символ "-"
PostMessage(hChild, WM_KEYDOWN, VK_RETURN, 0); // Переводим строку
end;
PostMessage(hWnd, WM_KEYDOWN, VK_F5, 0); // Посылаем главному окну о нажатии клавиши F5
end else
ShowMessage('Notepad not found');
end;
Спасибо большое за ответ.
За пару дней до вашего я все же достиг того, что нужно. Помогли на одном форуме. Я что-то совсем про ПОСТ забыл.
Даже был вариант самому себе посылать подтверждение, но потом напомнили про ПОСТ. WipAPI только в инсте проходил и ни шагу дальше.
Пример кода.
Код:
if (hWnd == IntPtr.Zero)
{
MessageBox.Show("Процесс не найден", "FlyBird(Ошибка)");
return;
}
IntPtr hEdit = FindWindowEx(hWnd, IntPtr.Zero, "Edit", "");
if (hEdit == IntPtr.Zero)
{
MessageBox.Show("Not found child", "Error");
return;
}
IntPtr t1 = (IntPtr)ComBoxSelectItem_1;
IntPtr nul = IntPtr.Zero;
//PostMessage(hWnd, WM_KEYUP, t1, nul);
PostMessage(hWnd, WM_KEYDOWN, t1, nul);
Теперь проблема в том, как достучаться до меню сторонний программы и отправить команду на выполнения поункта меню и дальше вбить в TextBox нужные символы и нажать Button.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|