Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Ausführen einer .exe Datei nach Serial-Eingabe


3 replies to this topic

McKane

McKane
  • Full Members
  • 10 posts

Posted 02 August 2011 - 08:30

Hallo Forum,

nachdem ich weder bei Google noch bei eurer Forumssuche fündig geworden bin, erstelle ich mal einen neuen Thread.

Zu meiner Frage (eigentlich sind es sogar mehrere):
1. Wie kann ich eine .exe-Datei aufrufen, nachdem die Serial eingegeben und auf "Weiter" geklickt wurde?
2. Wie übergebe ich der .exe die Serial?
3. Wie speicher ich mir den Wert, den die .exe zurückgibt in eine Variable/Property?

Die Situation:
ich möchte, mittels .exe-Datei, der die Seriennummer übergeben wird die Seriennummer überprüfen. Ist diese korrekt gibt die .exe den Wert "1" zurück, wenn nicht den Wert "0". Ich weis, dass es relativ ungewöhnkich ist, die Serial auf diese weise zu überprüfen, allerdings bin ich an eine Seriennummerüberprüfung mittels .dll gescheitert. Mit einer .exe sollte dies m.M.n. einfacher funktionieren.

MfG M. McKane

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 August 2011 - 14:41

1. Eine Custom Action anlegen, die die EXE aufruft. Diese Custom Action per DoAction Event vom "Next"-Button aufrufen.

2. Bei den Einstellungen der Custom Action kannst du Kommandozeilenparameter an die EXE übergeben. Dort das Property mit der Seriennummer eintragen, z.B. [SERIENNR]

3. Das geht nicht. Bei EXE Custom Actions gibt es nur zwei Rückgabewerte: 0 bedeutet alles Okay, alles andere bedeutet Fehler und führt zum Abbruch der Installation. Windows Installer wertet das selbstständig aus.

Woran scheitert die DLL?

McKane

McKane
  • Full Members
  • 10 posts

Posted 03 August 2011 - 15:00

Am Aufruf. Bekomme den Fehler: "File key 'MyDll.dll' is invalid."

Der Aufruf aus Installshield sieht folgendermaßen aus:
BOOL=[KEYISVALID] MyDll::CheckSerial(in Pointer=[SERIALNUM], in POINTER=[PID])

aufgerufen wird die DLL "After ValidateProductID".

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 August 2011 - 16:58

Sorry, das verstehe ich nicht. Handelt es sich um eine Custom Action? Welcher Typ von Custom Action? Welche Einstellungen?

Lade mal die dll im Dependecy Walker und schau die Exports an. Oft ist der Funktionsname "dekoriert".