Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 将Enter键发送到winAPI中的活动窗口_Windows_Winapi - Fatal编程技术网

Windows 将Enter键发送到winAPI中的活动窗口

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打开了一个流程,如下所示:

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我尝试了您的建议,但仍然不起作用。