vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Dateipfad einer fremden EXE ermitteln 
Autor: Tommi467
Datum: 10.09.13 12:58

Hallo zusammen,

ich hab da ein Problem, bei dem nicht mehr wirklich weiter komme.
Ich schreibe ein Programm, das auf einer anderen Software basiert.
Diese fremde Software kann nun irgendwo auf der Platte installiert
sein und ich muß herausfinden wo.

Ich habe es schon versucht mit der Funktion FindExecutable und ich bekomme
dort auch Dateinamen und Pfad zurück, allerdings ist es nicht die gewünschte
Exe. Mit dem Ergebnis kann ich leider gar nichts anfangen.

Wie kann ich nur anhand der mir bekannten EXE-Datei den Pfad herausfinden
ohne alle Verzeichnisse rekursiv durchsuchen zu müssen? Hat da jemand noch
eine Idee? Kann ich die Reg irgendwie durchsuchen?

Vielen Dank für eure Tipps
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Manfred X
Datum: 10.09.13 13:42

Erkläre genauer.

Schau auch mal hier (ziemlich unten):
http://social.msdn.microsoft.com/Forums/de-DE/04066cb5-223f-4607-8c0c-6d45caab7143/netalternative-zu-findexecutable

FindExecutable sucht die mit einem Dateityp verknüpfte Anwendung.
Die ist nicht eindeutig festzulegen, sondern kann auf jedem system eine
andere sein.

Beitrag wurde zuletzt am 10.09.13 um 13:57:06 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Tommi467
Datum: 10.09.13 14:13

Hallo Manfred,

hab haben wir uns wohl nicht richtig verstanden.
Ich sagte ja, die Function FindExecutable habe ich bereits
getestet und habe dabei, wie du vermutet hast, nicht die
die richtige EXE zurück bekommen.

Den Befehl Process.Start kenne ich auch und nutze ich auch bereits.
Aber da es von der Software unterschiedliche Version gibt und sich
jede anders verhält bzw. gesteuert werden muss, muß ich erst wissen
um welche Version es sich handelt.
Dazu will ich die Dateiinformationen auslesen. Das kann ich aber nur,
wenn ich weiß wo die EXE liegt.

Alles ein bisschen Tricky
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Manfred X
Datum: 10.09.13 14:26

Die "Process"-Klasse besitzt die Eigenschaft "MainModule".
Dort kann der Exe-Filename des gestarteten
Prozesses abgefragt werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Tommi467
Datum: 10.09.13 15:04

Vielen Dank Manfred,

hab deinen Tip funktionsfähig realisieren können.
Leider mit einem unzureichenden Ergebnis für mich

Folgenden Script läuft tadellos:
Als myProcessModule.FileName bekomme ich dann den Dateinamen sammt Pfad zurück.

        Dim myProcess As New Process()
        Dim myProcessStartInfo As New ProcessStartInfo("notepad.exe")
        myProcess.StartInfo = myProcessStartInfo
        myProcess.Start()
        System.Threading.Thread.Sleep(1000)
        Dim myProcessModule As ProcessModule
        Dim myProcessModuleCollection As ProcessModuleCollection = _
          myProcess.Modules
 
        myProcessModule = myProcess.MainModule
        Debug.Print("The process's main moduleName is:  " + _
          myProcessModule.ModuleName)
        Debug.Print("The process's main module's base address is: " + _
                                myProcessModule.BaseAddress.ToString())
        Debug.Print("The process's main module's Entry point address is: " + _
                                myProcessModule.EntryPointAddress.ToString())
        Debug.Print("The process's main module's File name is: " + _
                                myProcessModule.FileName)
        myProcess.CloseMainWindow()
Wenn ich nun aber Notepad.exe durch den Namen meiner EXE ersetzt,
bekomme ich eine Fehlermeldung:

"Win32Exception wurde nicht behandel.
Das System kann die angegebene Datei nicht finden"

Womit ich leider wieder bei 0 bin
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Manfred X
Datum: 11.09.13 09:08

Registry-Schlüssel nach Software durchsuchen ....

oder:

eine Liste der installierten Programme erstellen lassen:
http://www.anonym-surfen.com/wie-sie-eine-liste-installierter-programme-erzeugen

http://www.tecchannel.de/server/windows/461606/wmi_scripting/index4.html

Beitrag wurde zuletzt am 11.09.13 um 09:12:40 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateipfad einer fremden EXE ermitteln 
Autor: Tommi467
Datum: 11.09.13 12:07


Hallo Manfred,

noch einmal vielen Dank für deine Hilfe.

In der Zwischenzeit habe ich tatsächlich schon Programmteile getestet, die
die Registry untersuchen. Auch diese funktionieren einwandfrei.

Problem: Der Hersteller legt die Einträge mit jeder Version anders ab, es gibt
keinen Ansatzpunkt, um die Registry auf geeignete weise zu durchforsten.
Das liegt aber nicht am Source sondern einfach an dem bekloppten Hersteller.

Ich habe mich jetzt doch für die Vorgehensweise entscheiden, die
Platte zu durchsuchen. Es ist einfach zuverlässiger und in einem akzeptablen
Zeitrahmen möglich.

Mir wäre es anders auch lieber gewesen, aber an dieser Stelle war es (für mich)
einfach nicht machbar. Aber zumindest beim testen wieder etwas dazu gelernt.

Noch einmal vielen Dank für die Hilfe


Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel