wanglun21 发表于 2014-4-15 09:34:32

已解决 如何实现判断啊 求大神~

本帖最后由 wanglun21 于 2014-4-15 15:56 编辑

求大神~


1   判断 一个注册表值


"MYTEST"=dword:00000001

如果是1   程序自动退出

如果是0   程序自动把windowssystem32 rundll32.exe改个名然后1分钟后再把名字改回来 然后程序退出

light_he 发表于 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

wanglun21 发表于 2014-4-15 11:01:44

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

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

wanglun21 发表于 2014-4-15 11:03:48

我再试试64位下 这个行不行。了

wanglun21 发表于 2014-4-15 12:05:34




64位下不行

wanglun21 发表于 2014-4-15 12:44:13

回复 2# light_he


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

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


64位 不生效改不了名   大侠

light_he 发表于 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)

wanglun21 发表于 2014-4-15 13:20:14

回复 7# light_he


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

角本还是同样的角本。

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

不清楚au3怎么 修改单个文件使它 是管理员权限

light_he 发表于 2014-4-15 14:15:06

那就在autoit调用 takeown icacls修改rundll32.exe权限

wanglun21 发表于 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)

不知道错了没

light_he 发表于 2014-4-15 15:37:00


RunWait(@ComSpec & " /C takeown /F C:\Windows\SysWOW64\rundll32.exe /A","",@SW_HIDE)
RunWait(@ComSpec & " /C icaclsC:\Windows\SysWOW64\rundll32.exe /grant administrators:F","",@SW_HIDE)

wanglun21 发表于 2014-4-15 15:56:07

回复 11# light_he


    谢谢 解决了。 谢谢回复
页: [1]
查看完整版本: 已解决 如何实现判断啊 求大神~