121044246 发表于 2009-11-16 17:32:06

WMI获取启动项问题

怎么过滤掉重复的和@startuodir下的desktop.ini
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$startup= $objWMIService.ExecQuery("SELECT * FROM Win32_StartupCommand", "WQL")
   For $objItem In $startup
MsgBox(0,"",$objItem.Caption & @CRLF&$objItem.Command)
   Next

121044246 发表于 2009-11-16 23:18:50

怎么没人???等了一晚上了

afan 发表于 2009-11-17 01:02:26

#include <Array.au3>
Dim $a, $i = 0
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$startup = $objWMIService.ExecQuery("SELECT * FROM Win32_StartupCommand", "WQL")
For $objItem In $startup
        If $objItem.Caption = 'desktop' Then ContinueLoop
        ReDim $a[$i + 1]
        $a[$i] = $objItem.Caption & '|' & $objItem.Command
        $i += 1
Next
$n = _ArrayUnique($a)
If $n <> 0 Then _ArrayDisplay($n, '启动项信息')

水木子 发表于 2009-11-17 08:43:49

还是前辈厉害,我写的是这样的。
郁闷的是不能获取到360安全卫士和其他一些驱动程序的相关启动。#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>

$Form1 = GUICreate("启动项管理", 320, 350)
$ListView1 = GUICtrlCreateListView("名称 |位置 ", 10, 10, 300, 320,-1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_FULLROWSELECT,$LVS_REPORT))
$hImage = _GUIImageList_Create(1, 20)
_GUICtrlListView_SetImageList($ListView1, $hImage, 1)
_GUICtrlListView_SetColumnWidth($ListView1, 0, 80)
_GUICtrlListView_SetColumnWidth($ListView1, 1, 200)
GUISetState(@SW_SHOW)
Read()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func Read()
        $z = 0
        _GUICtrlListView_DeleteAllItems($ListView1)
        For $i = 1 To 10
                $var = RegEnumVal('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',$i)
                If Not @error Then
                        GUICtrlCreateListViewItem($var,$ListView1)
                        $a = RegRead('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',$var)
                        _GUICtrlListView_AddSubItem($ListView1, $z, $a, 1, $z+1)
                EndIf       
                $z += 1
        Next
EndFunc

水木子 发表于 2009-11-17 09:16:51

回复 3# afan

哇!前辈都升“论坛元老”啦! 恭喜、恭喜啊!:face (20):

afan 发表于 2009-11-17 09:55:39

回复 5# 水木子


    还不是托管理员的福,呵呵~

水木子 发表于 2009-11-17 09:58:16

回复 6# afan
呵呵!我那代码就没必要加分啦!太普通了。
你上面的代码看得我一头雾水,正在找WMI的相关资料学习呢!
前辈抽空指点指点我们吧!

afan 发表于 2009-11-17 10:01:41

回复 7# 水木子


    我那也只是修改LZ提供的代码,WMI我也仅弄过一两回(什么显示器信息之类的),现在都没时间学啊~

水木子 发表于 2009-11-17 10:04:57

回复 8# afan
我觉得修改他人的代码比自己造还难!
主要是不了解别人的思路,你能修改说明你很弓虽啦!

我看着简直像看天书一样。

afan 发表于 2009-11-17 10:36:22

回复 9# 水木子


    也就刚好懂那么点~ 呵呵

kn007 发表于 2009-11-17 11:33:47

回复水木子


    还不是托管理员的福,呵呵~
afan 发表于 2009-11-17 09:55 http://www.autoitx.com/images/common/back.gif

怎么是托我的福,你不怪我没给你加精华就好了

水木子 发表于 2009-11-17 11:43:24

回复 11# kn007

你不是发帖“请假”吗?咋还是天天都在?不准备看书啦!:face (31):

kn007 发表于 2009-11-17 11:45:27

回复 12# 水木子


    饿,读书和休息是要结合的,我现在作文老写不好,在看作文选呢,。。

水木子 发表于 2009-11-17 11:52:16

回复 13# kn007
呵呵!小伙子加油吧!再有几年就熬出头啦!

PS:自从我参加工作以后,感觉真的很爽,不需要回家写作业,不需要天天看那些“天书”
经常看到路上读书的小朋友还笑他们,“哈哈!还不跑快点,小心迟到哦!”

我们严重跑题啦!就此打住吧! 加油。。。祝你早日脱离“苦海”:face (31):

kn007 发表于 2009-11-17 11:53:37

脱离苦海还要很久呢
页: [1] 2
查看完整版本: WMI获取启动项问题