Seite 17 von 54

Verfasst: 12.09.2006 20:59
von Thorsten1867
Danke!
Leider kann ich es noch nicht gleich einbauen, da ich im Moment in Arbeit ersticke (Schulanfang!), aber ich denke am Wochenende sollte ich dazu kommen.

Verfasst: 13.09.2006 00:35
von Kaeru Gaman
da kommt mir ein gedanke.

wenn ich ne exe überschreiben will, dann weiß doch das system,
wenn sie grad ausgeführt wird, und kann reagieren.

also, ich müsste doch unabhängig von fenstertitel testen können,
ob die exe grad ausgeführt wird, über den Prozess.

wichtig wäre mMn auf jeden Fall dass der Installer Anwenderfreundlich genug bleibt.

Verfasst: 13.09.2006 00:56
von ts-soft
Kaeru Gaman hat geschrieben:da kommt mir ein gedanke.

wenn ich ne exe überschreiben will, dann weiß doch das system,
wenn sie grad ausgeführt wird, und kann reagieren.
ts-soft hat geschrieben: Ansonste reagiert er auf den Fehler, wenn das überschreiben nicht klappt,
wäre natürlich sinnvoll, vorher alles was überschrieben werden soll, erstmal
als Rollback zu sichern.

Verfasst: 14.09.2006 20:56
von Thorsten1867
ts-soft hat geschrieben:ASM und PureBasic Syntax für Mutex haste doch jetzt, für Profan kannste
auch haben, wenn gewünscht. Für Delphi findeste im Kochbuch für Delphi ein
Bitte poste mir die Beispiele, die du hast.
Das Kochbuch für Delphi habe ich leider nicht. Meine Kochbücher enthalten nur nahrhafte Sachen. :mrgreen:

Verfasst: 15.09.2006 18:32
von ts-soft
Thorsten1867 hat geschrieben: Bitte poste mir die Beispiele, die du hast.
Das Kochbuch für Delphi habe ich leider nicht. Meine Kochbücher enthalten nur nahrhafte Sachen. :mrgreen:
Ist alles dasselbe :mrgreen:
Hab Dir aber mal ein paar Beispiele zusammengestellt

Code: Alles auswählen

; PureBasic erstellen
Mutex.l = CreateMutex_(0,0, "{8766F9E2-7C77-407D-8D24-CD7856714B88}")
; PureBasic zerstören
CloseHandle_(Mutex)

; Delphi erstellen
Procedure TForm1.FormCreate(Sender: TObject);
var Mutex: THandle;
begin
  Mutex := CreateMutex(0, 0, PChar('{8766F9E2-7C77-407D-8D24-CD7856714B88}'));
End;

End.

; Profan erstellen
Def CreateMutex(3) !"KERNEL32","CreateMutexA"
Def CloseHandle(1) !"KERNEL32","CloseHandle"
Declare Mutex&
Mutex& = CreateMutex(0, 0, "{8766F9E2-7C77-407D-8D24-CD7856714B88}")

; Profan zerstören
CloseHandle(Mutex&)
Ich kann noch mehr Sprachen, aber ich denke das sollte reichen
(nur mit englisch happerts :mrgreen: )

PS: Alles aus dem FF, keine Bücher :wink:

Verfasst: 15.09.2006 19:12
von Thorsten1867
Super!
Jetzt fehlen mir nur noch: C / VisualBasic / ASM / .....

Verfasst: 15.09.2006 19:55
von ts-soft
Thorsten1867 hat geschrieben:Super!
Jetzt fehlen mir nur noch: C / VisualBasic / ASM / .....
Das können die dann selbst schlußfolgern. Ein paar hätte ich ja noch, wobei
FreeBasic und VB nehmen sich da nicht viel. Nur die API Declarieren und die
Variable wird gedimt (sowas blödes, ein Long zu Dimmen :mrgreen: )

Verfasst: 15.09.2006 22:54
von HeX0R
Eure Lösung is doch nicht Ernst gemeint, oder doch ?

Ich habe mir damals aus Fred's ProcessList-Code eine Prozedur gebastelt, die schaut, ob ein Filename in der Prozessliste erscheint.
Auch nicht 100%ig, aber immernoch besser als dem Benutzer des Installers vorzuschreiben, was er in sein Programm zu packen hat....

Verfasst: 15.09.2006 22:56
von vonTurnundTaxis
Vielleicht sollte man beide Möglichkeiten anbieten.

Verfasst: 15.09.2006 23:12
von ts-soft
HeX0R hat geschrieben:Eure Lösung is doch nicht Ernst gemeint, oder doch ?
Aber selbstverständlich Ernst gemeint. Aber nur als Zusatzoption.

Die Lösung mit der Prozeßlist findet alle Prozeße mit dem Namen, schonmal
unzuverlässig. Die Exe kann umbenannt werden, usw.

Andere Installer bitten die Lösung mit Mutex auch an (optional), weils eben
das sicherste ist. Es muß ja nicht verwendet werden, es kann!