| |
|
|
Michael Wodrich | je trouve den Snippet simple pas plus.
comment verhindere je, qui mon Programme mehrfach im grenier steht. avec FindWindow et hWnd-comparaison klappt es chez Je ne.
Pour erfolgreichem Test soll qui laufende Instanz aktiviert volonté.
Pourquoi ist trop diesem Thema eigentlich dans beiden Foren rien pour trouver? |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
Michael Wodrich | Aha, halbe heure pour Flüchtigkeitsfehler verbraten...
siehe Code-Snippets
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
| Äh, hâte den eh bien quoi trouvé? Pour cette nimmt on meist Mutex ou bien Semaphore. FindWindow ist trop unzuverlässig, weil es pourrait cela falsche la fenêtre trouvé volonté |
|
|
| |
|
|
|
Michael Wodrich | Vous voyez et sous Mutex hab je aussi encore pas dans den Foren gesucht. merci, là werde je bestimmt fündig.
je voulais simple seulement cela ODoku.exe la fenêtre sur une Instanz beschränken. là qui Titel très long ist, wird es pour wohl ausreichen...
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
| |
|
| |
|
|
|
| allô Michael ici un Code de Thomas Bois KompilierenMarqueSéparationPRFellow- Vorlage
Autor: Thomas Hölzer
Die Prozedur OnlyOne sorgt dafür, daß nur eine Instanz eines
Profan²- 32 Bit(!)-Programms aufgerufen werden kann.
Sie muß als erste beim Programmstart abgearbeitet werden
Am Programmende muß CloseHandle aufgerufen werden!
declare programm$, version$
programm$="ADRESSOR "
version$="1.5.0"
Globale Deklarationen
Def CreateMutex(3) !"KERNEL32","CreateMutexA"
Def GetLastError(0) !"KERNEL32","GetLastError"
Def CloseHandle(1) !"KERNEL32","CloseHandle"
Declare MutexName#,Mutex&
Proc OnlyOne
Declare error&,name$
Let name$=programm$ Ein beliebiger,unverwechselbarer Name
Dim MutexName#,Add(Len(name$),1)
String MutexName#,0=name$
Let Mutex&=CreateMutex(0,1,Mutexname#)
Let error&=GetLastError()
Dispose MutexName#
If And(Neq(Mutex&,0),Equ(error&,0))
MessageBox("Dies ist die erste Programminstanz
Lassen Sie zum Testen diese
Messagebox stehen und starten Sie das Programm noch einmal!","Mutex-Test",64)
Else
MessageBox("Das Programm ist schon aktiv ",programm$+version$,16)
CloseHandle(Mutex&)
End
EndIf
EndProc
Beispiel
OnlyOne
Die nächste Anweisung immer ans reguläre Progammende!!!
case mutex&: CloseHandle(Mutex&) PRFellow- Vorlage
Autor: Thomas Bois
la hâte Du cela gesucht ? |
|
|
| |
|
|
|
| [quote-part:1f0db0e676]pourquoi editierst Du ensuite Deinen Beitrag pas? gruebel[/quote-part:1f0db0e676] allô iF qui Frage était berechtigt et j'ai maintenant seulement kapiert, dass mir cela éditer meiner Posts possible ist. peux Du mir encore la fois verzeihen Hoffe dass maintenant alles stimmt |
|
|
| |
|
|
|
| [quote-part:0224cc50ff=Horst Horn]allô qui Code ist aus Versehen doppelt kopiert worden - Sorry [/quote-part:0224cc50ff] pourquoi editierst Du ensuite Deinen Beitrag pas? |
|
|
| |
|
|