【问题标题】:Autohotkey controlsend in hidden cmdAutohotkey 控制在隐藏的 cmd 中发送
【发布时间】:2016-08-09 01:20:05
【问题描述】:

我的脚本是这样的:

DetectHiddenWindows, On 
Run,%comspec% /k, , hide, pid2 
WinWait, ahk_pid %pid2% 
ControlSend, ,winscp.com script="path\to\script.txt", ahk_pid %pid2% 
sleep,3000 
;-- close hidden DOS window -- 
Process, Close, %pid2% 
Process, WaitClose, %pid2%

但问题是有时控​​件发送工作并发送正确的字母,有时它将双列更改为单列,有时将 winscp.com 更改为 winscp>com 等等,我不知道这些字母有时来自哪里所以任何想法如何解决这个问题并让它总是发送正确的信件因为这真的让我很沮丧并使整个脚本一团糟。

非常感谢

最大

【问题讨论】:

  • 只需使用run, winscp.com script="path\to\script.txt",,hide 并在您的script.txt 中添加exit,而不是该代码。
  • 这是一个很好的解决方案,但我仍然想检测该过程何时完成上传所有数据以继续执行脚本我也是一个好奇的人,如果有人知道,我很想知道为什么会发生这个问题.谢谢。
  • 因此,只需添加一个pid 变量并完全按照您已有的方式使用process, waitclose
  • 这对我来说很完美。我不会再问问题的原因,因为我不会打扰,但如果你不介意,你能告诉我如何添加 pid 来运行命令作为示例吗?
  • 你已经有了,可以看帮助文件:Run, program and arguments, , hide, pid2

标签: cmd autohotkey


【解决方案1】:
DetectHiddenWindows, on

Run, winscp.com script="path\to\script.txt", , hide, pid2

Sleep 6000

Process, close, %pid2%
Process, WaitClose, %pid2%

这是我确保所有上传都已完成并准备好继续执行脚本的最佳方式。

注意:我可以使用带有 /c 命令的 RunWait(替代 sleep 命令)来总结我上面提供的整个脚本,但我担心它仍然会给出我上面提到的相同问题,所以我更喜欢直接使用 run with and process close 和 WaitClose 命令。

最大

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2011-06-19
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多