Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Dateiendung registrieren benutzt falsches Programm (https://www.delphipraxis.net/213261-dateiendung-registrieren-benutzt-falsches-programm.html)

v2afrank 27. Jun 2023 06:59

Dateiendung registrieren benutzt falsches Programm
 
Hallo,
mein selbstgeschriebenes Programm hat sich mit Hilfe dieser Funktion als Standard für die Endung registriert.
Nun kam von einem Kollegen die Meldung das es sich immer mit einer älteren Version öffnet und mittlerweile kann ich es auch nachvollziehen.
Ich registriere mich wie gesagt mit Hilfe der Funktion InstallExt und in der registry stehen auch die richtigen Werte. Mach ich jetzt aber einen Doppelklick auf eine solche Datei wird eine ältere Version geladen.
Das OS ist Windows 10. Ich weiß auch nicht wie lange das Problem schon existiert, da die Software schon sehr alt ist

KodeZwerg 27. Jun 2023 09:25

AW: Dateiendung registrieren benutzt falsches Programm
 
Es könnte durchaus möglich sein das diese methode auf die falsche registrierung zugreift.
Ich war mal so frei die "TRegistry.Create" anzupassen.
Im aufruf ist nun ein switch hinzugekommen womit du explizit sagen musst wohin du schreiben möchtest, 32 oder 64 bit.
(bei deinem kollegen muss vorher mit der alten uninstall methode die werte entfernt werden, die uninstall muss analog hierzu auch angepasst werden)
Delphi-Quellcode:
type
  TInstallType = (it32bit, it64bit);
function InstallExt(Extension, ExtDescription, FileDescription, OpenWith,
  ParamString: String; IconIndex: Integer;
  const AInstallType: TInstallType): Boolean;
//const
//  KEY_WOW64_32KEY = $0200;
//  KEY_WOW64_64KEY = $0100;
var
  Reg: TRegistry;
  KeyAccess: LongWord;
begin
  KeyAccess := KEY_READ;
  case AInstallType of
    it32bit: KeyAccess := KeyAccess + KEY_WOW64_32KEY;
    it64bit: KeyAccess := KeyAccess + KEY_WOW64_64KEY;
  end;
  Reg := TRegistry.Create(KeyAccess);

KodeZwerg 27. Jun 2023 09:32

AW: Dateiendung registrieren benutzt falsches Programm
 
Mir ist da ein Fehler unterlaufen, es sollte KEY_WRITE sein :stupid:

v2afrank 27. Jun 2023 10:06

AW: Dateiendung registrieren benutzt falsches Programm
 
Danke, ich denke ich habe die eigentliche Ursache gefunden was mir nicht bewusst war aber Du in einem Nebensatz erwähnt hast.
Ich hatte nicht die Uninstall Funktion aufgerufen. Mach ich das funktioniert es Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 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