| |
|
|
Michael Wodrich | Weil je un Weilchen brauchte, es aus dem Ärmel trop schütteln...
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
Michael Wodrich | et pour Hinweis de TS-Soft encore une Mutex-variante aus dem Phorum de Ragnar Rehbein.
Gibts encore weitere Opportunités?
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.09.2006 ▲ |
|
|
|
|
| [quote-part:1532fb2073=Michael Wodrich] Gibts encore weitere Opportunités?
belle Grüße Michael Wodrich[/quote-part:1532fb2073] bien sûr CreateSemaphore(...) z.B. findeste irgendwo dans MSDN ou bien PSDK Ist mais dem Mutex pas unähnlich. Pour den Mutexstring verwende je meist une GUID. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | allô gens!
ici encore une Possibilité per FileMapping. Dabei wird pas seulement qui neue Instanz automatisch finissez, mais aussi qui laufende Instanz per Usermmessage informiert, sodass vous sich peut-être dans den Vordergrund mettons peux. cela Prinzip peux on derart erweitern, dass mögliche paramètre, qui chez Aufruf qui 2. Instanz transfert volonté, à qui 1.Instanz weitergereicht volonté.
!
$H Messages.ph
$H Windows.ph
declare MapHandle&,ViewHandle&
MapHandle&=~OpenFileMapping(~FILE_MAP_ALL_ACCESS,0,"Programm 1.1")
si MapHandle&--MappedFile vorhanden (contient %hwnd de bereits laufender Instanz)
ViewHandle&=~MapViewOfFile(MapHandle&,~FILE_MAP_ALL_ACCESS,0,0,32)
messagebox("Programm fonctionne bereits","Meldung",0)
sendmessage(long(ViewHandle&,0),5066,0,0)--Message à 1. Instanz
~UnmapViewOfFile(ViewHandle&)
end
d'autre--cet Instant ist qui erste > MappedFile anlegen!
MapHandle&=~CreateFileMapping($FFFFFFFF,0,~PAGE_READWRITE,0,32,"Programm 1.1")
ViewHandle&=~MapViewOfFile(MapHandle&,~FILE_MAP_WRITE,0,0,32)
window 100,100-600,400----seulement ici wird cela la fenêtre erzeugt!!
long ViewHandle&,0=%hwnd--Handle dans MappedFile écrivons
endif
usermessages 16----WM_CLOSE
usermessages 5066--Irgendein Wert, qui hoch genug ist pour selbstdefinierte Msg.
tandis que 1------------Eingabeschleife
waitinput
cas %umessage=16:pause--Ende
si %umessage=5066--------Usermessage de neuer Instanz
shownormal
setactivewindow(%hwnd)
setfocus(%hwnd)
imprimer "Aktivierung par neue Instanz"
endif
----Weitere Eingabeabfragen
endwhile
--Sollte chez Ende erreicht volonté:
~UnmapViewOfFile(ViewHandle&)
~CloseHandle(MapHandle&)
HTH Pascal |
|
|
| |
|
|
|
| Gute concept! et ici cela Selbe seulement kürzer et sans nötige Headerfiles:
|
|
|
| |
|
|
|
Jac de Lad | je trouve qui beste Methode ist toujours per Mutex:
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 07.09.2006 ▲ |
|
|
|
|
Ragnar Rehbein | je benutze comme mutexnamen (bzw. chez filemapping) inzwischen chez presque allen programmen par$(0), alors den programmnamen inkl. pfad. mais aufpassen, qui qui backslsh raustranslatet wird! j'ai presque toujours qui anforderung, qui un programm pas doppelt gestartet volonté peux, un start unterschiedlicher konfigurationen aus verschiedenen verzeichnissen bzw. par umbenenn des programms soll possible son. pour terminalserverumgebungen ist encore qui präfix Global et Local intéressant (ici doit qui backslash beiben!). avec cela peux z.b. verhindert volonté, qui un programm dans mehreren sitzungen fonctionnement wird (z.b. une einplatzlizenz).
r.r. |
|
|
| |
|
|