找回密码
 加入
搜索
查看: 16270|回复: 25

[系统综合] [已解决]Windows10系统下部分代码无效

 火.. [复制链接]
发表于 2015-12-7 15:50:27 | 显示全部楼层 |阅读模式
本帖最后由 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("汉化补丁", "开始", "[CLASS:Button; INSTANCE:1]");这部分改为激活窗口,然后用send模拟键盘操作也是无效
                MsgBox(0, "测试1", "测试1:是否运行到这里!")
                
                WinWait("汉化补丁", "完成");安装完成,退出汉化程序
                ControlClick("汉化补丁", "完成", "[CLASS:Button; INSTANCE:1]")
                MsgBox(0, "测试2", "测试2:是否运行到这里!")
                ExitLoop
        EndIf
        
        Sleep(100);汉化程序已安装或主程序未安装,,退出汉化程序
        If WinExists("汉化补丁", "关闭") Then
                WinWait("汉化补丁", "关闭")
                ControlClick("汉化补丁", "关闭", "[CLASS:Button; INSTANCE:1]")
                MsgBox(0, "测试3", "测试3:是否运行到这里!")
                ExitLoop
        EndIf
WEnd
调用的“汉化补丁程序.EXE”这程序在下面这个共享中有!
共享链接:http://pan.baidu.com/s/1eRguACa
各路高手有空帮我看看!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-12-7 16:28:44 | 显示全部楼层
先关掉 UAC  可以通过 注册表

然后再执行你的exe  , 完毕后 再开启UAC
发表于 2015-12-7 17:36:15 | 显示全部楼层
学习了 新手 感谢分享
 楼主| 发表于 2015-12-7 17:52:58 | 显示全部楼层
先关掉 UAC  可以通过 注册表

然后再执行你的exe  , 完毕后 再开启UAC
laomeng 发表于 2015-12-7 16:28



    手动关闭UAC,测试也是解决不了问题,我用的Administrator账户,不知道和这个有没有关系,我新建个用户测试一下!
 楼主| 发表于 2015-12-7 20:47:30 | 显示全部楼层
还是不行!

甚至我将代码改为激活窗口,然后用MouseClick 执行鼠标点击操作都不行(鼠标不动)

有装Win10的帮我测试一下啊!
发表于 2015-12-8 14:51:49 | 显示全部楼层
回复 1# tjztbk


   你用10了呀?
 楼主| 发表于 2015-12-8 15:28:55 | 显示全部楼层
是啊,这来个天刚装的,发现以前Win7好多代码用不了!能执行,就是不管用!
发表于 2015-12-8 22:34:22 | 显示全部楼层
回复 5# tjztbk
我试了,的确不行。
 楼主| 发表于 2015-12-8 22:52:28 | 显示全部楼层
回复 8# xms77

感觉ACN代码对Windows的支持确实不行,有待改进!

现在升级Windows的人不多,估计往后论坛里Windows10系统下ANC的问题会增多!
发表于 2015-12-9 01:01:34 | 显示全部楼层
回复 9# tjztbk

加上这两行.
#RequireAdmin
#PRE_UseX64=n

(我会告诉你我也是用了win10好久了吗..)

评分

参与人数 1金钱 +10 收起 理由
gyhhi + 10 楼主,这位是大神,他说行就行,你看看有可 ...

查看全部评分

 楼主| 发表于 2015-12-9 20:03:23 | 显示全部楼层
本帖最后由 tjztbk 于 2015-12-9 20:13 编辑
加上这两行.
#RequireAdmin
#PRE_UseX64=n

(我会告诉你我也是用了win10好久了吗..)
lanfengc 发表于 2015-12-9 01:01


我加了试过了,还是不行啊!
我所有代码都有写“#PRE_UseX64=n”

我测试加不加“#RequireAdmin”管理员权限运行程序的区别就是:加上之后不用ShellExecute,直接用run也能运行带盾牌的程序了,但对窗口操作依然无效!

有空在你的Win10系统上帮我测试一下我的代码嘛!我的程序、代码都有共享!
共享链接:http://pan.baidu.com/s/1bnQKMOf 密码:1pmt
发表于 2015-12-10 11:20:07 | 显示全部楼层
加入白名单吧,最后一个办法了
 楼主| 发表于 2015-12-11 22:21:46 | 显示全部楼层
官方最新版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!
发表于 2015-12-11 23:14:08 | 显示全部楼层
为什么一定用wn10呢
 楼主| 发表于 2015-12-11 23:27:44 | 显示全部楼层
我最近升级到Windows10系统,发现了这个问题,所以想知道到底是什么原因了!
升级新的系统是趋势吧!

我平时用ACN就编写一些简单的软件自动安装代码,结果发现之前写的很多代码在windows10不能用了!

我也不想纠结这个问题了,不行就算了,我想暂时放弃这个问题了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-25 02:54 , Processed in 0.084035 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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