找回密码
 加入
搜索
查看: 4369|回复: 11

[AU3基础] 已解决 如何实现判断啊 求大神~

  [复制链接]
发表于 2014-4-15 09:34:32 | 显示全部楼层 |阅读模式
本帖最后由 wanglun21 于 2014-4-15 15:56 编辑

求大神~


1   判断 一个注册表值

[HKEY_LOCAL_MACHINE\SOFTWARE\TEST]
"MYTEST"=dword:00000001

如果是1   程序自动退出

如果是0   程序自动把windows  system32 rundll32.exe改个名  然后1分钟后再把名字改回来 然后程序退出
发表于 2014-4-15 10:46:53 | 显示全部楼层
如果单是代码实现的话,以下代码就可以了
不过RUNDLL32.exe???呵呵
_Mytest()

Func _Mytest()
        Local $move
        Local $var = RegRead("HKLM\SOFTWARE\TEST", "MYTEST")
                        If Not @error Then
                        If $var=1 Then
                                Exit                                
                        EndIf                        
                        If $var=0 Then 
                                $move=FileMove(@SystemDir&"\RUNDLL32.txt", @SystemDir & "\RUNDLL32.bak")
                                Sleep(60000)
                                $move=FileMove(@SystemDir&"\RUNDLL32.bak", @SystemDir & "\RUNDLL32.txt")
                        EndIf
            Else
                MsgBox (0,"result",@error)
        EndIf
EndFunc
 楼主| 发表于 2014-4-15 11:01:44 | 显示全部楼层
谢谢  一个管理软件会调用rundll32.exe 来安装IE插件

这个管理软件是否调用  是决定于这个注册表值  (1分钟的意思是 1分钟 这管理软件没找着rundll32.exe 的话其它步骤就运行完了。所以还要改名回来)
 楼主| 发表于 2014-4-15 11:03:48 | 显示全部楼层
我再试试64位下 这个行不行。了
 楼主| 发表于 2014-4-15 12:05:34 | 显示全部楼层



64位下不行

本帖子中包含更多资源

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

×
 楼主| 发表于 2014-4-15 12:44:13 | 显示全部楼层
回复 2# light_he


   
谢谢  一个管理软件会调用rundll32.exe 来安装IE插件

这个管理软件是否调用  是决定于这个注册表值  (1分钟的意思是 1分钟 这管理软件没找着rundll32.exe 的话其它步骤就运行完了。所以还要改名回来)


64位 不生效  改不了名   大侠
发表于 2014-4-15 13:08:49 | 显示全部楼层
请参考:
http://au3.cc/forum.php?mod=viewthread&tid=222&extra=page%3D1

需要解除系统重定向时用这个
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
用完后记得还原
DllCall("kernel32.dll", "int", "Wow64RevertWow64FsRedirection", "int", 1)
 楼主| 发表于 2014-4-15 13:20:14 | 显示全部楼层
回复 7# light_he


   
好像是 W7  下rundll32.exe权限的事

角本还是同样的角本。

在运行前。如果 指定rundll32.exe 管理权限。角本就可以正常运行。并实现 功能     

不清楚au3怎么 修改单个文件使它 是管理员权限
发表于 2014-4-15 14:15:06 | 显示全部楼层
那就在autoit调用 takeown icacls修改rundll32.exe权限
 楼主| 发表于 2014-4-15 14:25:31 | 显示全部楼层
本帖最后由 wanglun21 于 2014-4-15 14:42 编辑

回复 9# light_he


                         Run(@ComSpec & " /C takeown /f " & "c:\windows\syswow64\rundll32.exe",@SW_HIDE)
                         Run(@ComSpec & " /C icacls /grant administrators:F /t " & "c:\windows\syswow64\rundll32.exe",@SW_HIDE)

不知道错了没
发表于 2014-4-15 15:37:00 | 显示全部楼层
RunWait(@ComSpec & " /C takeown /F C:\Windows\SysWOW64\rundll32.exe /A","",@SW_HIDE)
RunWait(@ComSpec & " /C icacls  C:\Windows\SysWOW64\rundll32.exe /grant administrators:F","",@SW_HIDE)

评分

参与人数 1金钱 +100 贡献 +2 收起 理由
afan + 100 + 2 热心助人

查看全部评分

 楼主| 发表于 2014-4-15 15:56:07 | 显示全部楼层
回复 11# light_he


    谢谢 解决了。 谢谢回复
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-31 07:01 , Processed in 0.084997 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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