Ich verwende Inno Setup, um unseren Installationsassistenten zu erstellen, und er enthält eine WAMP-Installation. Aber laut anderen würde die doppelte WAMP-Installation WAMP selbst schaden. Ich muss also prüfen, ob WAMP installiert ist, bevor ich fortfahre. Irgendwelche Möglichkeiten, wie man das macht?Inno Setup überprüfen, ob WAMP installiert ist, bevor Sie fortfahren
Antwort
WAMP erstellt Registrierungseinträge während des Installationsprozesses. Das Installationsprogramm basiert auf Inno Setup.
Es gibt zwei Klassen von Einträgen in der Registry:
1 Person:
[Registry]
Root: HKLM64; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\";
ValueName: "{app}\wampmanager.exe"; ValueType: String; ValueData: "RUNASADMIN";
Check: "IsWin64"; MinVersion: 0.0,6.0; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM32; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\";
ValueName: "{app}\wampmanager.exe"; ValueType: String; ValueData: "RUNASADMIN";
Check: "Not IsWin64"; MinVersion: 0.0,6.0; Flags: uninsdeletevalue uninsdeletekeyifempty
2 Standard Deinstallation Informationen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{wampserver64}_is1
mit Pfad in InstallLocation
Das führt uns, wenn überprüfen können WAMP ist installiert und wenn Executable im Installationsordner vorhanden ist (als zusätzliche Überprüfung).
Beispiel basiert auf 64-bit
Version von WAMP 3.0.6.
Es muss angepasst werden, wenn die Unterstützung für beide Versionen 32- and 64-bit
erforderlich ist.
[Setup]
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64[
[Code]
function CheckWAMPExists(): Boolean;
var
sInstPath: String;
sInstallString: String;
begin
Result := False;
sInstPath := 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{wampserver64}_is1';
sInstallString := '';
if not RegQueryStringValue(HKLM, sInstPath, 'InstallLocation', sInstallString) then
RegQueryStringValue(HKCU, sInstPath, 'InstallLocation', sInstallString);
if sInstallString <> '' then begin
if FileExists(ExpandConstant(sInstallString) + 'wampmanager.exe') then
MsgBox('WAMP found!' + #13#10 + 'Install location:' + #13#10 + sInstallString
+ #13#10#13#10 + 'Installation will proceed!', mbInformation, MB_OK);
Result := True;
end
else begin
MsgBox('WAMP not found! Installation terminated.', mbInformation, MB_OK);
end;
end;
function InitializeSetup(): Boolean;
begin
Result := CheckWAMPExists;
end;
Wenn die obige Antwort Ihr Problem löst, akzeptieren Sie es bitte als Lösung. – RobeN
Entschuldigung, ich habe noch nicht lange eingecheckt. Ich denke, das löst es. Vielen Dank! Sehr geschätzt. –
Der einzige Weg, um zu überprüfen, ob ein Programm installiert ist, besteht darin, zu überprüfen, ob der Standardpfad und andere mögliche Pfade ihren Ordner haben.
if DirExists('C:\wamp')
or DirExists('C:\wamp64')
or DirExists('C:\Program Files\wamp')
or DirExists('C:\Program Files\wamp64')
or DirExists('C:\Program Files(x86)\wamp')
or DirExists('C:\Program Files(x86)\wamp64')
or DirExists('{userdocs}\wamp')
or DirExists('{userdocs}\wamp64')
or DirExists('{userdocs}\Desktop\wamp')
or DirExists('{userdocs}\Desktop\wamp64')
then begin
MsgBox('An installation of WAMP was found.' + #13#10#13#10 + 'Please uninstall any WAMP/XAMPP programs first' + #13#10 + 'or install SpinShot in a different PC.', mbInformation, MB_OK);
Result := False;
end;
end;
Ich glaube, dass dies nicht die beste Lösung ist (Womöglich kann der Benutzer WAMP überall installieren. Können Sie einige Details zu diesem WAMP veröffentlichen? Zum Beispiel, wo Sie das Installationsprogramm herunterladen können - wenn dies Open Source oder Freeware ist? Es ist möglich, dass WAMP Registrierungseinträge erstellt das würde es einfacher machen, danach zu suchen und seine Existenz zu bestätigen. – RobeN
@RobeN hier ist es: http://www.wampserver.com/en/ und soweit ich weiß, bearbeitet es keine Registry bei seiner Installation –
- 1. Inno Setup: Überprüfen Sie, dass .NET 4.0 installiert ist
- 2. INNO-Setup-Treiber bereits installiert
- 3. Warum alle Bedingungen überprüfen, bevor Sie fortfahren?
- 4. Überprüfen Sie die Sichtbarkeit, bevor Sie fortfahren
- 5. Inno-Setup: Erkennen, ob das Setup beim Deinstallieren ausgeführt wird
- 6. Inno-Setup: Überprüfen Sie, ob die Datei irgendwo in C vorhanden ist: Laufwerk
- 7. Überprüfen Sie, ob Yahoo Messenger installiert ist
- 8. Überprüfen Sie, ob Twitter-Anwendung installiert ist
- 9. Inno-Setup Überprüfen auf laufenden Prozess
- 10. VB.NET Überprüfen, ob eine Datei geöffnet ist, bevor Sie mit Lesen/Schreiben fortfahren?
- 11. Überprüfen Sie, ob das aktuelle Betriebssystem Windows 8.1 ist mit Inno Setup Pascal Script
- 12. Prüfen, ob Chrome installiert ist und eine bestimmte Version mit Inno Setup verwendet
- 13. Inno-Setup ... Verwenden Sie alte DB, wenn vorherige Version installiert
- 14. Inno Setup - Überprüfen Sie, ob die Datei im Ziel vorhanden ist oder ob die Installation nicht abgebrochen wird
- 15. Überprüfen Sie, ob Adobe Reader installiert ist, bevor Sie es verwenden
- 16. MySQL-Abfrage im Inno-Setup
- 17. Überprüfen, ob Erreger in vimrc installiert ist
- 18. Erkennen, ob eine Oracle-Datenbank installiert ist
- 19. SOAP-Webdienst mit Inno-Setup
- 20. Wie kann überprüft werden, ob das Kontrollkästchen aktiviert ist, bevor Sie fortfahren?
- 21. Überprüfen, ob ein Paket installiert ist
- 22. WordPress: Überprüfen, ob Plugin installiert ist
- 23. wie auf RequestLocation warten, bevor Sie fortfahren?
- 24. Überprüfen Sie, ob Spaltenwert vorhanden ist, bevor SELECT
- 25. Inno Setup-Registrierung
- 26. Überprüfen Sie, ob der Piwik-Tracking-Code installiert ist
- 27. Überprüfen Sie, ob MongoDB PHP Driver installiert ist
- 28. Überprüfen Sie, ob der SQL Server-Client installiert ist
- 29. So überprüfen Sie, ob Office auf einem Server installiert ist
- 30. Überprüfen Sie, ob IIS installiert ist oder nicht?
* "WAMP oder jedes andere verwandte Programm" * ist ziemlich breit. Es gibt keine generische Möglichkeit, nach einer "Anwendung" zu suchen, sondern nur nach "irgendeinem anderen verwandten Programm" *. Sie müssen eine spezifische Prüfung für jede spezifische Anwendung implementieren. Benennen Sie also bestimmte Anwendungen, nach denen Sie suchen möchten. Und Sie sollten wahrscheinlich für jede Anwendung eine separate Frage stellen. –
@MartinPrikryl Ich habe die Frage bearbeitet. Ich muss jetzt nur noch prüfen, ob WAMP installiert ist. Ich entschuldige mich dafür. –
Könnten Sie bitte ein paar mehr Informationen über WAMP teilen? Z.B. Welche Registrierungseinträge erstellt es, welche ausführbaren Dateien enthält es? Oder wo kann ich es herunterladen (wenn es eine kostenlose oder OpenSource-App ist?) Ich bin mir ziemlich sicher, dass niemand Ihnen die richtige Antwort geben kann, ohne spezifische Informationen über die WAMP-App mit Pfad, 2. Nimm den Pfad und überprüfe, ob es existiert, 3. Prüfe, ob die ausführbare Datei der App im App-Pfad existiert, und vielleicht 4. Prüfe ob dies eine bekannte Version der App ist – RobeN