ich komme mit ProgramRunning nicht klar

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ich komme mit ProgramRunning nicht klar

Beitrag von RSBasic »

So habe ich das auch verstanden. :wink:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Pelagio
Beiträge: 423
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: ich komme mit ProgramRunning nicht klar

Beitrag von Pelagio »

Ich habe mal ein wenig gekramt und folgendes ausgegraben was, so glaube ich, das Problem erkennt und die Lösung ist.

Code: Alles auswählen

CreateMutex_(0, 1, ProgrammName)
	If (GetLastError_() = #ERROR_ALREADY_EXISTS)
		MessageRequester("InfoBox: Achtung!", "Programm läuft schon", #MB_OK|#MB_ICONERROR)
	Else
		RunProgramm (ProgrammName)
	EndIf
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.03 LTS]. :allright:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: ich komme mit ProgramRunning nicht klar

Beitrag von NicTheQuick »

Das hilft auch nicht. Du merkst nicht, wenn das externe Programm beendet wird. Und du merkst auch nicht, wenn jemand anderes als dein Programm das externe Programm gestartet hat.
Bild
Benutzeravatar
wie_jetzt?
Beiträge: 21
Registriert: 28.08.2017 17:23

Re: ich komme mit ProgramRunning nicht klar

Beitrag von wie_jetzt? »

Hallo Allerseits!
Zuerst mal herzlichen Dank, dass Ihr Euch so viel um das Problem kümmert. Da sind eine ganze Menge Ansätze, die ich Anfänger gar nicht bedachte - das zeigt sich, wie tief Ihr alle in der Materie steckt! Großes Lob!

Im Lichte dessen habe ich erkannt, dass ich mich unklar ausgedrückt habe und mehr Verwirrung als unbedingt notwendig gestiftet habe - tut mir leid!

Also zur Dingsbums.exe:
Ein Programm, dass der User meines Programmes starten können soll, jedoch nicht unbedingt muss. Wenn es gestartet wird, soll nur eine Instanz davon laufen und nicht x-mal gestartet werden, nur weil es im Hintergrund eines Fensters nicht gesehen wird.
Allerdings - wie von Euch richtig bedacht wurde - bekommt mein Prog nicht unbedingt mit, wenn dingsbums.exe geschlossen wird. Meine unbedachte 08/15-Lösung

Code: Alles auswählen

if aufruf = 0
 aufruf=runprogram(dingsbums.exe)
endif
lässt nur einen einmaligen Start zu. Wenn der User das dingsbums.exe schließt, ist damit kein neuer Start mehr möglich.

Ich glaube, ich brauche 2 Dinge:

1) In dingsbums.exe die Prüfung, ob dingsbums.exe bereits läuft, um eine neue Instanz gleich wieder abzuwürgen.
2) In meinem Prog eine Prüfung, ob dingsbums.exe bereits läuft und wenn nicht, dann starten, und wenn doch, dann in den Vordergrund bringen.

Könnt Ihr mir da helfen? Gibt es irgendwo so eine "Schweizer-Taschemnesser-User-Lib", wo all sowas schon alles vorgekaut und Anfängerfreundlich serviert wird?
Was das Programmieren angeht, bin ich ein Anfänger mit fast 40 Jahren Erfahrung, mit gelegentlichen, mitunter jahrzehntelangen Unterbrechungen. Kann mich noch dunkel an den TI58 bei der Bundeswehr Anfang der 1980er erinnern. Habe da mit "Mondlandung" viele Stunden der Heimatverteidung verbracht - Insider werden's kennen.
... wir hatten doch sonst nix!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: ich komme mit ProgramRunning nicht klar

Beitrag von NicTheQuick »

Ich muss nochmal nachhaken: Ist Dingsbums.exe auch ein Programm von dir, das du ändern kannst? Das würde einiges einfacher machen.
Bild
Benutzeravatar
wie_jetzt?
Beiträge: 21
Registriert: 28.08.2017 17:23

Re: ich komme mit ProgramRunning nicht klar

Beitrag von wie_jetzt? »

Jep, dingsbums.exe ist auch von mir - um ehrlich zu sein, beschränkt sich da jedoch mein Beitrag mehr auf oberflächliches Anpassen und Zusammensetzen von Code-Schnippseln, deren Programmierung in nicht unerheblichem Maße von den Könnern dieses Forums stammt. Also eine Art Gesamtkunstwerk, wobei ich mich da eher als Koch verstehe, der sich der "Gewürze" dieses Forums (und anderer Quellen) bedient.
Was das Programmieren angeht, bin ich ein Anfänger mit fast 40 Jahren Erfahrung, mit gelegentlichen, mitunter jahrzehntelangen Unterbrechungen. Kann mich noch dunkel an den TI58 bei der Bundeswehr Anfang der 1980er erinnern. Habe da mit "Mondlandung" viele Stunden der Heimatverteidung verbracht - Insider werden's kennen.
... wir hatten doch sonst nix!
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

Re: ich komme mit ProgramRunning nicht klar

Beitrag von ts-soft »

Dann hast Du doch alles, was möglich ist. Mein Modul, aufrufen wie im Beitrag hier bereits beschrieben und den Rest mußte selber schaffen, da Dingbums.exe ja nicht weiter bekannt ist.

Guck Dir das Beispiel an und nicht unbedingt den Code!

//edit
Denk dran, es gibt nur eine Exe, keine zwei! Die Dingsbums.exe ist auch diejenige, die die zweite Instanz verhindert.
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
wie_jetzt?
Beiträge: 21
Registriert: 28.08.2017 17:23

Re: ich komme mit ProgramRunning nicht klar

Beitrag von wie_jetzt? »

Hallo ts-soft,

funktioniert! Besten Dank für die Unterstützung. Habe zwar im Moment nur eine grobe Vorstellung dessen, was da passiert, aber das reicht erstmal so.
Was das Programmieren angeht, bin ich ein Anfänger mit fast 40 Jahren Erfahrung, mit gelegentlichen, mitunter jahrzehntelangen Unterbrechungen. Kann mich noch dunkel an den TI58 bei der Bundeswehr Anfang der 1980er erinnern. Habe da mit "Mondlandung" viele Stunden der Heimatverteidung verbracht - Insider werden's kennen.
... wir hatten doch sonst nix!
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

Re: ich komme mit ProgramRunning nicht klar

Beitrag von ts-soft »

wie_jetzt? hat geschrieben:Habe zwar im Moment nur eine grobe Vorstellung dessen, was da passiert, aber das reicht erstmal so.
Du hast auf jeden fall den Code angeguckt und drüber nachgedacht, das ist doch schon was :)
Ansonsten sollte so ein Modul funktionieren, man muß es nicht verstehen, sondern nur anwenden können!

Das wichtigste sind InitOne am Anfang, nach Fenstererstellung und ReleaseOne beim Programm beenden, damit alles
freigegeben wird, damit auch ein neuer Start möglich ist.

Wenn Du jetzt noch das benutzerdefinierte Event nutzt, z.B. um das Fenster in den Vordergrund zu bringen, biste doch schon da wo Du hin wolltest.

Gruß
Thomas
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