ProgramRunning() tut nicht!!

Anfängerfragen zum Programmieren mit PureBasic.
OlderCoder
Beiträge: 134
Registriert: 18.03.2013 12:30
Wohnort: Bayerland
Kontaktdaten:

ProgramRunning() tut nicht!!

Beitrag von OlderCoder »

Hallo allerseits,

ich komm mir schon sehr blöd vor.
Aber alle Versuche, die Funktion ProgramRunning() zu verwenden, scheitern.

Was soll denn hier verkehrt sein?

Code: Alles auswählen

1 nummer=RunProgram("C:\Windows\notepad.exe")
2 Repeat
3   Debug ProgramRunning(nummer)
4 ForEver  
Es kommt in Zeile 3 der Fehler [ERROR] Das angegebene 'Program' ist ungültig.

Was soll ich davon halten? Notepad.exe startet ganz normal.
Und ich hab mir hier im Forum und in der Hilfe einen Wolf gesucht, um Hinweise zu finden.
Ich hab es auch mit anderen Dateien versucht, die Variable extra deklariert, alles umsonst.
Das gleiche Problem hatte ich übrigens, als ich vorher IsProgram() versucht hatte. Da wusste ich noch nichts von ProgramRunning().
Es ist ausgesprochen nervig, bei solchen Banalitäten stundenlang nach dem Fehler zu suchen.
Ich möchte wissen, wann ein per PB gestartetes Programm beendet ist. Das kann doch nicht so schwer sein.

Bitte helft mir!
Gruß
OlderCoder
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ProgramRunning() tut nicht!!

Beitrag von RSBasic »

#PB_Program_Open fehlt als Parameter bei RunProgram().
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
OlderCoder
Beiträge: 134
Registriert: 18.03.2013 12:30
Wohnort: Bayerland
Kontaktdaten:

Re: ProgramRunning() tut nicht!!

Beitrag von OlderCoder »

Du hast mich wieder mal gerettet, danke!
Genau das ist es.
Meiner Meinung nach gehört eine solche Info unbedingt als Hinweis bei ProgramRunning() in die Hilfe!
Liest man die Info zu diesem Flag bei RunProgram, dann kann man auf diesen Gedanken kommen. Aber die Idee muss man erst mal haben.
Ich dachte, die Flags versetzen das geöffnete Programm vielleicht in einen speziellen Zustand, der weitere Probleme nach sich ziehen könnte. Die meisten Beschreibungen haben mir nichts gesagt.

Gibt es hier im Forum irgendeinen Seelsorge-Thread für frustrierte 'Programmierer' mit dem Titel "Hilfe - Hallo Welt tut nicht - ich bin am Ende!" oder so?
Langsam bin ich reif dafür. :roll:
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ProgramRunning() tut nicht!!

Beitrag von STARGÅTE »

Naja wenn du die Hilfe zu RunProgram() durchgelesen hättest (was du ja nutzt, bevor du ProgramRunning() verwendest), hättest du lesen können:
Die folgenden Befehle können verwendet werden, wenn ein Programm mit dem #PB_Program_Open Flag ausgeführt wurde:

- IsProgram(): überprüft, ob eine Nummer ein gültiges - mittels RunProgram() ausgeführtes Programm - darstellt.
- ProgramID(): gibt die OS Prozess-ID des Programms zurück.
- ProgramRunning(): überprüft, ob ein Programm noch läuft.
[...]
Auch zum Rückgabewert steht etwas:
Konnte das Programm nicht ausgeführt werden, ist der Rückgabewert gleich Null. War RunProgram() erfolgreich, ist der Rückgabewert ungleich Null.

Wenn #PB_Program_Open in den übergebenen Flags enthalten war, ist der Rückgabewert eine Nummer, welche das Programm identifiziert.
Das heißt nur bei #PB_Program_Open ist der Rückgabewert überhaupt als "Nummer" zu nutzen.

Für die schreiber der Hilfe ist es halt einfacher im Haupt-Thema alles zu erklären, als in allen "Unterbefehlen" noch mal das Verhalten zu erklären.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
OlderCoder
Beiträge: 134
Registriert: 18.03.2013 12:30
Wohnort: Bayerland
Kontaktdaten:

Re: ProgramRunning() tut nicht!!

Beitrag von OlderCoder »

Du hast Recht. Ich hab auf jeden Fall nicht genau genug gelesen. Keine Frage.
Das häng ich mir übers Bett als Leitsatz für die Zukunft. :)
Antworten