ExcelまたはWordプロセスなどから現在開いているファイルを見つける方法はありますか? Windows で実行中のすべてのプロセスと、現在開いているファイルのリストを取得したいと考えています。
質問する
10041 次
2 に答える
3
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
変更元:http ://www.windowsadminscripts.com/coding/networking/processes/
おそらく、開いているウィンドウのリストの方が便利かもしれません。
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
そのようにそれを使用してください:
ListWins "*.doc*"
これにより、 .docを含むタイトルのすべてのWordウィンドウが一覧表示されます
于 2012-04-19T11:54:56.733 に答える
1
vb6 を使用する理由はありますか?
編集:それが役立つかどうかはわかりませんが、VB6でプロセスリストを取得する方法の例を含むリンクがあります:http://wiki.robotz.com/index.php/Process_List_and_Locate_VB6
于 2012-04-19T11:08:33.077 に答える