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: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Tasklist := .F.

Beitrag von AUGE_OHR » So, 18. Mär 2007 22:31

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: 15036
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Martin Altmann » So, 18. Mär 2007 22:51

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
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18915
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tasklist := .F.

Beitrag von Manfred » Mi, 09. Okt 2019 14:21

ich bekomme immer 0 zurück.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15036
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Tasklist := .F.

Beitrag von Martin Altmann » Mi, 09. Okt 2019 14:36

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
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18915
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tasklist := .F.

Beitrag von Manfred » Mi, 09. Okt 2019 14:37

bei dem Code stürzt das Programm direkt ab.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15036
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Tasklist := .F.

Beitrag von Martin Altmann » Mi, 09. Okt 2019 14:43

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
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18915
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Tasklist := .F.

Beitrag von Manfred » Mi, 09. Okt 2019 14:52

:banghead:
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: Tasklist := .F.

Beitrag von ramses » Mi, 09. Okt 2019 17:47

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

Gruss Carlo

Antworten