AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Das Programm wurde eventuell nicht richtig installiert.
Thema durchsuchen
Ansicht
Themen-Optionen

Das Programm wurde eventuell nicht richtig installiert.

Ein Thema von Bjoerk · begonnen am 4. Jun 2012 · letzter Beitrag vom 8. Jun 2012
Antwort Antwort
Seite 2 von 3     12 3      
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 18:12
Registry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY) funktioniert bei mir nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#12

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 18:25
Welcher Fehler tritt denn auf?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 18:41
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\...', false) wird nicht erkannt.

Geändert von Bjoerk ( 6. Jun 2012 um 18:47 Uhr) Grund: Schlüsselname
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#14

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 18:51
Dann kann ich Dir leider nicht weiterhelfen, ich habe hier kein Win64
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 18:59
Ich krieg' die Krise. Wenn ich einfach
TRegistry.Create(KEY_ALL_ACCESS) schreibe und den WowPfad benutze ist die Meldung weg.

Ist KEY_ALL_ACCESS nicht das Default bei Registry.Create?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#16

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 19:05
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\...', false) wird nicht erkannt.
Was heißt das "wird nicht erkannt"?

Dies funktioniert bei mir einwandfrei:
Delphi-Quellcode:
key:= TRegistry.Create;
try
    key.RootKey:= HKEY_LOCAL_MACHINE;
    key.Access:= KEY_READ;
    if (_bIsWow64 AND Self.bIsX64) then
        key.Access:= key.Access OR KEY_WOW64_64KEY;
    if key.OpenKey(sRegKey, False) then
        if key.ValueExists(sRegVal) then
           sRegData:= key.ReadString(sRegVal);
finally
    key.CloseKey;
    key.Free;
end; // try..finally
Die Variablen sRegKey, _bIsWow64 (bzw. deren Werte) kommen dabei von außen.

Ergänzung: Übrigens ist es Unsinn, mit einer 32 Bit Anwendung in den 64 Bit Zweig zu schreiben, gerade wenn es um solche Uninstall-Keys geht.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 22:15
Ergänzung: Übrigens ist es Unsinn, mit einer 32 Bit Anwendung in den 64 Bit Zweig zu schreiben, gerade wenn es um solche Uninstall-Keys geht.
Nicht ganz. Ich muss mit meinem Unsermanager (32-Bit) auch in einen 64-Bit Zweig der Registry schreiben.

Kann es sein, dass du eine Pfad hardcodiert hast und Windows jetzt denkt, dass die Anwendung nicht richtig installiert wurde, weil die Datei nicht gefunden werden konnte?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#18

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 6. Jun 2012, 23:25
Ergänzung: Übrigens ist es Unsinn, mit einer 32 Bit Anwendung in den 64 Bit Zweig zu schreiben, gerade wenn es um solche Uninstall-Keys geht.
Nicht ganz. Ich muss mit meinem Unsermanager (32-Bit) auch in einen 64-Bit Zweig der Registry schreiben.
OK, es gibt Ausnahmen, aber dieser Fall der Uninstall-Keys gehört nicht dazu. Windows x64 verarbeitet beide Schlüssel (32 und 64 Bit), um die Liste der installierten Software zu erstellen; alles andere wäre ja auch Unsinn. Was ich aber eigentlich sagen wollte: es wäre (und ist) Unsinn, eine 32 Bit Applikation in den 64 Bit Uninstall-Zweig einzutragen, nur weil man ein 64 Bit Windows vor sich hat.

MfG Dalai
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 8. Jun 2012, 10:39
Ich hab die Komponente überarbeitet und dabei auch solche Uralt Dinger wie MkDir z.B. ersetzt. Mit Code #9 geht es geht jetzt. Luckie, ich benutze folgende Verzeichnisse:

Delphi-Quellcode:
function GetShellFolderPath(const aFolder: integer): string;
var
  pIIL: PItemIDList;
  szPath: array[0..Max_Path] of char;
  aMalloc: IMalloc;
begin
  Result:= '';
  OleCheck(SHGetSpecialFolderLocation(0, aFolder, pIIL));
  SHGetPathFromIDList(pIIL, szPath);
  OleCheck(SHGetMalloc(aMalloc));
  aMalloc.Free(pIIL);
  Result:= szPath;
end;

function GetTempDir: string;
var
  tempFolder: array[0..Max_Path] of char;
begin
  GetTempPath(Max_Path - 1, @tempFolder);
  Result:= StrPas(tempFolder);
end;

function Vista: boolean;
begin
  Result := SysUtils.Win32MajorVersion >= 6;
end;

function GetProgramFilesVerz: string;
const
  CSIDL_PROGRAM_FILES = $0026;
var
  Reg: TRegistry;
  v, S, u: string;
begin
  if Vista then
    Result := IncludeTrailingPathDelimiter(GetShellFolderPath(CSIDL_PROGRAM_FILES))
  else
  begin
    v := 'C:\xxxx\';
    S := 'SOFTWARE\Microsoft\Windows\CurrentVersion';
    u := 'ProgramFilesDir';
    Reg := TRegistry.Create;
    try
      with Reg do
      begin
        RootKey := HKey_LOCAL_MACHINE;
        if KeyExists(s) then
        begin
          OpenKey(s, false);
          if ValueExists(u) then
            v := IncludeTrailingPathDelimiter(ReadString(u));
          closeKey;
        end;
      end;
    finally
      Reg.Free;
      Result := v;
    end;
  end;
end;
Delphi-Quellcode:
  VerzE:= GetProgramFilesVerz + 'xxxx\';

  VerzA:= IncludeTrailingPathDelimiter(GetShellFolderPath(CSIDL_APPDATA) + 'xxxx\';

  VerzT:= IncludeTrailingPathDelimiter(GetTempDir) + 'xxxx\';

  VerzP:= IncludeTrailingPathDelimiter(GetShellFolderPath(CSIDL_PERSONAL)) + 'xxxx\';

  if Vista then
    VerzB:= IncludeTrailingPathDelimiter(GetShellFolderPath(CSIDL_COMMON_APPDATA)) + 'xxxx\'
  else
    VerzB:= IncludeTrailingPathDelimiter(GetShellFolderPath(CSIDL_PERSONAL)) + 'xxxxBackUp\';
Kurze Abschlussfrage: In welches Verzeichnis schreibt Ihr denn die UnInstall.exe hin?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Das Programm wurde eventuell nicht richtig installiert.

  Alt 8. Jun 2012, 12:32
Selbst habe ich das noch nie gemacht, dafür gibts ja Setupprogramme.

Die machen das unterschiedlich, aber eigentlich gehört das mit unter CSIDL_PROGRAM_FILES und muss sich dann bei der Deinstallation natürlich auch selbst wieder löschen.

Das Verzeichnis wiederum sollte nur gelöscht werden, wenn es a) leer ist (falls der Benutzer dort Daten abgelegt hat) und b) beim Installieren erstellt wurde (falls der Benutzer z.B. sowas wie ein ansonsten leeres Systemverzeichnis angegeben hat). Das heißt du müsstest dir am besten in den Uninstalldaten auch speichern welche Verzeichnisse es schon vorher gab und welche du angelegt hast.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz