Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateipfad eines 64-bit Prozesses per 32-bit Anwendung abfragen

Frage Entwicklung VB for Applications

Mitglied: mathe172

mathe172 (Level 1) - Jetzt verbinden

26.05.2011 um 21:49 Uhr, 7780 Aufrufe, 4 Kommentare

Hallo,

ich arbeite mit VS2010 Express an einem Programm und hab mal wieder eine Frage...

...und zwar will ich den Dateipfad (der, den man auch im Taskmanager sieht) für alle laufenden Prozesse abfragen. Das Problem:
Es handelt sich hierbei um eine 32-bit Anwendung auf einem 64-bit Windows 7 OS. Nun kommt folgender Fehler, wenn ich den Dateipfad eines 64-bit Prozesses ermitteln will:

01.
Eine Ausnahme (erste Chance) des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten. 
02.
 
03.
Ein 32-Bit-Prozess kann nicht auf Module eines 64-Bit-Prozesses zugreifen.
Den Pfad versuche ich über Process.MainModule.FileName abzufragen.

Kann man das irgendwie umgehen? z.B. per api?

Mit freundlichen Grüßen,
Mathe172
Mitglied: Friemler
26.05.2011 um 22:19 Uhr
Hallo Mathe,

schau mal hier nach. Das ist zwar Delphi-Code, aber evtl. kannst Du Dir dort trotzdem was rausziehen.

Gruß
Friemler
Bitte warten ..
Mitglied: mathe172
27.05.2011 um 22:52 Uhr
Hallo,

danke - ich habs jetzt zwar mit wmi gemacht, hab's aber nur über deinen Link gefunden.
[edit: Bei den Funktionen im Link kam immer: Einstiegspunkt in kernel32.dll nicht gefunden...]

zwei Fragen noch (eine hat zwar nur wenig mit der Anfangsfrage zu tun):
Ich hab jetzt diesen Code:
01.
For Each Process As Process In Process.GetProcesses 
02.
            Try 
03.
                Dim mo As ManagementObject = CType(New ManagementObjectSearcher("select * from Win32_Process where processid = '" & Process.Id & "'").Get(0), ManagementObject) 
04.
                Dim Path As String 
05.
                For Each prop As PropertyData In mo.Properties 
06.
                    If prop.Name = "ExecutablePath" Then Path = prop.Value.ToString 
07.
                Next 
08.
            Catch ex As Exception 
09.
            End Try 
10.
        Next
Warum ist beim Prozess EXPLORER.EXE der Prop.value leer (nothing). Das heisst, er geht in den then-Teil (Zeile 6), sagt aber, prop.value=nothing

Die zweite Frage (ich weiss ich sollte eine neue Frage machen...)
Wenn man mit einer 32bit-Anwendung auf HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (Registry) zugreifen will, wird man ja "umgeleitet" (nach HKLM\SOFTWARE\Wow6432\Microsoft\Windows\CurrentVersion\Run)
Wie kann ich jetzt aber auf den gewünschten Schlüssel zugreifen (ich brauche alle Autostart-Einträge)?

Mit freundlichen Grüßen,
Mathe172
Bitte warten ..
Mitglied: Friemler
27.05.2011 um 23:40 Uhr
Hallo Mathe,

ich habe weder Visual Studio (sondern Delphi) noch ein 64Bit-System (sondern Windows 7 Ultimate 32Bit). Aber wenn ich mit VBS folgende Abfrage mache, erhalte ich einen Wert für ExecutablePath beim Explorer, bei vielen anderen Prozessen jedoch nicht.
01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\CIMV2") 
03.
 
04.
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name='explorer.exe'") 
05.
 
06.
For Each objProcess in colProcesses 
07.
  WScript.Echo "Name          : " & objProcess.Name 
08.
  WScript.Echo "ExecutablePath: " & objProcess.ExecutablePath 
09.
  WScript.Echo "CommandLine   : " & objProcess.CommandLine 
10.
  WScript.Echo 
11.
Next
Das sollte eigentlich das selbe machen, wie Dein Code. Teste das doch mal bei Dir.

Was Deine zweite Frage betrifft, keine Ahnung , Google fragen.

Gruß
Friemler
Bitte warten ..
Mitglied: mathe172
28.05.2011 um 14:00 Uhr
Hallo,

komisch, dein Code funktioniert bei mir auch...
Naja, ich werde mal das Häckchen dran machen. Danke nochmals.

Mit freundlichen Grüßen,
Mathe172
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
32 Bit CAD Programm und Excel 64 Bit geht nicht (5)

Frage von GrueneSosseMitSpeck zum Thema Microsoft Office ...

Windows 10
gelöst MacBook Air Intel HD 3000 und Windows 10 64 bit? (8)

Frage von NeXiaL-Computers zum Thema Windows 10 ...

Windows 10
gelöst Windows 10 Pro 64 Bit "Schnellstart aktivieren" abschalten per GPO (6)

Frage von maxpoint zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...