"Ort" finden und an anderes Programm weitergeben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

"Ort" finden und an anderes Programm weitergeben

Beitrag von sen-me »

Wie kann ich von der Datei, die gerade läuft (exe) den Path finden, und dan eine andere exe starten und diese Information weitergeben?

wenn das nicht geht, auch net schlimm, dann muss ich halt es umständlich amchen und ne datei anlegen, reinspeichern, programm starten, einlesen, löschen ^^

aba wie kann ich den Aufenhaltsort der laufenden exe rausfinden?
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Du kannst bei RunProgramm einfach Parameter angeben,
welche an das Programm übergeben werden. Das Programm kann diese
dann mit Programm [c]ProgramParameter()[/c] auslesen.

[c]RunProgramm("datei.exe","informationen die an die exe übergeben werden","")[/c]
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Hol Dir mal die PBOSL. Ist zwar n Sack voll Daten ..
aber da ist unter anderem genau das dabei was du suchst
apppath() nennt sich das.

ansonsten unter windoofs

Code: Alles auswählen

ProgrammPfad.s = Space(255) 
GetCurrentDirectory_(255, @ProgrammPfad)
Debug ProgrammPfad
sowas findet man alles hier im Forum .. muss man nur mal nach suchen
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Icke
Beiträge: 143
Registriert: 08.09.2004 13:19

Beitrag von Icke »

Meinst du so?

Code: Alles auswählen

buffer.s = Space(1000)
GetCurrentDirectory_(1000,@buffer)
path$=buffer

Debug path$

RunProgram("deine.exe",path$,"")
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Als Größe des Buffers sollte man afaik nicht 1000 und auch nicht 255 verwenden, sondern #MAX_PATH - und das ist bei mir 260
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Den Pfad Deiner eigenen Exe kannst über GetCurrentDirectory_ nicht zuverlässig finden, da dieser veränderbar ist. Folgender Code gibt den Pfad korrekt wieder. Nachteil: in der Ide erhälste dann auch den echten Pfad, also den von PureBasic\Compilers\

Code: Alles auswählen

Procedure.s GetAppDir()
  FullPath.s = Space(#MAX_PATH)
  GetModuleFileName_(GetModuleHandle_(0), @FullPath, #MAX_PATH)
  FullPath = GetPathPart(FullPath)
  If Right(FullPath, 1) <> "\" : FullPath + "\" : EndIf
  ProcedureReturn FullPath
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Icke
Beiträge: 143
Registriert: 08.09.2004 13:19

Beitrag von Icke »

...und wieder was dazugelernt.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Icke hat geschrieben:...und wieder was dazugelernt.
Solche Fehler, da nur selten auftretend, lassen sich sehr schwer finden. Hab dies aber bereits mehrmals gepostet, es wird immer wieder GetCurrentDirectory_ vorgeschlagen, der nur das aktuelle Verzeichnis wiedergibt. Das aktuelle Verzeichnis kann über z.B. SetCurrentDirectory_ aber beliebig verändert worden sein
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten