AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi nonVCL Programm nur einmal starten
Thema durchsuchen
Ansicht
Themen-Optionen

nonVCL Programm nur einmal starten

Ein Thema von WeTec · begonnen am 28. Jun 2004 · letzter Beitrag vom 1. Jul 2004
 
tommie-lie
(Gast)

n/a Beiträge
 
#7

Re: nonVCL Programm nur einmal starten

  Alt 28. Jun 2004, 20:10
Zitat von WeTec:
tja, alles schön und gut aber wo soll ich das hinschreiben?
bei mir gibts nur eine function dlgfunc(hwnd: ... und initialization will er irgendwie nicht so richtig verstehen.
Na, da wo du's in einer VCL-Anwendung auch hinmachst, in die Projektdatei gleich hinter begin. Die müsstest du ja sowieso bearbeitet haben, wenn du eine nonVCL-Anwendung hast, und bevor du dort dein Fenster registrierst, guckst du, ob eine andere Instanz da ist. Den Code findet man ja über Mathias' Link.

Zitat von WeTec:
ps: was ist eigentlich "CreateMutex" bzw. "CreateSemaphore"??
Zwei Funktionen
Ein Mutex und ein Semaphore sind Kernelobjekte und für die Multithreadsynchronization gedacht, also damit sich ein Thread nicht mit einem anderen ins Gehege kommt, was gemeinsam genutzte Variablen angeht. Ein Mutex kann dabei 2 Werte haben, "signaled" und "unsignaled", also nur zwei Stati. Ein Semaphore kann hingegen Werte zwischen 0 und einem angegebenem Maximum annehmen, erlaubt also mehreren Threads den Zugriff auf eine beschränkte Anzahl an Ressourcen.
Um nur ein Programm zu starten benutzt man einen Semaphore, um die Ressource (Prozessor) auf einen Thread zu begrenzen. Dabei bekommt der Semaphore einen Namen zugewiesen, versucht eine zweite Instanz des Programmes diesen Namen zu öffnen, gibt's 'nen Fehler, weil der Semaphore schon existiert, diesen Fehler fängt man ab und beendet sich selbst, wenn er auftritt. Die erste Instanz kann den Semaphore ohne Probleme erzeugen, die zweite stellt fest, daß ein Semaphore mit diesem Namen bereits existier und beendet sich wieder.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz