Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
c0re_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 29.11.2007
Beiträge: 425

Prozess-ID eines Tasks ermitteln
Verfasst am: 22.03.2008, 20:57

Ich möchte anhand des Tasknamens die Task-ID des dazugehörigen Prozesses ermitteln.
Hatte mal einen Code dazu, finde ihn aber leider nicht mehr.

Kann mir einer von euch weiterhelfen? Wisst ihr wie das geht?

c0re
 
Viktor
« Webmaster »<b><font color=red>« Webmaster »</fo



Anmeldedatum: 08.12.2006
Beiträge: 354
Wohnort: Berlin


Verfasst am: 22.03.2008, 21:33

Du holst dir das Handle per FindWindow() bzw. FindwindowEx() und benutzt darauf dann die Funktion GetWindowThreadProcessId().
Die Funktion erwartet 1. handle und 2. eine Variable zur Speicherung der ID.


Hier in C++ hab ichs schnell geschrieben, ist angenehmer auf das Suchen der API-Deklerationen zu verzichten.
Das Programm liest die ProzessID von Winamp aus.
Ich versuchs mal in VB umzusetzen Mr. Green :

Code:
#include <iostream>
#include <windows.h>

using namespace std;

int main(){
   HWND hWnd;
   hWnd = FindWindow("BaseWindow_RootWnd", "Main Window");

   if(hWnd){
      DWORD pid;
      GetWindowThreadProcessId(hWnd, &pid);

      cout << "Prozessid: " << pid << endl;
   }

   return 0;
}



So hier in VB

Code:
Declare Function FindWindow Lib "user32" _
                 Alias "FindWindowA" ( _
                 ByVal lpClassName As String, _
                 ByVal lpWindowName As String) As Long

Declare Function GetWindowThreadProcessId Lib "user32.dll" _
                (ByVal hWnd As Long, _
                lpdwProcessId As Long) As Long

Sub main()
    Dim hWnd As Long
    hWnd = FindWindow("BaseWindow_RootWnd", "Main Window")
   
    Dim pid As Long
    GetWindowThreadProcessId hWnd, pid
   
    MsgBox pid
End Sub


Die Parameter für FindWindow() sind 1. Klasse und 2. Fenstertitel.
Du brauchst aber nur eins von beiden anzugeben.
Die Werte dafür bekommst du z.B. mit dem Tool spy++, welches bei Visual Studio dabei ist.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: prozesses ermitteln, prozessid, taskid, tasks

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Frage über mein game 237 25.09.2011, 17:33
Keine neuen Beiträge Wie bringe ich mein Programm dazu, auf Return zu reagieren? 619 24.12.2009, 15:42
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 916 20.05.2002, 01:28
Keine neuen Beiträge [Umfrage] Scelus Trojaner (Source Code) 2368 06.10.2007, 11:54
Keine neuen Beiträge Eine kleine Frage an euch.. 1023 30.09.2007, 09:57
 


[ Time: 0.1089s ][ Queries: 83 (0.0517s) ][ GZIP on - Debug on ]