找回密码
 加入
搜索
查看: 5962|回复: 7

[AU3基础] [已解决]远程桌面中运行脚本出错的问题

  [复制链接]
发表于 2012-4-7 01:28:39 | 显示全部楼层 |阅读模式
本帖最后由 devcon 于 2012-4-9 14:26 编辑

脚本在本地运行正常,通过VNC控制,在局域网另一台机器里运行也正常(即使一运行脚本就关掉或最小化VNC控制窗口);

通过XP的远程桌面在广域网上的VPS中运行脚本就会出现问题:如果始终开着远程桌面的窗口,那么能看到脚本运行正常;但是一旦脚本运行过程中,远程桌面窗口被切换而不在最前,或被最小化,或关闭,过段时间再打开远程桌面的窗口,就会发现脚本运行出错,仿佛被暂停或干扰了一样。

搜了一下论坛,发现几年前的旧帖就提到了类似问题:

远程桌面总是失效

在远程桌面中执行脚本无效

远程桌面中运行脚本无效,能够有另外的写法吗?

原帖都已无法跟帖,在此附上自己的问题,一并提出,希望有知道原委的朋友能不吝指点一下,多谢!

评分

参与人数 1金钱 +15 收起 理由
afan + 15 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-4-7 01:46:11 | 显示全部楼层
VNC是直接SHOW出远程电脑的桌面,对方如果有权限执行你的脚本,当然会完成,而XP的远程桌面是交互式登陆,是以你这边的账号密码验证登陆,然后执行你的脚本,如果你VNC联过去或者直接看对方的屏幕,我不知道会不会有你脚本的进程,但你断开连接的同时,脚本肯定应该也中断执行了
 楼主| 发表于 2012-4-7 13:12:47 | 显示全部楼层
本帖最后由 devcon 于 2012-4-7 13:30 编辑
VNC是直接SHOW出远程电脑的桌面,对方如果有权限执行你的脚本,当然会完成,而XP的远程桌面是交互式登陆,是 ...
502762378 发表于 2012-4-7 01:46

可能没理解我的意思。我的脚本都是放在服务器端在运行的,和我本人登录与否无关,我用vnc或RDP登录也只是查看方式的不同。
昨晚搜了下国外的资料,发现有好多关于这个问题的提问,也没什么很好的解决方案。
基本上,问题的出现和远程服务器是否有物理屏幕很有关系,当RDP桌面被最小化或关闭时,和屏幕、窗口定位有关的命令,诸如winactivate,还有send命令,都会相应地挂起。而用vnc查看的局域网内的机器,本身有显示屏,所以我的vnc客户端窗口关不关都不影响它上面的脚本执行;远程的vps就不同了,一旦我监控窗口最小化或关闭,远端的机器就相当于被拿掉了屏幕,于是就出了问题。
附几个有关的e文链接:
http://kb.froglogic.com/display/ ... ws+without+a+screen

http://blog.smartbear.com/post/1 ... te-desktop-windows/

http://www.autoitscript.com/foru ... ng-in-rdp-sessions/
发表于 2012-4-7 16:09:17 | 显示全部楼层
回复 1# devcon
前两个月, 我写了个脚本, 是需要在远程计算机上模拟键盘操作.
我也发现了你现在这个'运行'问题.
我的解决方法是这样, 从本机先远程第一台机器, 再通过这台机器远程要执行脚本的机器,
最后运行脚本!  
保留第一吧机器上的远程窗口,  从本机关闭到第一吧机器的远程.
这样脚本还会持续正常工作!

不知听明白没?  需要3台机器, 一台是'中转'机器!
发表于 2012-4-7 16:10:55 | 显示全部楼层
对了, 如果执行脚本的机器还经常被访问,  那么应该专门再建立一个帐户来'独立'远程并执行脚本!
 楼主| 发表于 2012-4-8 18:26:36 | 显示全部楼层
回复  devcon
前两个月, 我写了个脚本, 是需要在远程计算机上模拟键盘操作.
我也发现了你现在这个'运行' ...
user3000 发表于 2012-4-7 16:09


谢谢,明白意思,外文资料里也提到了此法,因为需要一台额外的机器进行中转,所以我感觉这法子是不得已的无奈之举。
发表于 2012-4-16 21:28:39 | 显示全部楼层
你检查一下你的脚本里面是否有涉及到键盘或鼠标操作的函数,如果有的话,因为你的vps应该是没有安装鼠标和键盘的,当RDP桌面被最小化或关闭时,因为失去了鼠标和键盘,和他们有关的函数都会暂停。
我也有遇到了这个问题,一直没有找到好的解决办法,如果楼主最后找到了解决办法,请予以指导
发表于 2015-8-5 13:38:19 | 显示全部楼层
我遇到这个问题,WinActive后WinWaitActive一直等待,从界面上看,所需的窗口在最上面。实际通过WinGetState获取这种窗口的状态,状态时窗口存在、窗口可见,但窗口未激活。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 20:13 , Processed in 0.121280 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表