RunProgram: Bilder werden nicht geladen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

RunProgram: Bilder werden nicht geladen

Beitrag von DrNo »

Hallo,
Wenn ich ein Unterprogramm eines Programmes von mir mit RunProgram("data\new.exe") starte, dann werden nie die Images im gestarteten Programm angezeigt. Wenn ich es manuell starte dann schon. Woran liegt den dass?
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 »

Am fehlendem dritten Parameter
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@DrNo
Wenn du ein Bild mit Paint öffnen möchtest:

Code: Alles auswählen

RunProgram("mspaint.exe","Bild.bmp","",0)
Aber wenn du ein Bild mit deinem eigenen Programm öffnen möchtest, dann musst du erst den Parameter bei deinem Programm ermitteln:
Parameter$ = ProgramParameter()

\\Edit:
@ts-soft
Achso stimmt.
Zuletzt geändert von RSBasic am 27.10.2008 18:58, insgesamt 1-mal geändert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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 »

Ich denke mal, RSBasic hat die Frage nicht verstanden.

Die zu startende Exe findet ihre Bilder nicht, da der Pfad nicht gesetzt wird,
diesen kann man im dritten Parameter übergeben. Das Programm ist
anscheinend zu blöd, selbst den Pfad zur eigenen Exe einzustellen.
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
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Bei solchen Fehlern gewöhnt man sich schnell an, die Pfade in jedem Programm immer selbst festzulegen bzw. rauszufinden (und das als erstes z.B. GetCurrentDirectory() )
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Bisonte hat geschrieben:Bei solchen Fehlern gewöhnt man sich schnell an, die Pfade in jedem Programm immer selbst festzulegen bzw. rauszufinden (und das als erstes z.B. GetCurrentDirectory() )
Hab ich gemacht, klappt aber trotzdem nicht.
Schlag mich doch TS...
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 »

Okay, ich hau gleich :lol:
entweder in der New.exe:

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename()))
Oder im anderen Programm:

Code: Alles auswählen

RunProgram("data\new.exe", "", {pfad zur new.exe}) 
PS: GetCurrentdirectory kann nicht funktionieren, wenn Du nicht die zweite
Variante nutzt, das verweist nämlich sonst nicht automatisch auf das eigene
Verzeichnis. Sollte man sich also merken, GetCurrentDirectory zeigt nur
auf das eigene Verzeichnis, wenn "Ausführen in" angegeben wurde, oder
bei start mit doppelklick in irgendeinem Dateimanager.
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
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

okay habs mit der 2. Variante gemacht und jetzt gehts :allright: Danke schön!
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

ts-soft hat geschrieben:...PS: GetCurrentdirectory kann nicht funktionieren, wenn Du nicht die zweite
Variante nutzt, das verweist nämlich sonst nicht automatisch auf das eigene
Verzeichnis. Sollte man sich also merken, GetCurrentDirectory zeigt nur
auf das eigene Verzeichnis, wenn "Ausführen in" angegeben wurde, oder
bei start mit doppelklick in irgendeinem Dateimanager.
Und wieder was dazugelernt ;)

Naja... bisher ein Programm das ein eigenes Programm aufruft hab ich bisher auch noch nie gebraucht... passte bisher immer in eines ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

...dafür gibts doch GetExePath..?

btw. wie ist das eigentlich... gilt die CurrentDirectory systemweit oder nur Taskweise?

wenn Ersteres der Fall ist, kann die doch sonstwas zurückliefern, wenn man die mit nem anderen Prog ändert...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten