2013-04-12 2 views
1

Я открыл процесс, используя CreateProcess так:Отправить Enter Нажмите для активных окон в WinAPI

CreateProcess(NULL,"C:\\Program Files (x86)\\Microsoft Office\\OFFICE11\\PPTVIEW.EXE C:\\Users\\DRILON\\Desktop\\a.pps",NULL,NULL,FALSE,0,NULL,NULL,&sai,&pi); 

Как вы можете видеть, этот процесс открывает файл PPs. Теперь я хочу отправить и ввести ключевое нажатие на презентацию (которая изменит слайды). Я пробовал много кодов, но никто не работает. Я пробовал:

HWND powerpoint = GetActiveWindow(); 
PostMessage(powerpoint, WM_KEYDOWN, VK_RETURN, 0); 

Также

SendMessage(powerpoint, WM_KEYDOWN, VkKeyScan('c'), 1); 

Есть ли способ сделать это?

+0

Я решил проблему. Тот, кто сталкивается с той же проблемой, то вот ответ. keybd_event (VK_RETURN, 0x9C, 0, 0); Это отправляет команду keydown в активные widnwos. – Panarit

+1

Нажатие клавиши не является ни одним сообщением. Это два сообщения, и вы не отправляете самое важное сообщение WM_KEYUP. –

+1

Как правило, SendInput() предпочтительнее, чем keybd_event(). –

ответ

1

Вы можете использовать объектную модель PowerPoint, используя эквивалент в вашем языке:

CreateObject("Powerpoint.Application").ActivePresentation.SlideShowWindow.View.Next 
Смежные вопросы