How to get the file name of the process that is currently running in vb6

Is there a way to find the current open file from an Excel or Word process, etc.? I want to get a list of all running processes in Windows and the files that they currently open.

0
source share
2 answers

How about a list of running processes using VBA

Function getProcessInfo() ''On Error Resume Next Dim objProcess, process, strNameOfUser ComputerName = "." Set objProcess = GetObject("winmgmts:{impersonationLevel=impersonate}\\" _ & ComputerName & "\root\cimv2").ExecQuery("Select * From Win32_Process") For Each process In objProcess If process.Name <> "System Idle Process" And process.Name <> "System" Then ''Debug.Print process.Name Debug.Print process.Name & "," & process.executablepath _ & "," & process.Priority & "," & process.sessionid _ & "," & strNameOfUser & "," & process.handlecount _ & "," & process.ThreadCount End If Next Set objProcess = Nothing End Function 

Changed: http://www.windowsadminscripts.com/coding/networking/processes/

Perhaps a list of open windows might be more useful:

 Private Const GW_HWNDNEXT = 2 Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Sub ListWins(Optional Title = "*", Optional Class = "*") Dim hWndThis As Long hWndThis = FindWindow(vbNullString, vbNullString) While hWndThis Dim sTitle As String, sClass As String sTitle = Space$(255) sTitle = Left$(sTitle, GetWindowText(hWndThis, sTitle, Len(sTitle))) sClass = Space$(255) sClass = Left$(sClass, GetClassName(hWndThis, sClass, Len(sClass))) If sTitle Like Title And sClass Like Class Then Debug.Print sTitle, sClass End If hWndThis = GetWindow(hWndThis, GW_HWNDNEXT) Wend End Sub 

Use it like this:

 ListWins "*.doc*" 

This will display all Word windows with a title containing .doc

+2
source

Is there a reason why you are using vb6?

Edit: I don’t know if this will help you, but here is a link, with some examples, how to get the list of processes in VB6: http://wiki.robotz.com/index.php/Process_List_and_Locate_VB6

+1
source

Source: https://habr.com/ru/post/946303/


All Articles