Просмотр полной версии : Эмуляция клавиши enter
Ребята помогите написать батник или реализовать это по другому!
Значит я запускаю програму и мне надо нажать в ней кнопку, или с эмулировать нажатия кнопки ентер, возможно такое с помощью батника сделать?
на винапи можно(на батнике думаю нельзя):
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
HWND hwnd;
if(hwnd = FindWindow(NULL, TEXT("Пуск")))
{
SendMessage(hwnd, WM_LBUTTONDOWN, NULL, NULL);
}
return 0;
}
а есть программы типа EasyAutoInstaller которые эмулируют нажатия?
Эмуляция нажатий клавиш - как я делал в Delphi...
Пишешь процедурку...
procedure TForm1.SetKey(Key:Integer);
begin
keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
потом вызываешь её когда тебе нужно:
SetKey(13); //ASCII код Enter-а...
Если начнет ругаться - значит какой-то uses нужно добавить... У меня были такие:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, mmsystem;
если программа консольная то и батник сойдет
открой блокнот нажми энтер и сохрани txt файл типа lolo.txt
потом напиши батник start proga.exe < lolo.txt
и будет тебе щастье
если прога оконная то без вин апи тут не обойтись.
Gar|k:
Значит я запускаю програму и мне надо нажать в ней кнопку
есть кнопка, следовательно она не консольная :)
spite, Chaak тебе уже ответил. Компиль, а потом можешь созать батник, который будет прогу запускать :)
на винапи можно(на батнике думаю нельзя):
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
HWND hwnd;
if(hwnd = FindWindow(NULL, TEXT("Пуск")))
{
SendMessage(hwnd, WM_LBUTTONDOWN, NULL, NULL);
}
return 0;
}
функция FindWindow возвращает handle, top-level окна и поэтому такой вариант не всегда будет работать.
BOOL EnumChildWindows( HWND hWndParent,
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);
static BOOL CALLBACK HandleChildWindow(HWND hChildWindow, LPARAM Param)
{
PostMessage(hChildWindow, WM_KEYDOWN, VK_NUMPAD1, 0);
return TRUE;
}
void SimulateKeyDown()
{
HWND hCalcWindow = FindWindow(NULL, "Калькулятор");
if (hCalcWindow != NULL)
{
EnumChildWindows(hCalcWindow, &HandleChildWindow, 0);
}
}
Примерчик для выше указанного ;)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot