Find my own process ID in VBScript

后端 未结 10 1031
小蘑菇
小蘑菇 2020-11-28 14:49

I\'m using the following code snippet to determine what process ID my vbscript is running as:

On Error Resume Next
Dim iMyPID : iMyPID = GetObject(\"winmgmts         


        
10条回答
  •  旧巷少年郎
    2020-11-28 15:13

    Here is a better one, but in JScript (sorry, you translate it to VB ...)

    var WshShell = WScript.CreateObject("WScript.Shell");
    var objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2");
    var childProcess =
        WshShell.Exec
        (
            '"' + WshShell.Environment('PROCESS')('ComSpec') + '"'
            +
            " /C Echo \"Text lines\" && Set /p VarName="
        );
    childProcess.StdOut.ReadLine();
    var current_pid =
        objWMIService.ExecQuery
            (
            "Select * From Win32_Process Where ProcessId=" + childProcess.ProcessID
            );
    current_pid = (new Enumerator(current_pid)).item().ParentProcessId;
    if (current_pid)
    {
        childProcess.StdIn.WriteLine("value");  // child process should now exit
        WScript.Echo("Current PID: " + current_pid);
    }
    else
    {
        WScript.StdErr.WriteLine("Get current PID from WMI failed.");
        WScript.Quit(7);
    }
    

提交回复
热议问题