[已解决]Windows10系统下部分代码无效
本帖最后由 tjztbk 于 2016-1-6 23:39 编辑根据22楼“yhjfirst”的建议用API就没问题了!
-------------------------以下为原帖内容-------------------------------------------
发现在win10系统下,所有带有盾牌图标(如下图,应该和UAC用户帐户控制有关,当然我的判断不一定正确)的程序,都无法用Autoit代码控制操作!
对窗口控件操作用ControlClick、用激活窗口后用Send都不行,我测试代码在正常运行,就是不起作用!
甚至我将代码改为激活窗口,然后用MouseClick 执行鼠标点击操作都不行(鼠标不动)
加#RequireAdmin了也是不行!
各路高手有没有办法啊!有装Win10的帮我测试一下啊!
比如下面代码:
Opt("WinTitleMatchMode", 2) ;窗口匹配模式:1=开头, 2=子串, 3=完全, 4=高级 , -1 to -4=Nocase
;在Win10系统下,程序上面有盾牌的用run无法运行; 改用ShellExecute可以运行
;~ If Not Run("汉化补丁.exe") Then
;~ MsgBox(4096, "错误", "找不到汉化程序“汉化补丁.exe”,汉化出现错误")
;~ Exit
;~ EndIf
; 改用ShellExecute后可以
If Not ShellExecute("汉化补丁.exe") Then
MsgBox(4096, "错误", "找不到汉化程序“汉化补丁.exe”,汉化出现错误")
Exit
EndIf
;在Win10系统下,以下代码运行正常,但操作无效,在win7系统正常。
While 1
Sleep(100);汉化程序未安装,点击开始安装
If WinExists("汉化补丁", "开始") Then
WinWait("汉化补丁", "开始")
ControlClick("汉化补丁", "开始", "");这部分改为激活窗口,然后用send模拟键盘操作也是无效
MsgBox(0, "测试1", "测试1:是否运行到这里!")
WinWait("汉化补丁", "完成");安装完成,退出汉化程序
ControlClick("汉化补丁", "完成", "")
MsgBox(0, "测试2", "测试2:是否运行到这里!")
ExitLoop
EndIf
Sleep(100);汉化程序已安装或主程序未安装,,退出汉化程序
If WinExists("汉化补丁", "关闭") Then
WinWait("汉化补丁", "关闭")
ControlClick("汉化补丁", "关闭", "")
MsgBox(0, "测试3", "测试3:是否运行到这里!")
ExitLoop
EndIf
WEnd
调用的“汉化补丁程序.EXE”这程序在下面这个共享中有!
共享链接:http://pan.baidu.com/s/1eRguACa
各路高手有空帮我看看! 先关掉 UAC可以通过 注册表
然后再执行你的exe, 完毕后 再开启UAC 学习了 新手 感谢分享 先关掉 UAC可以通过 注册表
然后再执行你的exe, 完毕后 再开启UAC
laomeng 发表于 2015-12-7 16:28 http://www.autoitx.com/images/common/back.gif
手动关闭UAC,测试也是解决不了问题,我用的Administrator账户,不知道和这个有没有关系,我新建个用户测试一下! 还是不行!
甚至我将代码改为激活窗口,然后用MouseClick 执行鼠标点击操作都不行(鼠标不动)
有装Win10的帮我测试一下啊! 回复 1# tjztbk
你用10了呀? 是啊,这来个天刚装的,发现以前Win7好多代码用不了!能执行,就是不管用! 回复 5# tjztbk
我试了,的确不行。 回复 8# xms77
感觉ACN代码对Windows的支持确实不行,有待改进!
现在升级Windows的人不多,估计往后论坛里Windows10系统下ANC的问题会增多! 回复 9# tjztbk
加上这两行.
#RequireAdmin
#PRE_UseX64=n
(我会告诉你我也是用了win10好久了吗..) 本帖最后由 tjztbk 于 2015-12-9 20:13 编辑
加上这两行.
#RequireAdmin
#PRE_UseX64=n
(我会告诉你我也是用了win10好久了吗..)
lanfengc 发表于 2015-12-9 01:01 http://www.autoitx.com/images/common/back.gif
我加了试过了,还是不行啊!
我所有代码都有写“#PRE_UseX64=n”
我测试加不加“#RequireAdmin”管理员权限运行程序的区别就是:加上之后不用ShellExecute,直接用run也能运行带盾牌的程序了,但对窗口操作依然无效!
有空在你的Win10系统上帮我测试一下我的代码嘛!我的程序、代码都有共享!
共享链接:http://pan.baidu.com/s/1bnQKMOf 密码:1pmt 加入白名单吧,最后一个办法了 官方最新版v3.3.14.2下载介绍,没有提到支持windows10,估计目前暂时不全面支持Windows10!
AutoIt Downloads
You can download the main AutoIt package and other related scripting tools from this page.
AutoIt has been designed to work on Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8 (desktop mode). With no annoying runtime libraries required! 为什么一定用wn10呢 我最近升级到Windows10系统,发现了这个问题,所以想知道到底是什么原因了!
升级新的系统是趋势吧!
我平时用ACN就编写一些简单的软件自动安装代码,结果发现之前写的很多代码在windows10不能用了!
我也不想纠结这个问题了,不行就算了,我想暂时放弃这个问题了!
页:
[1]
2