Li3.Name

本地组策略编辑UDF:poledit.au3

分类: AutoIt3   标签:    评论: 0

    要通过脚本来进行组策略自动修改,没有官方的直接接口。以往所见到的方法一般是通过备份并覆盖registry.pol文件来实现本地策略的自动更改。经过一段时间的查找,终于找到一个命令行工具gpscript.exe,并通过gpcvreg.exe的配合可以直接把reg文件转换成对组策略的更改。为了便于在AutoIt脚本中使用,把这两个命令行工具集成为一个UDF,命名为poledit.au3。

    当前版本:0.2.0.0    下载及固定更新地址

    当前包括以下2个函数:

    ;读取包含策略定义内容的reg文件,并写入指定的组策略文件中
    ; $PolFile     可以是 MACHINE 或 USER 或者某个POL文件的完整路径
    ; $Backup      在更新策略文件前先建立策略文件的备份(加.bak扩展名,会覆盖以前的备分)
_RegWriteToPol($sRegfile, $sPolfile = "USER", $Backup = 0)

    ;刷新组策略,以便立即生效。仅支持XP及2K
_gpupdate()

01-06
2009

SATA驱动版本导致PE启动问题一例

分类: 实践经验       评论: 0

    前不久公司有新电脑到货,型号是HP 2230s。因办公需要必须安装XP,结果手头的几个PE版本都不能正常启动。一开始因为这个型号的笔记本BIOS是UEFI设成兼容模式使用的,怀疑是BIOS兼容问题。又下载了好几个PE版本测试之后发现,居然是SATA驱动版本的兼容问题。

    HP 2230s的SATA控制器硬件ID是 PCI\VEN_8086&DEV_2929&CC_0106,INTEL芯片,INTEL iastor问题驱动版本是8.2.4。PE启动时会一直停在XP滚动进度条的时候,哪怕是把SATA控制器从AHCI调为IDE兼容模式也不行。最后更新PE,把iastor更新到8.6.0.1007之后启动就正常了。

    同时也趁这次机会把自己定制的PE启动盘重新调整了一下,核心缩小而功能不变,并且更新了一些外置程序等等。

    另外今天收到腾讯关于QQ影音安装程序静默安装参数的回复了。静默安装参数现在的1.0beta2已经可以用了,感觉挺怪——没见过这个格式的静默安装参数:

QQPlayer_setup.exe ##silence=1

01-04
2009

使用MemoryDll.au3嵌入dll使AutoIt脚本能直接压缩解压缩

分类: AutoIt3   标签:    评论: 0

首先到官方论坛下载爱好者编写的UDF:memorydll.au3 ,下载地址http://www.autoitscript.com/forum/index.php?showtopic=77463&hl=dll

然后到http://www.csdinc.co.jp/archiver/lib/7-zip32.html 下载7-Zip32.dll, 最新4.57.001版

运行MemoryDllGen.au3,选择把7-zip32.dll转成代码,并命名为 $Dll7zip32,粘贴到脚本中。然后使用函数_SevenZipCMD()来进行压缩解压缩,命令行参数可以查阅www.7-zip.org的官方文档。

#include "MemoryDll.au3"
 
Func _SevenZipCMD($sCMDLine, $hWnd = 0)
    MemoryDllInit()
    Local $sOutput
    MemoryDllCall($Dll7zip32, "int", "SevenZip", "hwnd", $hWnd, "str", $sCMDLine, "str", $sOutput, "int", 0)
    Local $error = @error
    MemoryDllExit()
    If $error Then
        Return 0
    Else
        Return 1
    EndIf
EndFunc   ;==>_SevenZipCMD
Technorati 标签: ,

01-04
2009

绿化Unlocker 1.85及扩展功能

分类: 实践经验       评论: 0

unlocker 用来解锁删除顽固文件比较好用,但默认只能使用右键进行操作。因此使用AutoIt脚本绿化同时添加了直接浏览文件进行处理的功能。编译好后需要与Unlocker.exe、UnlockerCOM.dll、UnlockerDriver5.sys、UnlockerHook.dll 四个文件放在一起。
 
源码:
   1: #RequireAdmin
   2: #NoTrayIcon
   3: ;已知缺陷:程序未在启动时检测是否已注册过右键菜单
   4: #include <GuiConstants.au3>
   5: #include <file.au3>
   6: Dim $szDrive, $szDir, $szFName, $szExt
   7: Opt("GUIOnEventMode", 1)
   8: GuiCreate("Unlocker辅助", 390, 120,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
   9: GUISetOnEvent($GUI_EVENT_CLOSE, "CloseClicked")
  10: $CheckboxShell = GuiCtrlCreateCheckbox("注册右键菜单", 150, 40, 130, 20)
  11: GUICtrlSetOnEvent($CheckboxShell, "OnCheckboxShell")
  12: $Button_3 = GuiCtrlCreateButton("解锁文件...", 80, 80, 80, 30)
  13: GUICtrlSetOnEvent($Button_3,"OnBrowserFile")
  14: $Button_5 = GuiCtrlCreateButton("绿色退出", 260, 80, 80, 30)
  15: GUICtrlSetOnEvent($Button_5,"ExitClicked")
  16: $Label_6 = GuiCtrlCreateLabel("Unlocker 绿色辅助扩展。可使用右键菜单,或者直接浏览目标文件。", 10, 10, 370, 20)
  17: GuiSetState()
  18: While 1
  19: Sleep(1000)
  20: WEnd
  21: ;使用浏览对话框直接选择文件进行解锁处理
  22: Func OnBrowserFile()
  23: $var = FileOpenDialog("选择文件",@WorkingDir,"All (*.*)")
  24: _PathSplit($var, $szDrive, $szDir, $szFName, $szExt)
  25: RunWait('"' & @ScriptDir & '\unlocker.exe" ' & $var,$szDrive & $szDir)
  26: EndFunc
  27: ;按X退出时如果右键菜单存在,会予以保留
  28: Func CloseClicked()
  29: Exit
  30: EndFunc
  31: ;按绿色退出时,如果已注册右键菜单,则清除
  32: Func ExitClicked()
  33: If GUICtrlRead($CheckboxShell) == $GUI_CHECKED Then
  34:   RegDelete("HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\UnlockerShellExtension")
  35:   RegDelete("HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\UnlockerShellExtension")
  36:   RegDelete("HKEY_CLASSES_ROOT\CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  37:   RegDelete("HKEY_CLASSES_ROOT\CLSID\UnlockerShellExtension")
  38:   RegDelete("HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\UnlockerShellExtension")
  39:   RegDelete("HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\UnlockerShellExtension")
  40:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Unlocker.exe")
  41:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  42:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker")
  43: EndIf
  44: Exit
  45: EndFunc
  46: ;按勾选框的状态确定是否注册右unlocker右键菜单
  47: Func OnCheckboxShell()

< pre style="font-size:8pt;overflow:visible;width:100%;color:black;line-height:12pt;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;border-style:none;margin:0;padding:0;"> 48: If GUICtrlRead($CheckboxShell) == $GUI_CHECKED Then

  49:   RegWrite("HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\UnlockerShellExtension","","REG_SZ","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  50:   RegWrite("HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\UnlockerShellExtension","","REG_SZ","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  51:   RegWrite("HKEY_CLASSES_ROOT\CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}\InProcServer32","","REG_SZ",@ScriptDir & "\UnlockerCOM.dll")
  52:   RegWrite("HKEY_CLASSES_ROOT\CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}\InProcServer32","ThreadingModel","REG_SZ","Apartment")
  53:   RegWrite("HKEY_CLASSES_ROOT\CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}","","REG_SZ","UnlockerShellExtension")
  54:   RegWrite("HKEY_CLASSES_ROOT\CLSID\UnlockerShellExtension","","REG_SZ","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  55:   RegWrite("HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\UnlockerShellExtension","","REG_SZ","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  56:   RegWrite("HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\UnlockerShellExtension","","REG_SZ","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  57:   RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Unlocker.exe","","REG_SZ",@ScriptDir & "\Unlocker.exe")
  58:   RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}","REG_SZ","UnlockerShellExtension")
  59:   RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker","Language","REG_SZ","2052")
  60:   
  61: Else
  62:   
  63:   RegDelete("HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\UnlockerShellExtension")
  64:   RegDelete("HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\UnlockerShellExtension")
  65:   RegDelete("HKEY_CLASSES_ROOT\CLSID\{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  66:   RegDelete("HKEY_CLASSES_ROOT\CLSID\UnlockerShellExtension")
  67:   RegDelete("HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\UnlockerShellExtension")
  68:   RegDelete("HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\UnlockerShellExtension")
  69:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Unlocker.exe")
  70:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{DDE4BEEB-DDE6-48fd-8EB5-035C09923F83}")
  71:   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker")
  72: EndIf
  73:  
  74: EndFunc
Technorati 标签: ,

07-05
2007

文件夹同步:目录文件同步专家 1.2

分类: 实用软件       评论: 0

    在较长的一段时间里,我都在用Allway Sync。这个软件的确不错,同步组、先分析再人工检查调整后同步、官方多语言等,功能强大而较易用。可惜最近在使用时发现我短时间内同步的文件数量已超过免费版的限制了
    于是开始寻找其他免费替代的程序,现在用的是任软的“目录文件同步专家”。该软件是新近开发的,在1.2版之前还存在较大功能缺陷如无法同步子目录或同步时新建子目录等。但在1.2版时已基本满足我平时的需要了。虽然如此,仍向任软工作室提了些建议,希望能进一步完善…
参考底部图片
  1. 建议A1与A2合并,B1与B2合并:在A1现有的列前添加“方向”“操作”,保留现在A2的颜色体现操作的方式,B1类似。
  2. A1及B1的操作是互斥的,同一文件同一时间仅能选择1个方向的操作。注意不完全互斥:取消勾选A1某行的操作时,并不意味B1的该行必须打勾。
  3. 目录一有而目录二没有该文件时,目录有对应的一行注明删除操作,同时A1及B1的滚动条为同步滚动
  4. c、d、e三个按钮起到与比较目录相似的功能,而不是执行的功能(比较目录可以取消矣)。按方向不同体现为按c时,相当于全选现在的A2所有操作。按e时根据文件新旧程度判断操作方向。但最终都必须使用“执行”按钮来完成操作。
  5. f处“全选”与“全不选”可以使用checkbox来实现,勾选则是全选,不勾选则是全不选。若未全选则呈灰色。
  6. 由于A1与B1的操作是互斥的,最终可仅保留一个“执行”按钮。
05-17
2007

loading...