找回密码
 加入
搜索
楼主: 秋无痕

[AU3基础] 请教一个WIN7注册表权限写入问题。

 火... [复制链接]
发表于 2012-5-15 17:52:18 | 显示全部楼层
本帖最后由 haijie1223 于 2012-5-15 17:58 编辑

回复 15# xms77


    国内最具影响力的论坛:赢政天下!
发表于 2012-5-15 19:45:50 | 显示全部楼层
回复 15# 风雪残士


     嬴政<> 赢政
 楼主| 发表于 2012-5-17 21:11:43 | 显示全部楼层
这个问题无解吗?顶起来。
发表于 2012-5-18 02:23:58 | 显示全部楼层
回复 18# 秋无痕


    如果我没猜错  应该是金山本山监控住的  你可以试着把金山退出  连相关服务都停掉
如果可以  证明是杀软自我监控的保护作用  跟360大妈一样

  秋无痕   大师啊    敬仰敬仰
 楼主| 发表于 2012-5-18 23:26:59 | 显示全部楼层
本帖最后由 秋无痕 于 2012-5-18 23:56 编辑
回复  秋无痕


    如果我没猜错  应该是金山本山监控住的  你可以试着把金山退出  连相 ...
872777825 发表于 2012-5-18 02:23

谢谢提醒!
果然是这样,其实在正常模式下,你要退出金山可以,但要停它的服务就不简单了。
不过可进入安全模式。进入后,金山默认不启动,服务也是停止的。
这时直接就可修改此注册表且是有效的。

哪位高手研究一下,能否通过其他方式,如用界面点击的方式去修改?不胜感激。

我主要就是要要实现下图的设置效果,主要想取消和选中这几个标红线的选项,哪知有其他自动执行方法的也请不吝指教:

本帖子中包含更多资源

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

×
发表于 2012-5-19 17:58:36 | 显示全部楼层
回复 20# 秋无痕


    如果我没估计错  楼主是想重新封包金山  哈哈

办法是有的 不过有点笨拙   写个以system身份运行的服务程序  可以在金山启动前就修改它的注册表   然后做个启动一次后自我删除服务项  再自我删除
不过这样的东西  估计过了不金山大湿  
 楼主| 发表于 2012-5-19 22:11:10 | 显示全部楼层
回复  秋无痕


    如果我没估计错  楼主是想重新封包金山  哈哈

办法是有的 不过有点笨拙   写个以 ...
872777825 发表于 2012-5-19 17:58

这种方式太暴力了,一定会让毒霸查杀的。
我试过在安装前先写入这个注册表,但毒霸安装后,好像只保存了取消弹出产品功能推荐提醒这个选项,而升级完成通知的选项又成了选中。

现在在考虑,能否用ControlClick方式来实现?
发表于 2012-5-20 12:44:58 | 显示全部楼层
模拟鼠标点击可以实现。但是可靠性还是要验证。
发表于 2012-5-21 14:42:06 | 显示全部楼层
回复 15# 风雪残士
发表于 2012-5-21 18:35:44 | 显示全部楼层
把其它用户都禁了,
发表于 2012-5-21 18:40:22 | 显示全部楼层
关注一下,
发表于 2012-5-22 18:03:27 | 显示全部楼层
你要干嘛呀
发表于 2012-5-23 00:11:57 | 显示全部楼层
2012年5月23日签到!
 楼主| 发表于 2012-5-24 12:50:48 | 显示全部楼层
模拟鼠标点击可以实现。但是可靠性还是要验证。
tjlzh 发表于 2012-5-20 12:44



    能写个实例吗?针对毒霸2012的。
发表于 2012-5-24 23:39:10 | 显示全部楼层
本帖最后由 地平线 于 2012-5-24 23:41 编辑

回复 29# 秋无痕
这个主要用模拟鼠标点击,技术含量不大。其中的那个点击托盘图标的UDF是直接用别人的。
#Include <GuiToolBar.au3>

Global $hSysTray_Hide_Handle
Global $iSystrayHide_ButtonNumber
Global $hSysTray_Handle
BlockInput(1) ;屏蔽用户输入
_ClickSysTrayIcon("金山毒霸","right") ;右键点击托盘图标
Sleep(200)
;$size =WinGetPos("[ACTIVE]")
;MsgBox(0,'',$size[2]&@CRLF&$size[3]) ;获得右键菜单的尺寸为160x350
AutoItSetOption("MouseCoordMode", 0)
MouseClick("left",50,270) ;点击右键菜单的设置选项
WinWaitActive("设置")
AutoItSetOption("PixelCoordMode", 0)
If PixelGetColor(180,230) = 0x21A121 Then
        MouseClick("left",180,230)
EndIf
Sleep(200)
MouseClick("left",60,370)
Sleep(200)
If PixelGetColor(190,260) = 0x21A121 Then
        MouseClick("left",190,260)
EndIf
If PixelGetColor(190,360) <> 0x21A121 Then
        MouseClick("left",190,360)
EndIf
If PixelGetColor(390,360) <> 0x21A121 Then
        MouseClick("left",390,360)
EndIf
If PixelGetColor(189,386) <> 0x21A121 Then
        MouseClick("left",189,386)
EndIf
Sleep(200)
MouseClick("left",435,450) ;最后确定
BlockInput(0) ;启用用户输入

Func _ClickSysTrayIcon($sToolTipTitle,$Button)
 
        $iSystray_ButtonNumber = Get_Systray_Index($sToolTipTitle)
        If ControlCommand("[class:Shell_TrayWnd]","","Button1","IsVisible","") And $iSystray_ButtonNumber = -1  Then
                ClickHideIcon($sToolTipTitle,$Button)
        Else
                ClickDisplayIcon($sToolTipTitle,$Button)
        EndIf
EndFunc

Func ClickDisplayIcon($sToolTipTitle,$Button)
 
        $iSystray_ButtonNumber = Get_Systray_Index($sToolTipTitle)
        If $iSystray_ButtonNumber = -1 Then
                Return 0
        Else
                Sleep(500)
                _GUICtrlToolbar_ClickButton($hSysTray_Handle, $iSystray_ButtonNumber, $Button, True, 1, 20)
        EndIf
EndFunc

Func ClickHideIcon($sToolTipTitle,$Button)
        $hSysTray_Hide_Handle1 = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:Button;Instance:1]')
        _GUICtrlToolbar_ClickButton($hSysTray_Hide_Handle1, "Button1", "Left", True, 1, 20)
        Sleep(500)
        $iSystray_ButtonNumber = Get_Hide_Systray_Index($sToolTipTitle)
 
        If $iSystray_ButtonNumber = -1 Then
                Return 0
        Else
                Sleep(500)
                _GUICtrlToolbar_ClickButton($hSysTray_Hide_Handle, $iSystray_ButtonNumber, $Button, True, 1, 20)
        EndIf
 
        $iSystray_ButtonNumber = Get_Hide_Systray_Index($sToolTipTitle)
EndFunc
        
Func Get_Systray_Index($sToolTipTitle)
    $hSysTray_Handle = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]')
    If @error Then
        Return 0
    EndIf
    Local $iSystray_ButCount = _GUICtrlToolbar_ButtonCount($hSysTray_Handle)
    If $iSystray_ButCount = 0 Then
       Return 0
    EndIf
    For $iSystray_ButtonNumber = 0 To $iSystray_ButCount - 1
        If StringInStr(_GUICtrlToolbar_GetButtonText($hSysTray_Handle, $iSystray_ButtonNumber), $sToolTipTitle) = 1 Then ExitLoop
    Next
 
    If $iSystray_ButtonNumber = $iSystray_ButCount Then
        Return  -1
    Else
        Return $iSystray_ButtonNumber
    EndIf 
EndFunc

Func Get_Hide_Systray_Index($sToolTipTitle)
    $hSysTray_Hide_Handle = ControlGetHandle('[Class:NotifyIconOverflowWindow]', '', '[Class:ToolbarWindow32;Instance:1]')
    If @error Then
        Return 0
    EndIf
    Local $iSystray_ButCount = _GUICtrlToolbar_ButtonCount($hSysTray_Hide_Handle)
 
    If $iSystray_ButCount = 0 Then
        Return 0
    EndIf
    For $iSystray_ButtonNumber = 0 To $iSystray_ButCount - 1
        If StringInStr(_GUICtrlToolbar_GetButtonText($hSysTray_Hide_Handle, $iSystray_ButtonNumber),$sToolTipTitle)  Then ExitLoop
        Next
 
    If $iSystray_ButtonNumber = $iSystray_ButCount Then
        Return -1
    Else
        Return $iSystray_ButtonNumber
    EndIf 
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 15:15 , Processed in 0.076821 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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