В поиск не посылать — перечитал все посты по схожим темам
Суть проблемы: имеется досовская прога, ей надо послать комбинацию клавиш, среди которых есть клавиши управления курсором. В них то все и дело — они игнорируются, хотя остальные клавиши обрабатываются корректно.
О подходе к реализации:
имеется следующий скриптик
var gShell=new ActiveXObject("WScript.Shell");
gShell.run("prog.exe",1,false); // вызов управляемой проги
gShell.run("playkey.exe keystroke.txt",0,true); // вызов управляющей проги
playkey:
int main(int argc, char* argv[])
{
BYTE vk,sc;
FILE *fin=fopen(argv[1],"r");
SleepEx(5000,false);
fread(&vk,sizeof(vk),1,fin);
fread(&sc,sizeof(sc),1,fin);
while (!feof(fin))
{
keybd_event(vk,sc,0,0);
keybd_event(vk,sc,KEYEVENTF_KEYUP,0);
SleepEx(500,false);
fread(&vk,sizeof(vk),1,fin);
fread(&sc,sizeof(sc),1,fin);
}
if (fin!=NULL)
fclose(fin);
return 0;
}
Пробовал из скрипта посылать туже комбинацию:
var gShell=new ActiveXObject("WScript.Shell");
gShell.run("klmgr.exe",1,false);
WScript.Sleep(5000);
gShell.SendKeys("{DOWN}{DOWN}{ENTER}c");
Эффект тот же. Кто-нибудь может посоветовать как добиться обработки сэмулированных нажатий для Дос-прилодений?