Windows 将Enter键发送到winAPI中的活动窗口
我使用CreateProcess打开了一个流程,如下所示:Windows 将Enter键发送到winAPI中的活动窗口,windows,winapi,Windows,Winapi,我使用CreateProcess打开了一个流程,如下所示: 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文件。现在我想发送并输入演示文稿的按键(这将更改幻灯片)。我试过很多代码
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);
也
有办法做到这一点吗?您可以使用PowerPoint的对象模型,使用您的语言中的等效对象:
CreateObject("Powerpoint.Application").ActivePresentation.SlideShowWindow.View.Next
您可以使用PowerPoint的对象模型,使用您语言中的等效对象:
CreateObject("Powerpoint.Application").ActivePresentation.SlideShowWindow.View.Next
我解决了这个问题。无论谁面临同样的问题,这里都是答案。keybd_事件(VK_返回,0x9C,0,0);这会向活动的widnwos发送一个keydown命令。按键不是一条消息。这是两条消息,您没有发送最重要的消息,即WM_KEYUP消息。通常,SendInput()比keybd_event()更受欢迎。我很确定有一些COM API比只发送按键要好。@CareyGregory我尝试了您的建议,但仍然不起作用。我解决了问题。无论谁面临同样的问题,这里都是答案。keybd_事件(VK_返回,0x9C,0,0);这会向活动的widnwos发送一个keydown命令。按键不是一条消息。这是两条消息,您没有发送最重要的消息,即WM_KEYUP消息。通常,SendInput()比keybd_event()更受欢迎。我很确定有一些COM API比只发送按键更好。@CareyGregory我尝试了您的建议,但仍然不起作用。