Un Process Explorer Script

December 25

Un Process Explorer Script


Visualizza i processi - i programmi in esecuzione sul computer - non deve essere un lavoro di routine, quando è possibile fare doppio clic su un file e vederli in una finestra pop-up. tecnologie di programmazione esistenti che consentono di visualizzare i dettagli relativi processi del computer in modo rapido all'interno di un'applicazione script che creato con poche righe di codice.

HTA Documenti

Di Windows Script Host consente di comunicare con Windows utilizzando linguaggi di scripting come VBScript. Con la creazione di alcuni oggetti WSH, è possibile utilizzare VBScript per ottenere informazioni sui processi in esecuzione sul computer. applicazioni HTML, o HTA, si mescolano con le dichiarazioni VBScript per funzionare come pagine Web ed eseguire sul desktop. Il codice seguente crea un documento di HTA, imposta le informazioni di identificazione di un HTA e permette di visualizzare le barre di scorrimento:

<Html>
<Head>
<Title> HTA di test </ title>
<HTA: APPLICAZIONE
ID = "Process Explorer"
APPLICATIONNAME = "ProcessExplorer"
SCROLL = "yes"
</ Head>

Codice HTML

Questo codice, che va dopo tag head chiusura del documento, crea vuoti di script HTML e tag body:

<Script language = vbscript ">
</ Script>
<Body>
</ Body>

Posizionando il seguente codice tra i tag body del documento crea un controllo textarea HTML e un pulsante:

<Name = textarea righe "Textarea1" = "13" cols = "80">
</ Textarea>
<input type = valore "pulsante" = "Elenco Processi" onclick = ""> ListProcesses
</ Body>

gestore dell'evento onclick del pulsante chiama una funzione VBScript denominata ListProcesses, che recupera un elenco dei processi in esecuzione e lo memorizza nella textarea.

codice VBScript

Il codice seguente va dopo il primo tag script del documento e imposta il ListProcesses Sub:

ListProcesses sub
winObjectA = "winmgmts:"
winObjectB = "{ImpersonationLevel = impersonate}! \". & "\ Root \ CIMV2"
Set winObject = GetObject (winObjectA & winObjectB)

win32Query = "Select * from Win32_Process"

La prima istruzione memorizza un riferimento al sistema di Windows Management Instrumentation che contiene le informazioni di processo. ImpersonationLevel, visto su l'istruzione successiva, permette WMI per rappresentare le credenziali dell'utente corrente e accedere ai dati WMI. L'istruzione successiva concatena i precedenti due variabili e li memorizza in oggetto denominato winObject. La variabile win32Query contiene la stringa di query utilizzata per recuperare le informazioni di processo da WMI. È possibile recuperare la lista dei processi in esecuzione eseguendo il metodo ExecQuery di quell'oggetto come illustrato di seguito:

Set processList = winObject.ExecQuery (win32Query)

Popolando il Textarea

L'oggetto processList contiene proprietà di processo, come la didascalia e ProcessID, che si possono trovare utili. È possibile visualizzare queste proprietà nel controllo textarea da loop attraverso le voci del processList, come mostrato nel seguente esempio:

risultati = ""
Per ciascun processo in processList
Risultati = risultati & process.Caption & vbLf & process.ProcessID
Il prossimo
End Sub

Il "per ogni" negozi di loop didascalia di ogni processo e ProcessId nei risultati variabili di nome. Quando il ciclo termina, il codice inserisce la stringa all'interno del controllo textarea.

Esecuzione dell'applicazione

È possibile salvare il documento con estensione vbs, trovare in Windows Explorer e fare doppio clic su di esso. Si apre una finestra e visualizza un controllo textarea vuoto e un pulsante; quando si fa clic sul pulsante, viene eseguito il codice e visualizza le didascalie e le ProcessIDs di lavorazione in esecuzione sul computer. È possibile visualizzare le proprietà di processo aggiungendoli alla dichiarazione che imposta la variabile risultati. Un elenco di queste proprietà esiste sulla pagina Web di Microsoft Win32_Process Class. L'esempio seguente aggiunge la proprietà di priorità per la visualizzazione nel controllo textarea:

Risultati = risultati & process.Caption & vbLf & process.ProcessID & vbLf process.Priority

Il valore vbLf assicura che le informazioni di ogni processo risiede su una riga separata nella textarea.