AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Prozessname von 32Bit Applikation unter 64Bit Windows 7
Thema durchsuchen
Ansicht
Themen-Optionen

Prozessname von 32Bit Applikation unter 64Bit Windows 7

Ein Thema von Ahlers · begonnen am 14. Jun 2011 · letzter Beitrag vom 29. Jun 2011
Antwort Antwort
Seite 1 von 2  1 2      
Ahlers

Registriert seit: 6. Feb 2011
8 Beiträge
 
#1

Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 14. Jun 2011, 22:21
Hallo,
ich habe schon seit langer Zeit ein Programm, besser einen Dienst, der die laufenden Prozesse ermittelt. Nun habe ich aber auf meinem PC Windows 7 mit 64 Bit. Und da findet mein Programm nur die Namen der 32 Bit Prozesse.
Ich benutze erst enumProcesses und bekomme dort die ID von allen (auch 64 Bit) Prozessen. Dann mache ich ein openProcess um dann mit GetModuleFileNameEx den Namen zu bekommen. Nun funktioniert openProcess aber für die 64 Bit Prozesse nicht mehr.
Es sieht so aus, als könne man das nur von einer 64 Bit Applikation aus machen. Ich habe aber nur ein 32Bit Delphi.
Kann ich doch irgendwie an die Exe-Namen aller laufenden Prozesse kommen?

Gruß
Erwin
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 14. Jun 2011, 22:26
Erst mal ... Willkommen
Zitat:
Ich habe aber nur ein 32Bit Delphi.
das haben 99,9 % von uns auch...
Auch wenn ich es nicht genau weiß, denke ich, daß du mit deiner Vermutung Recht hast.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 14. Jun 2011, 22:37
Hallo und willkommen in der

in meinem Programm SystemInfo werden alle Prozessnamen, egal ob 64Bit oder 32Bit ausgelesen und angezeigt. Schaue Dir mal dazu MSDN-Library durchsuchenCreateToolhelp32Snapshot. Damit solltest Du wieterkommen.

Edit: Für den MSDN Beitrag ist noch die Unit TlHelp32 wichtig.
Rolf Warnecke
App4Mission

Geändert von RWarnecke (14. Jun 2011 um 22:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#4

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 14. Jun 2011, 23:06
http://www.delphipraxis.net/160046-d...ermitteln.html
http://www.delphi-forum.de/viewtopic...=92373&start=0
und eventuell noch das hier
http://www.delphipraxis.net/160060-r...t-prozess.html

Lesen kann man ja nie genug, vorallem um auch die Hintergründe zu erfahren.


PS: man glaubt garnicht, was so alles die bekannten Suchfunktionen ausspucken, wenn man sie dann mal nutzt > Google: delphi "64 bit" prozesse auflisten
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Jun 2011 um 23:08 Uhr)
  Mit Zitat antworten Zitat
Ahlers

Registriert seit: 6. Feb 2011
8 Beiträge
 
#5

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 15. Jun 2011, 23:19
CreateToolhelp32Snapshot liefert mir die Namen der Prozesse, auch der 64 Bit Prozesse. Allerdings hole ich mir bisher auch noch den Pfad zu der Exe und den User. Und das liefert mit CreateToolhelp32Snapshot nicht. Daher habe ich es damals schon verworfen.

Der andere Tip mit dem NtQueryInformationProcess hört sich recht vielversprechend an. Allerding muss dazu auch openProcess funktionieren. Und das schlägt bei mir schon fehl, sprich ich bekomme 0 als Handle zurück. Ich habe auch schon versucht, mir spezielle Rechte (SE_DEBUG_NAME) zu holen, hat aber auch keinen Erfolg.

Muss vielleicht doch noch mehr googlen. Oder mache ich etwas falsch, dass openProcess auch für die 64 Bit Prozesse funktionieren müßte?

Erwin
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#6

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 15. Jun 2011, 23:39
Man kann sich eben nicht einfach Rechte holen, welche einem nicht zuerkannt wurden.
Man kann höchtens freigegebene Rechte "aktivieren".

Es wäre ja ein Sicherheitsloch, wenn man so einfach auf fremde Prozesse zugreifen dürfte.

Also wenn du nicht deinen Prozess mit ausreichend hohen Rechten startest, wird es etwas schwer werden.
Na gut, z.B. über das UAC könnte man sich auch nachträglich noch die Rechte erhöhen/freigeben lassen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Ahlers

Registriert seit: 6. Feb 2011
8 Beiträge
 
#7

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 16. Jun 2011, 08:15
Ich bin davon ausgegangen, dass ich alle Rechte habe. Ich bin in der Administratorgruppe. Allerdings ist das ja bei Windows 7 mit dem UAC anders und ich habe die Rechte wahrscheinlich nicht automatisch. Allerdings habe ich keine Ahnung, wie ich mir die Rechte dann geben kann. Ich sollte mein Programm mal auf einem 32Bit Windows 7 probieren. Wenn es da klappt, liegt es an den 64Bit und nicht den Rechten.
Aber wie gesagt: bei mir funktioniert das openProcess schon nicht.

Erwin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 16. Jun 2011, 09:07
bei mir funktioniert das openProcess schon nicht.
Was heißt "funktioniert nicht"? Du hast doch eine Fehlerbehandlung, die wird dir doch dann zumindest den Grund sagen können, warum OpenProcess Fehlschlägt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Ahlers

Registriert seit: 6. Feb 2011
8 Beiträge
 
#9

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 16. Jun 2011, 13:41
Das ist ein guter Tip wo ich auch selber hätte drauf kommen können.
Ich frage das Handle, welches ich von openProcess bekommen, nur auf <>0 ab. Daher sehe ich also, dass ich kein gültiges Handle bekommen. Im Fehlerfall sollte ich aber nocht getLastError aufrufen, um zu erfahren, was wirklich schief gegangen ist. Werde ich mal machen. Vielleicht weiß ich dann ja mehr.
  Mit Zitat antworten Zitat
Ahlers

Registriert seit: 6. Feb 2011
8 Beiträge
 
#10

AW: Prozessname von 32Bit Applikation unter 64Bit Windows 7

  Alt 26. Jun 2011, 22:37
Ich bin in den letzten Tagen nicht dazu gekommen, hier meinen "Progress" zu berichten.
Kurz: es funktioniert jetzt und hatte wirklich mit den Rechten zu tun.
Das Programm muss schon als Administrator aufgerufen werden (kann man ja als Option noch in die Eigenschaften beim Windows Explorer einstellen) und dann kommt immer noch die Abfrage, ob man Änderungen am Rechner zulassen möchte. Dann funktioniert es aber.
Da ich das ganze aber in einem Dienst ausführe, brauche ich diese Sachen nicht zu machen. Als Dienst funktioniert es auch so.

Danke für die Tips
Erwin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz