雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

vb

當(dāng)前位置:主頁 > 軟件編程 > vb >

用vbs列出注冊表中 Run 項中的所有項目

來源:本站原創(chuàng)|時間:2020-01-10|欄目:vb|點擊:

問:
您好,腳本專家!如何列出注冊表中 Run 項中的所有項目?
-- JW
答:
您好,JW。如何列出注冊表中 Run 項中的所有項目?坦白地講,我們不打算告訴您。真的很抱歉。不是因為我們不喜歡您,而是因為我們認為我們有一個更好的答案給您。(如果我們錯了,那好,我們只能說這不會是第一次。) 
由于您對 Run 項感興趣,因此我們假定您真正想知道的是如何找出哪些程序被配置為在每次 Windows 啟動時自動運行。您一定可以從 Run 項中讀取到該信息,不要對此產(chǎn)生懷疑。實際上,您可以從 Run 項中讀取到該信息,查看一下是否 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 中都具有 Run 項。它們中都具有 RunOnce 項。接下來是 Startup 文件夾、All Users Startup 文件夾等等。
您已經(jīng)找到問題的答案了。試圖找出哪些程序被配置為在每次 Windows 啟動時自動運行的問題時所牽涉到的問題就是該信息可能存儲在數(shù)量眾多的不同位置中的任一位置中。我們可以編寫一個腳本來檢查這些為數(shù)眾多的位置中的每個位置嗎?肯定可以這樣做。但我們認為以下這段腳本更好:

復(fù)制代碼 代碼如下:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colStartupCommands = objWMIService.ExecQuery _ 
    ("Select * from Win32_StartupCommand") 
For Each objStartupCommand in colStartupCommands 
    Wscript.Echo "Command: " & objStartupCommand.Command 
    Wscript.Echo "Description: " & objStartupCommand.Description 
    Wscript.Echo "Location: " & objStartupCommand.Location 
    Wscript.Echo "Name: " & objStartupCommand.Name 
    Wscript.Echo "User: " & objStartupCommand.User 
    Wscript.Echo 
Next 

不是四處查找并視圖找到 Windows 用來保存自動運行程序信息的位置,我們已決定讓 WMI 為我們完成所有此項工作。WMI 類 Win32_StartupCommand 用于查找自動運行程序的信息,而不管該信息是存儲在注冊表中、Startup 文件夾中還是其他某個位置中。例如,運行此腳本時,將返回類似于下面內(nèi)容的信息:
Command: Microsoft Office OneNote 2003 Quick Launch.lnk
Description: Microsoft Office OneNote 2003 Quick Launch
Location: Startup
Name: Microsoft Office OneNote 2003 Quick Launch
User: FABRIKAM\kenmyer
Command: C:\WINDOWS\System32\ctfmon.exe
Description: ctfmon.exe
Location: HKU\S-1-5-21-1987391165-1004336648-1605550848-8553\SOFTWARE\Microsoft\
Windows\CurrentVersion\Run
Name: ctfmon.exe
User: FABRIKAM\kenmyer
正如您所見,存在兩個不同的自動運行程序:一個程序在 Startup 文件夾中有快捷方式,另一個程序是注冊表的 HKEY_USERS 部分中的 Run 中所列出的應(yīng)用程序。(還有另一個可能存儲了自動運行信息的計算機上的位置。)我們的一個簡單的小腳本可以在數(shù)秒鐘內(nèi)調(diào)用并檢索到有關(guān)這兩個程序以及任何其他自動運行應(yīng)用程序的信息。這就是我們?yōu)楹握J為使用 Win32_StartupCommand 的腳本更好的原因。
那么,該腳本本身是如何工作的?是這樣,它幾乎同曾經(jīng)要編寫的 WMI 腳本一樣簡單。我們首先連接到本地計算機上的 WMI 服務(wù)。不用說,我們也可以使用此腳本連接到遠程計算機上的 WMI 服務(wù)(這將返回已配置為在該計算機上自動運行的程序的列表)。然后我們調(diào)用 ExecQuery 方法并發(fā)出以下查詢,此查詢可調(diào)用并獲取它所能找到的所有自動運行程序的集合:
Set colStartupCommands = objWMIService.ExecQuery _
    ("Select * from Win32_StartupCommand")
現(xiàn)在,剩下要做的事情就是建立一個 For Each 循環(huán)來遍歷程序的集合,并回顯諸如應(yīng)用程序名稱和位置(可在其中找到自動運行信息)這樣的數(shù)據(jù)。該方法簡單快捷,最大的優(yōu)勢在于,其返回的信息遠遠多于只通過讀取單個注冊表項下所填充的值所能獲取的信息。很不錯吧?
我們希望其會對您有所幫助,JW。如果其未奏效,當(dāng)您真地確實需要只讀取 Run 項并通過使用它來搞定一切時,請告訴我們,這樣我們可以知道我們能夠為您做些什么。還有問題嗎?我們知道最后一塊蛋糕(就是您為您自己保留的那塊蛋糕)被誰吃了嗎?是這樣,我們能夠回答這個問題,JW。但我們不打算這樣做。

上一篇:vbs實現(xiàn)的下拉框?qū)?yīng)鍵入值

欄    目:vb

下一篇:Stream、WshShell、WshUrlShortcut對象及Shell.Application的參數(shù)與使用

本文標(biāo)題:用vbs列出注冊表中 Run 項中的所有項目

本文地址:http://www.jygsgssxh.com/a1/vb/7916.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有