首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AutoIt启动照相机应用程序(Windows 10)

使用AutoIt启动照相机应用程序(Windows 10)
EN

Stack Overflow用户
提问于 2016-08-22 12:56:44
回答 1查看 888关注 0票数 2

我正在尝试使用ShellExecuteWait()启动我的相机应用程序(Windows 10) (因为我希望我的脚本等待我关闭相机应用程序)。但我似乎没办法让它起作用。我从帮助文件中尝试了以下代码:

代码语言:javascript
复制
#include <MsgBoxConstants.au3>

Camera()

Func Camera()
   ;Execute Camera and wait for Camera to close
   Local $iReturn = ShellExecuteWait("notepad.exe")

   ;Display the return value
   MsgBox($MB_SYSTEMMODAL, "", "The return code from Notepad was: " & $iReturn)

EndFunc

这会显示记事本。关闭它时,会出现一个带有返回值的消息框。但是,当我将notepad.exe更改为explorer.exe时,ShellExecuteWait()似乎失败了(消息框立即出现)。

您不能使用Run("camera.exe")在Windows 10上打开相机;与explorer.exe一样,这会失败,消息框将立即出现。

这是我想要工作的代码:

代码语言:javascript
复制
#include <MsgBoxConstants.au3>

Camera()

Func Camera()
   ;Execute Camera and wait for Camera to close
   Local $iReturn = ShellExecuteWait("explorer.exe", "shell:AppsFolder\Microsoft.WindowsCamera_8wekyb3d8bbwe!App")

   ;Display the return value
   MsgBox($MB_SYSTEMMODAL, "", "The return code from Notepad was: " & $iReturn)

EndFunc 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 13:41:34

ShellExecuteWait()可能不能像浏览器这样的服务器级进程那样正常工作。explorer.exe总是在运行。对它的另一个调用只会告诉已经在运行的explorer.exe显示一个额外的窗口(就像许多浏览器不会创建它自己的另一个实例,而只是一个新的选项卡)。您可以使用ProcessExplorer (来自Sysinternals )之类的工具来检查当前的流程层次结构。在这里您可以看到,该记事本实际上是您的autoit脚本的一个子进程,其中explorer.exe仍然是svhost.exe的一个子进程。

你仍然可以尝试这样的方法:

代码语言:javascript
复制
#include <MsgBoxConstants.au3>

Camera()

Func Camera()
   ;Execute Camera and wait for Camera to close
   local $iPID = ShellExecuteWait("explorer.exe", "shell:AppsFolder\Microsoft.WindowsCamera_8wekyb3d8bbwe!App")
   Sleep(3000)
   WinWaitClose("Camera")

   ;Display the return value
   MsgBox($MB_SYSTEMMODAL, "", "The Camera was closed." )

EndFunc

这样,您的脚本就会等待,直到没有更多名为“照相机”的窗口存在。请注意,结果将取决于操作系统语言(例如,对我来说是"Kamera")。您可以使用工具AutoIt窗口信息来查找与语言无关的特性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39080176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档