![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Код:
procedure flood();
begin
wnd := form1.combobox1.ItemIndex;
PostMessage(wnd,WM_SETFOCUS,0,0);
setforegroundwindow(wnd);
{#1}keybd_event(ord('F'),0, 0, 0);
sleep(700);
keybd_event(ord('F'),0, KEYEVENTF_KEYUP, 0);
inp.ki.dwFlags:=0;
{ for i := 1 to 10 do
begin
SendInput(70, inp, SizeOf(inp));
end;
showmessage('DONE'); }
Application.ProcessMessages;
{#2} SendMessage(wnd,WM_KEYUP,VK_F1,0); //не пашет
{#3} inp.Itype:=INPUT_KEYBOARD;
inp.ki.wVk:= Ord(UpCase('F'));
Inp.ki.dwFlags:=0;
SendInput(1, Inp, SizeOf(Inp));
sleep(700);
Inp.ki.dwFlags := KEYEVENTF_KEYUP;
SendInput(1, Inp, SizeOf(Inp));//не пашет
{#4} PostMessage(wnd,WM_KEYUP,VK_F1,0); //не пашет
end;
procedure TForm1.Action1Execute(Sender: TObject);
begin
flood;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
combobox1.clear;
wnd := GetWindow(handle, gw_hwndfirst);
while wnd <> 0 do
begin // Не показываем:
if (wnd <> Application.Handle) // Собственное окно
and IsWindowVisible(wnd) // Невидимые окна
and (GetWindow(wnd, gw_owner) = 0) // Дочерние окна
and (GetWindowText(wnd, buff, SizeOf(buff)) <> 0) then
begin
GetWindowText(wnd, buff, SizeOf(buff));
combobox1.Items.Add(StrPas(buff));
end;
wnd := GetWindow(wnd, gw_hwndnext);
end;
combobox1.ItemIndex := 0;
end;так клавиша не нажимается, уже как только не перепробывал... Последний раз редактировалось AD0, 21.02.2013 в 11:16. |
|
#2
|
||||
|
||||
|
Цитата:
(keybd_event) сразу две клавиши: Код:
procedure CtrlV; begin keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0); keybd_event(86, 0, KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); keybd_event(86, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end; Код:
procedure psl(ds: word; vs: boolean); var b: array [0..1] of TInput; begin FillChar(b, SizeOf(b), 0); b[0].Itype:= INPUT_KEYBOARD; b[1].Itype:= INPUT_KEYBOARD; if vs then begin b[0].ki.wScan:= ds; b[0].ki.dwFlags:= 4; b[1].ki.wScan:= ds; b[1].ki.dwFlags:= 4 or 2; end else begin b[0].ki.wVk:= ds; b[1].ki.wVk:= ds; b[1].ki.dwFlags:= 2; end; SendInput(Length(b), b[0], SizeOf(TInput)); end; Последний раз редактировалось Alegun, 21.02.2013 в 11:41. |
|
#3
|
|||
|
|||
|
не работает
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
|||
|
|||
|
wnd := FindWindow(nil,pansichar(form1.listbox1.items[form1.listbox1.itemindex]));
все добил забыл строку, брал из старого проекта работающего с процессами, вместо листбокса юзайте комбобокс =) |