Thema: Delphi OneInstance.pas

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

Re: OneInstance.pas

  Alt 8. Mär 2010, 08:00
Ist ja jetzt nix groß Aufwändiges.
- das Problem lag im befüllen und auslesen des TCopyDataStruct
- theoretisch müßte es jetzt unter allen Delphi-Versionen lauffähig sein
- Probleme wird es aber ab Win7 geben, wenn z.B. die laufende Instanz Adminrechte besitzt und die neue Instanz mit geringeren Rechten (einfacher Benutzer) gestartet wurde, dann dann kann aus "Sicherheitsgründen" (laut MS) die Windowsbotschaft nicht verschickt werden, da dieses geblockt wird.

Es wäre auch Besser/Schöner, wenn man bei sowas auch gleich den Link zum Thread mit angibt ... erstpart etwas Arbeit
Weitere Programm-Instanzen verhindern mit Parameterübergabe

Weitere behobene Dinge:

In ExtractParams konnte es zu einem Problem kommen, wenn es keine Parameter gibt.
P1 := Pointer(S); liefert in soeinem Fall einen NIL-Pointer und z.B. while P1^ <> #0 do läuft beim dereferenzieren in eine Exception.

Beim NewInstProc (TNewInstProc) wurde der Parameter ProcessId mit cbData (der Datenlänge des TCopyDataStruct) gefüllt ... hab dort jetzt schnell erstmal wenigstens das Window-Handle eingetragen.
Angehängte Dateien
Dateityp: zip oneinstance_104.zip (3,7 KB, 80x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat