Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Kein Audiogerät
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 129
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07.02.2012, 21:02   #1 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Blinzeln Doppelter Programmaufruf

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
...und das schöne dabei ist: Es funktioniert
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)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 07.02.2012, 21:27   #2 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 08.02.2012, 06:48   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

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
Jac de Lad ist offline   Mit Zitat antworten
Alt 08.02.2012, 07:47   #4 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Blinzeln

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$
Danke für euer "Meckern"
Das spornt mich immer wieder an !
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 09.02.2012, 00:08   #5 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von JörgG
 
Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
Standard

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
... nur der Vollständigkeit halber (für deine Schnipselsammlung )
__________________
Gruß Jörg

Ideen gibt es viele - man muß sie nur haben...
XProfan 11.2, XP-Pro SP2/3
JörgG ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 09.02.2012, 07:45   #6 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Blinzeln

@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)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 09.02.2012, 14:41   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Danke für euer "Meckern"
Das spornt mich immer wieder an !
Ja, und ist auch immer mal wieder nötig.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2