AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Dateiendung registrieren benutzt falsches Programm
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiendung registrieren benutzt falsches Programm

Ein Thema von v2afrank · begonnen am 27. Jun 2023 · letzter Beitrag vom 27. Jun 2023
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#1

Dateiendung registrieren benutzt falsches Programm

  Alt 27. Jun 2023, 07:59
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
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Dateiendung registrieren benutzt falsches Programm

  Alt 27. Jun 2023, 10:25
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);
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Dateiendung registrieren benutzt falsches Programm

  Alt 27. Jun 2023, 10:32
Mir ist da ein Fehler unterlaufen, es sollte KEY_WRITE sein
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Dateiendung registrieren benutzt falsches Programm

  Alt 27. Jun 2023, 11:06
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 06: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