| |
|
|
Michael Wodrich | Yo finde el Snippet simplemente no mehr.
Como verhindere Yo, daß mein Programa mehrfach en el Speicher es. Mit FindWindow y hWnd-Vergleich klappt lo no yo en el.
Nach erfolgreichem Test se el laufende Instanz aktiviert voluntad.
¿Por qué es a diesem Thema eigentlich en beiden Foren nichts para encontrar? |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
Michael Wodrich | Aha, halbe Stunde para Flüchtigkeitsfehler verbraten...
siehe Code-Snippets
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
| Äh, haste el nun qué gefunden? Dafür nimmt uno meist Mutex oder Semaphore. FindWindow es a unzuverlässig, porque lo podría el falsche Ventana gefunden voluntad |
|
|
| |
|
|
|
Michael Wodrich | Siehste y bajo Mutex tener Yo auch todavía no en el Foren gesucht. Gracias, como voluntad Yo determinado fündig.
Yo quería simplemente sólo el ODoku.exe Ventana en una Instanz beschränken. Como el Titel muy lang es, se lo dafür wohl ausreichen...
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
| |
|
| |
|
|
|
| ¡Hola Michael Hier una Code por Thomas Hölzer KompilierenMarcaSeparaciónPRFellow- 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 Hölzer
Hast Usted el gesucht ? |
|
|
| |
|
|
|
| [quote:1f0db0e676]¿Por qué editierst Usted entonces Su Contribución no? gruebel[/quote:1f0db0e676] ¡Hola IF El Cuestión war berechtigt y yo habe ahora sólo kapiert, dass me Editieren meiner Beiträge posible es. ¿Puede Usted me una vez más verzeihen Hoffe dass ahora alles stimmt |
|
|
| |
|
|
|
| [quote:0224cc50ff=Horst Horn]¡Hola Der Code es de Versehen doppelt kopiert worden - Sorry [/quote:0224cc50ff] ¿Por qué editierst Usted entonces Su Contribución no? |
|
|
| |
|
|