Thema: Delphi OneInstance.pas

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: OneInstance.pas

  Alt 8. Mär 2010, 09: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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat