Я работаю над программой, которая автоматизирует использование этого программного обеспечения, EPIX XCAP.
В Capture () он привязывает изображение, открывает меню «Файл», открывает диалог сохранения, но затем, когда он достигает вкладок (для перехода к окну имени файла в диалоговом окне сохранения), он не делает их. Я могу достаточно хорошо прокручивать его вручную, и я проверил цикл Type (VK_TAB) в блокноте, и он отлично работал там, поэтому я понятия не имею, почему он не будет работать.
Сначала я пытался использовать SendInput, а не keybd_event, но я не смог заставить его работать с Ctrl / Alt, если вам интересно.
Любая помощь очень ценится.
void Type(int x){
const int KEYEVENT_KEYUP = 0x02;
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENT_KEYUP,0);
}
void Ctrl(int x){
const int KEYEVENT_KEYUP = 0x02;
keybd_event(VK_CONTROL,0,0,0); // press the CTRL key
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENT_KEYUP,0);
keybd_event(VK_CONTROL,0,KEYEVENT_KEYUP,0); // let up the CTRL key
}
void Alt(int x){
const int KEYEVENT_KEYUP = 0x02;
keybd_event(VK_MENU,0,0,0); // press the ALT key
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENT_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENT_KEYUP,0); // let up the ALT key
}
void Shift(int x){
const int KEYEVENT_KEYUP = 0x02;
keybd_event(VK_SHIFT,0,0,0); // press the SHIFT key
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENT_KEYUP,0);
keybd_event(VK_SHIFT,0,KEYEVENT_KEYUP,0); // let up the SHIFT key
}
void Capture(string filename){
Ctrl('S');
Alt(VK_SPACE);
Type(VK_RIGHT);
Type(VK_RETURN);
for(int a = 0; a < 13; a++){
Type(VK_TAB);
}
for(int b = 0; b < filename.length(); b++){
Type(filename[b]);
}
Type(VK_RETURN);
}