![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Da ich mit den dafür vorgesehenen Code-Fetzen nicht klar komme (zu blöd dafür
und ich den doppelten Programmaufruf verhindern will, habe ich mir was "gebacken" Zu Anfang kommt nach den Declarationen das: Code:
VAR startdatei$=$APPDATADIR+"\\irgendwas.txt"
IF FILEEXISTS(startdatei$)
Messagebox("Programm ist schon aktiv !","Fehler",64)
END
ENDIF
'------------------ PROGRAMMSTART
ASSIGN #1,startdatei$
REWRITE #1,"Irgendwas"
CLOSE #1
......
......
PROC PROGRAMM_ENDE
ASSIGN #2,startdatei$
ERASE #2
END
ENDPROC
Ist die Datei noch vorhanden, erkennt das Programm beim zweiten Start das und beendet sich. Klappt ohne API - Man kann die Messagebox auch weg lassen. Finde es aber mit Meldung besser:
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
1. dafür besser den tmp-Ordner verwenden.
2. Bei einem Programmabsturz wird das Programm nie wieder starten. Für mich wäre das keine Alternative. Wenn keine Mutex oder API, dann kannst Du immer noch eine FileMap anlegen, mit %hWnd als Wert kannste da noch Messages versenden o. ä.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
|
Ich finde auch Mutex am besten, ein Source dafür ist hier irgendwo schon zu finden. Ist auch ganz klein, nur 5 Zeilen oder so.
__________________
XProfan-Profi (XProfan X2+XPIA) http://jacdelad.bplaced.net http://jacdelad.square7.ch |
|
|
|
|
|
#4 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
So besser ?
Code:
DEF CreateMutex(3) !"KERNEL32","CreateMutexA"
DEF GetLastError(0) !"KERNEL32.dll","GetLastError"
PROC CHECK_START
PARAMETERS name$
DECLARE mutex&,error&
name$=SUBSTR$(name$,-1,"\\")
mutex& = CreateMutex(0,1,addr(name$))
error& = GetLastError()
IF error& = 183
MESSAGEBOX("Das Programm \n\n"+UPPER$(programm$)+" "+vers$+"\n\nwurde schon einmal gestartet !","Doppelstart !",64)
END
ENDIF
ENDPROC
CHECK_START programm$
Das spornt mich immer wieder an !
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#5 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
Hey Horst, so sieht meine Standard-Prüfung für Doppelstart aus - habe ich derzeit hier im Forum angefragt habe mich letztendlich für diesen Vorschlag entschieden (steht dann bei mir immer gleich hinter den Declarationen)
Code:
Def Createmutex(3) !"KERNEL32","CreateMutexA"
Def WaitForSingleObject(2) !"KERNEL32.dll","WaitForSingleObject"
Proc dopp ' return ist <> 0 wenn doppelstart vorliegt
Parameters Name$ ' Mutexname
Declare Mutex&, WaitFor&
Mutex& = Createmutex(0,0,Addr(Name$))
WaitFor&=WaitForSingleObject(Mutex&,1)
Return WaitFor&
Endproc
IF dopp("mutexstring")<>0 'falls kein mutex erstellt werden konnte (also ein doppelstart vorliegt) gibt die proc dopp einen wert ungleich 0 zurück
end
endif
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 |
|
|
|
|
|
|
#6 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
@Jörg
Danke PS: "Alte chinesische Volksweisheit:" Es führen viele Wege nach Rom !
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
|
#7 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| doppelter eintrag | Unregistriert | Homepagegestaltung | 1 | 19.12.2011 17:45 |
| Doppelter Upstream bei 1und1.de | mrfastgast | Allgemein | 1 | 12.12.2006 16:47 |
| Programmaufruf Windows XP -> Visual C++ | uliS | C/C++, Visual C++, Visual C++.NET | 2 | 09.06.2005 17:12 |
| registrierung - doppelter Schlüssel? | alsterwasser | Windows XP | 0 | 14.11.2004 14:04 |
| Doppelter Posteingang bei OE 6 | rainerhb | Office-Anwendungen | 9 | 30.03.2004 08:41 |