Aktuelle Zeit: 16.09.2019 12:11

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: externes Programm zusammen mit der PB-IDE beenden
BeitragVerfasst: 10.09.2019 15:53 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
SDL hat geschrieben:
... welchen Sinn soll das haben?

Macht Sinn, wenn ich einen Code schreibe und den Code in einer anderen Pb-Version testen will. Oder ich schreiben einen Code in x32 und will ihn in x64 testen.

Dann kommt noch eine blöde Eigenschaft von Pb hinzu. Wenn ich ein Pb-File anklicke, dann wird das mit der zuletzt geschlossenen Pb-Version geöffnet, unabhängig davon, ob noch eine andere Pb-Version geöffnet ist. Das kann zu verwirrenden Situationen führen, da auf einmal eine zweites Pb-Fenster öffnet, obwohl ich das eigentlich gar nicht will.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: externes Programm zusammen mit der PB-IDE beenden
BeitragVerfasst: 10.09.2019 15:58 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Josh hat geschrieben:
SDL hat geschrieben:
... welchen Sinn soll das haben?

Macht Sinn, wenn ich einen Code schreibe und den Code in einer anderen Pb-Version testen will. Oder ich schreiben einen Code in x32 und will ihn in x64 testen.

Dafür gibt es doch eigentlich die Einstellung "Zusätzliche Compiler".

_________________
BildBildBildBild(Update: 17.08.2019 (+196 Dateien, +1392 MB)) BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: externes Programm zusammen mit der PB-IDE beenden
BeitragVerfasst: 10.09.2019 17:32 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
RSBasic hat geschrieben:
Dafür gibt es doch eigentlich die Einstellung "Zusätzliche Compiler".

Da hab ich meinen Preprocessor eingetragen :freak:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: externes Programm zusammen mit der PB-IDE beenden
BeitragVerfasst: 10.09.2019 17:38 
Offline
Benutzeravatar

Registriert: 15.09.2006 05:19
Wohnort: Hansestadt Stendal
Hey, Jungs,

darf ich mal hier an dieser Stelle abschließen.
Ich habe durch die Diskussion viele Hinweise erhalten und an was ich alles Denken muß.

Super :bounce:

Ich tüftel und pack meine Lösung rein.

Danke noch einmal :praise: :allright:

_________________
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: externes Programm zusammen mit der PB-IDE beenden
BeitragVerfasst: 12.09.2019 17:49 
Offline
Benutzeravatar

Registriert: 15.09.2006 05:19
Wohnort: Hansestadt Stendal
Ich hab nach den Hinweisen/Diskussion folgende Lösung gefunden.

Dazu hab ich den Code von "PureLust" benutzt um nur eine Programminstanz zu erlauben, egal wie viele PB IDE's geöffnet sind.
Und in der WinAPI Library habe ich den Code unter "Prozesse/Alle offene Anwendungen anzeigen" gefunden und angepasst.
Somit wird das Programm beendet wenn alle IDE's geschlossen sind.

Somit benötige ich nur ein Werkzeugeintrag beim IDE-Start.

Bei mir hat das Programm in Ruhe 0,07% CPU-Zeit und in Aktion, je nach Mausaktivitäten, kurzzeitig bis zu 2,9% (1,3% im Durchschnitt). Und das ist für mich akzeptabel.

Code:
Global g_hMutexAppRunning
Global xx.b = 0

;<comment>
; <summary> AppInstanceExists() : Ermittelt ob ein Programm schon gestartet ist<br>; Autor:  PureLust </summary>
; http://www.purebasic.fr/german/viewtopic.php?p=260173#p260173
; <param> AppInstanceExists() </param>
; <return> () </return>
; < example> AppInstanceExist() </example>
;</comment>

Procedure AppInstanceExists()
  Protected bAppRunning = #False
  g_hMutexAppRunning = CreateMutex_( #Null, #Null, "Global\MyApplication1")
  If (g_hMutexAppRunning <> #Null) And (GetLastError_() = #ERROR_ALREADY_EXISTS)
    CloseHandle_( g_hMutexAppRunning )
    g_hMutexAppRunning = #Null
  EndIf
  If g_hMutexAppRunning
    ProcedureReturn #False
  Else
    ProcedureReturn #True
  EndIf
EndProcedure
 
;********************************************************************
; der erste Aufruf vor alle anderen Programmschritte
;
If AppInstanceExists()
    MessageRequester("", "Die Anwendung läuft bereits."+Chr(13)+"Die zweite Instanz wird beendet.",#MB_ICONERROR)
    CloseHandle_(g_hMutexAppRunning)
    End
EndIf

;********************************************************************

;<comment>
; <summary> ListWindows(hwnd,Param) : Alle offene Anwendungen anzeigen (WinAPI Library) </summary>
; <return> #True/#False </return>
; < example> EnumChildWindows_(FindWindow_("ToolbarWindow32",#Null),@ListWindows(),0) </example>
;</comment>

; And GetWindowLongPtr_(hwnd,#GWL_STYLE) & #WS_VISIBLE kann weggelassen werden; erfasst dann alle

Procedure ListWindows(hwnd,Param)

  If GetWindowLongPtr_(hwnd,#GWL_EXSTYLE) ! #WS_EX_TOOLWINDOW And GetWindowLongPtr_(hwnd,#GWL_STYLE) & #WS_VISIBLE
   String$ = Space(250)
   GetWindowText_(hwnd,String$,250)
   If Not String$=""
       
       If FindString(String$,"PureBasic",1,#PB_String_NoCase)
        xx+1   
       EndIf

   EndIf
  EndIf
  ProcedureReturn #True
EndProcedure


;********************************************************************
; in der Ereignisschleife

Repeat
.......
       xx = 0
       EnumChildWindows_(FindWindow_("ToolbarWindow32",#Null),@ListWindows(),0)
       If xx = 0
           quitForm1 = 1
       EndIf
       
Until quitForm1


Tips und Hinweise willkommen

_________________
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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:  

 


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