Aktuelle Zeit: 23.05.2013 03:23

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: (WinAPI) Pfad + Name des eigenen Programmes ermitteln
BeitragVerfasst: 29.08.2004 06:18 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
Frage:
Wie bekomme ich denn den Pfad oder den Namen meines
Programmes heraus?

Antwort:
Den Pfad Deines Programmes bekommst Du mit folgender
Prozedur raus:
Code:
Procedure.s ExePath()
  ExePath$ = Space(2048)
  GetModuleFileName_(0,@ExePath$,2048)
  ProcedureReturn GetPathPart(ExePath$)
EndProcedure

MessageRequester("",ExePath(),0)


Und das Gleiche für den EXE-Namen:
Code:
Procedure.s ExeName()
  ExeName$ = Space(2048)
  GetModuleFileName_(0,@ExeName$,2048)
  ProcedureReturn GetFilePart(ExeName$)
EndProcedure

MessageRequester("",ExeName(),0)

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16.10.2005 18:58 
Offline
Benutzeravatar

Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Und weil ichs grad gebraucht habe, die Linux-Äquivalente:

Code:
Procedure.s ExePath()
  Protected ExePath$, len
  ExePath$ = Space(2048)
  len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)
  ExePath$ = Left(ExePath$,len)
  ProcedureReturn GetPathPart(ExePath$)
EndProcedure

Procedure.s ExeName()
  Protected ExePath$, len
  ExePath$ = Space(2048)
  len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)
  ExePath$ = Left(ExePath$,len)
  ProcedureReturn GetFilePart(ExePath$)
EndProcedure

_________________
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16.10.2005 19:38 
Offline
Benutzeravatar

Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Frage am Rande:
Kann man in der Zeile
Code:
len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)

nicht Str(getpid_()) durch "self" ersetzen? Ich dachte immer, dass der
Ordner "self" immer auf das eigene programm zeigt :oops:.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16.10.2005 19:51 
Offline
Benutzeravatar

Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Jo, geht auch. Habs allerdings so gemacht weil ich es auch mit getppid_() (PID von Parent-Process) ausprobieren wollte.

_________________
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 26.08.2009 19:52 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
Kann zufällig jemand die MacOS-Varianten dieses Codes posten?

(Denn wenn ich mich nicht total täusche, dann gibt es diese Funktionen auch mit dem mittlerweile verfügbaren PB 4.40 beta nicht nativ, oder?)

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 26.08.2009 20:09 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
MultiPlattform-mässig sollte es so gehen:
Code:
Procedure.s ExePath()
  ProcedureReturn GetPathPart(ProgramFilename())
EndProcedure

Procedure.s ExeName()
  ProcedureReturn GetFilePart(ProgramFilename())
EndProcedure

Debug ExePath()
Debug ExeName()
:wink:

Gruß
Thomas

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 26.08.2009 20:12 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
@ts-soft: Ich habs geahnt, dass ich was übersehen habe... :oops: Danke! :mrgreen:

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye