|
  
|
1#
发表于 2007-5-5 07:13 PM
| 只看该作者
代码是用AU3调用WMI写的。不想列注册表。因为有的帐户注册表路径不一样的。
代码乱七八糟的。看不懂的提出,我再整理发出来。。。嘿嘿。。。-
- #include <GuiConstants.au3>
- #include <GuiListView.au3>
- HotKeySet( "{F5}" , "_Refresh" )
- $wbemFlagReturnImmediately = 0x10
- $wbemFlagForwardOnly = 0x20
- $strComputer = "localhost"
- GUICreate("自动运行",700, 450)
-
- $runlistView = GUICtrlCreateListView("程序名称|程序路径|注册表路径",5, 5,750,490)
- GUICtrlSendMsg($runlistview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
- GUICtrlSendMsg($runlistview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
-
- _GUICtrlListViewSetColumnWidth ($runlistview, 0,100)
- _GUICtrlListViewSetColumnWidth ($runlistview, 1,200)
- _GUICtrlListViewSetColumnWidth ($runlistview, 2,400)
-
- $contextmenu = GUICtrlCreateContextMenu ($runlistview)
- $kill = GUICtrlCreateMenuitem ("删除", $contextmenu)
- $Refresh = GUICtrlCreateMenuitem ("刷新", $contextmenu)
- _runlist()
- GuiSetState(@SW_SHOW)
- While 1
-
- $msg = GUIGetMsg()
-
- Select
- Case $msg = $kill
- $info= _GUICtrlListViewGetItemText($runlistview, _GUICtrlListViewGetSelectedIndices($runlistview), 0)
- $reg= _GUICtrlListViewGetItemText($runlistview, _GUICtrlListViewGetSelectedIndices($runlistview), 2)
- $patch= $reg&"\"&$info
- ;MsgBox(0,"slkdjf", $patch)
- RegDelete($reg&"\",$info)
- _Refresh()
- Case $msg = $Refresh
- _Refresh()
- Case $msg = $GUI_EVENT_CLOSE
-
- ExitLoop
- EndSelect
-
- WEnd
- Func _runlist()
-
- $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
- $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_StartupCommand", "WQL", _
- $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
- For $objItem In $colItems
-
-
- local $processData = ($objItem.Caption & "|" &$objItem.Command &"|" &$objItem.Location )
- GUICtrlCreateListViewItem($processData,$runlistView)
- Next
-
-
- $ini=_GUICtrlListViewGetItemCount ($runlistview)
-
- ;MsgBox(0, "Passed Item Index only", $a)
- For $i = 0 To $ini-1
-
- $desktop =_GUICtrlListViewGetItemText($runlistview,$i,0)
-
- If $desktop ="desktop" Then
- _GUICtrlListViewDeleteItem ($runlistview,$i)
- EndIf
- ;MsgBox(0, "asldjkf", $a)
- Next
- EndFunc
-
-
- Func _Refresh()
-
-
- _GUICtrlListViewDeleteAllItems ($runlistview)
-
- $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
- $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_StartupCommand", "WQL", _
- $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
-
- For $objItem In $colItems
-
-
- local $processData = ($objItem.Caption & "|" &$objItem.Command &"|" &$objItem.Location )
- GUICtrlCreateListViewItem($processData,$runlistView)
- Next
-
- $a=_GUICtrlListViewGetItemCount ($runlistview)
-
- ;MsgBox(0, "Passed Item Index only", $a)
- For $i = 0 To $a-1
-
- $desk =_GUICtrlListViewGetItemText($runlistview,$i,0)
-
- If $desk="desktop" Then
- _GUICtrlListViewDeleteItem ($runlistview,$i)
- EndIf
- ;MsgBox(0, "asldjkf", $a)
- Next
-
- EndFunc
复制代码 文章来源AUTOIT中文论坛www.autoit.net.cn,本贴原地址:http://www.autoit.net.cn/viewthread.php?tid=128 |
感谢Baidu,Google,Dreams8给我这次机会!
还要感谢我的爸爸妈妈!
HOHO |
|