【使用AppActivate更改活动窗口】上下观古今,起伏千万途。这篇文章主要讲述使用AppActivate更改活动窗口相关的知识,希望能为你提供帮助。
我正在尝试向程序发送一些按键。我在下面有一些示例代码可以正常工作,直到最后的{Alt}
命令。我相信这是因为窗口名称从"Notepad1"
变为"NotePad2"
。在AppActivate
命令之后,有人可以帮我改变"Notepad2"
路径到objShell.SendKeys "{Enter}"
吗?
例:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "Notepad.exe"
Do Until Success = True
Success = objShell.AppActivate("NotepadPathA")
Loop
objShell.SendKeys "{F1}"
objShell.SendKeys "Secure06**"
objShell.SendKeys "{Enter}"
Shell.SendKeys "{Alt}"
答案每个Windows进程都有一个标识符。如果存储每个记事本窗口的进程ID,则可以避免在标题更改后找到正确的窗口。
以下是打开两个记事本文件的示例,按进程ID和发送密钥激活。
Set objShell = WScript.CreateObject("WScript.Shell")Function SendKeysTo (process, keys, wait)
objShell.AppActivate(process.ProcessID)
objShell.SendKeys keys
WScript.Sleep wait
End FunctionSet notepadA= objShell.Exec("notepad")
Set notepadB= objShell.Exec("notepad")
WScript.Sleep 500SendKeysTo notepadA, "Hello I am Notepad A", 1000
SendKeysTo notepadB, "Hello I am Notepad B", 1000
希望你能采取类似的方法来解决你的问题。
另一答案
- 你在最后一行使用
Shell
,但你没有定义它。改为将其改为objShell
。 - 要发送
Alt
密钥,请使用"%"
。例如:objShell.SendKeys "%"
您通常会在组合键中使用它。例如,要在大多数程序中打开File
菜单,您可以使用Alt
+F
,或者:objShell.SendKeys "%f"
- 如果您的窗口标题发生变化,或者您因任何原因需要激活新窗口,请再次调用
AppActivate
:objShell.AppActivate "My new window title"
推荐阅读
- 查找JApplet的宽度和高度
- 以编程方式测试是否在Android 10+中禁用了旧版外部存储访问
- Powershell(类似Haskell的$(apply)运算符())
- 任务执行失败'(app:transformDexArchiveWithExternalLibsDexMergerForDebug')
- 构建Android时会忽略make -j(jobs)选项(默认为所有核心)
- 升级Android Studio 3.1.2后,ProGuard配置解析器出错()
- Android studio安装APK在手机上但无法找到该应用程序
- 下一代技术如何帮助当今防止欺诈
- AR Apps开发人员的7个基本技能