Tasklist := .F.

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Tasklist := .F.

Beitrag von AUGE_OHR »

hi,

Ich hab mir eine analog Uhr gebastelt. Da ein "eckiger" XbpDialog
dabei "blöd" aussieht hab ich also einen "runden" XbpDialog daraus
gemacht.

Nun liegt die Uhr auf dem Desktop, aber ich wollte kein Icon in der
Taskbar haben sodas ich Tasklist := .F. gesetzt habe.

leider lässt sich die Uhr jetzt "mehrfach" starten und mein "Check"
funktioniert nicht weil ich in der Tasklist nur das Icon der Uhr sehe
aber es hat ja auch keinen "Title" ...

In der "Prozessliste" finde ich dann "ACLOCK.EXE" ... aber wie frage
ich den die ab ?

gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jimmy,
andere machen das über einen Mutex!
In den Alaska-Newsgroups tauchen immer wieder entsprechende Beispiele auf.
Beim Starten Deines Programmes erzeugst Du einen speziellen Mutex und danach fragst Du einen Fehlercode ab. War alles OK, lief Dein Programm noch nicht.
Beispiel:

Code: Alles auswählen

DLLFUNCTION CreateMutexA( SecAttr, nInitialOwn, cName ) USING STDCALL FROM KERNEL32.DLL
DLLFUNCTION GetLastError() USING STDCALL FROM KERNEL32.DLL
.
.
.
CreateMutexA( 0, 1, "Irgendeine_eineindeutige_beliebige_ID")
If GetLastError() == 183
   MsgBox("Programm läuft bereits","Hinweis")
   QUIT
Endif
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tasklist := .F.

Beitrag von Manfred »

ich bekomme immer 0 zurück.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Tasklist := .F.

Beitrag von Martin Altmann »

Dann machst Du halt was verkehrt!

Code: Alles auswählen

#define  MUTEX_ALL_ACCESS    2031617
        LOCAL nH := DllCall( "KERNEL32.DLL", DLL_STDCALL, "OpenMutexA", MUTEX_ALL_ACCESS, 0, "EasyDogW.eXe" )
        IF nH == 0
                nH := DllCall( "KERNEL32.DLL", DLL_STDCALL, "CreateMutexA", 0, 0, "EasyDogW.eXe" )
        ELSE
                ConfirmBox( , "Das Programm wird bereits ausgeführt und kann nicht ein weiteres Mal gestartet werden!", "EASYDOG - Das Rassehundeausstellungsprogramm!", XBPMB_OK, XBPMB_CRITICAL + XBPMB_APPMODAL + XBPMB_MOVEABLE )
                QUIT
        ENDIF
        DllCall( "KERNEL32.DLL", DLL_STDCALL, "ReleaseMutex", nH )
Denke an die supportedOS-Einträge in der .manifest-Datei - aber die hast Du ja sicherlich drin!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tasklist := .F.

Beitrag von Manfred »

bei dem Code stürzt das Programm direkt ab.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Tasklist := .F.

Beitrag von Martin Altmann »

Hast Du denn dll.ch included???
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Tasklist := .F.

Beitrag von Manfred »

:banghead:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Tasklist := .F.

Beitrag von ramses »

Es gäbe dann noch ot4xb_single_instance() aus ot4xb das funktioniert sehr zuverlässig.
Valar Morghulis

Gruss Carlo
Antworten