Pfade der gestarteten Programme

Für allgemeine Fragen zur Programmierung mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Pfade der gestarteten Programme

Beitrag von a14xerus »

Hi Leute, wie komme ich an die Datei Pfade der Programme, die im Moment laufen?
Die einzige Funktion die ich gefunden habe ist GetModuleFileName_(), aber wie komm ich an das Modulhandle ( GetModuleHandle_() ...) eines Fensters (die HWND des Fensters hol ich mir mit EnumWIndows_() )?
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ProgramFilename() ? :?
Windows 10 Pro, 64-Bit / Outtakes | Derek
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ich denke das aus meinem post wenigstens herausgehen sollte, das ich externe programe meine
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

siehe in den sourcen zur der processgeschichte aus PBOSL getprocessfilename()
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

danke
habe diesen Code hier geschrieben, hängt sich aber mit nem IMA beim getprocessfilename() auf

Code: Alles auswählen

Procedure Processes()
  Protected pid.l, name$, pfad$
  ExamineProcesses()
  While NextProcess()
    pid = GetProcessPID()
    If pid
      name$ = GetProcessName(pid)
      If name$
        pfad$ = GetProcessFileName(pid)
        Debug "#####"
        Debug pid
        Debug name$
        Debug pfad$
      EndIf
    EndIf
  Wend
EndProcedure
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

//edit: da is irgendein post weg...
also: getestet mit @pid

jetzt kommt zwar kein IMA mehr, aber "pfad$" ist immer leer
Zuletzt geändert von a14xerus am 15.08.2007 19:56, insgesamt 1-mal geändert.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

unter 3.94 geht das alles noch .. hab keine ahnung .. dafür feierabend
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

in der PBOSL_Process.pb steckt ein kleiner Fehler, der den IMA auslöst.

hier erst mal der Fix:

Suchen nach:

Code: Alles auswählen

Prototype.l GetModuleFileName(a,b.p-ascii,c)
Ersetzen durch:

Code: Alles auswählen

Prototype.l GetModuleFileName(a,b,c.p-ascii,d)
Suchen nach:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, Name.s, Len(Name.s))
Ersetzen durch:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, DLLMemModule, Name.s, Len(Name.s))
Suchen nach:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, Name$, Len(Name$))
Ersetzen durch:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, BaseModule, name$, Len(name$))
Suchen nach:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, Name$, Len(Name$))
Ersetzen durch:

Code: Alles auswählen

Result=GetModuleFileName(hProcess, BaseModule, name$, Len(name$))
that's it. Den gefixten Source kannst Du dann direkt in Deinen Code includen.

Code: Alles auswählen

XIncludeFile "C:\Programme\PureBasic\sources\PBOSL4\LIBS4\PB\PBOSL_Process\Source\PBOSL_Process.pb"

Procedure Processes()
  Protected pid.l, name$, pfad$
  PBOSL_Process_Init()
  ExamineProcesses()
  While NextProcess()
    pid = GetProcessPID()
    If pid
      name$ = GetProcessName2(pid)
      If name$
        pfad$ = GetProcessFileName2(pid)
        Debug "#####"
        Debug pid
        Debug name$
        Debug pfad$
      EndIf
    EndIf
  Wend
  PBOSL_Process_End()
EndProcedure

Processes()
Grüße ... Kiffi
a²+b²=mc²
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

danke für den tipp....
Aber ich hab die PBOSL nur in Lib-version, von hier geladen.
Wie komm ich denn an diese Version?

//edit: schon gefunden ;)

//edit: muss ich dann die libs löschen ,wenn cih die source-codes nehme???
Und ProcedureDLL in Procedure umbenennen?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

a14xerus hat geschrieben://edit: muss ich dann die libs löschen ,wenn cih die source-codes nehme???
ja
a14xerus hat geschrieben:Und ProcedureDLL in Procedure umbenennen?
nein

Grüße ... Kiffi
a²+b²=mc²
Antworten