Programmgesteuertes Abrufen der Assemblyversion eines ausgeführten Diensts

8

Ich möchte auf Assemblyversionsinformationen eines Dienstes zugreifen, den ich mit der ServiceController-Klasse "steuere". (Ich würde gerne "2.3.1.23" anzeigen), jedoch kann ich keine Informationen über das Abrufen von Baugruppenversionen finden ... Ist das überhaupt möglich?

BEARBEITEN : Nur um zu verdeutlichen ... Ich kenne nur den Namen des Dienstes, der auf dem lokalen Computer läuft. Ich möchte auf die "FileVersionInfo" dieses Dienstes zugreifen (besser gesagt Dienst-Exe), jedoch weiß ich nicht, wo sich diese Dienst-exe befindet.

    
David Božjak 31.08.2009, 12:38
quelle

3 Antworten

10

Wenn ich Sie richtig verstehe, möchten Sie die Version eines beliebigen Dienstprogramms erhalten. Angenommen, Sie kennen den Namen und Pfad der ausführbaren Datei des Dienstes, können Sie versuchen:

%Vor%

Sie können dann die Eigenschaften der Klasse FileVersionInfo verwenden, um die Versionsnummer anzuzeigen. Bitte beachten Sie, dass dies auch für UNC-Pfade funktioniert, solange Sie Lesezugriff auf die Datei haben.

BEARBEITEN
Um den ausführbaren Pfad und Namen zu erhalten, wenn Sie nur den Namen des Dienstes kennen, können Sie auf die Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services zugreifen. Suchen Sie einen Schlüssel, der dem Dienstnamen entspricht. Unter diesem Schlüssel gibt es einen Wertnamen ImagePath , der den Namen und Pfad der ausführbaren Datei enthält.

    
Thorsten Dittmar 31.08.2009, 12:49
quelle
3

Versuchen Sie Folgendes:

%Vor%     
Andrew Hare 31.08.2009 12:40
quelle
0
%Vor%

Verwenden Sie diesen Code in Ihrem Service.

    
softveda 31.08.2009 13:02
quelle

Tags und Links