AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Eigenen Hyperlink erstellen (aus http:// wird myapp://)
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenen Hyperlink erstellen (aus http:// wird myapp://)

Ein Thema von erich.wanker · begonnen am 23. Nov 2010 · letzter Beitrag vom 24. Nov 2010
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

Eigenen Hyperlink erstellen (aus http:// wird myapp://)

  Alt 23. Nov 2010, 14:08
Hallo leute,

Datei-Suffix habe ich via untenstehenden Code mit meiner Anwendung "verknüpft":

Delphi-Quellcode:
procedure RegisterFileType(ExtName:String; AppName:String) ;
var
   reg:TRegistry;
begin
  reg := TRegistry.Create;
  try
   reg.RootKey:=HKEY_CLASSES_ROOT;
   reg.OpenKey('.' + ExtName, True) ;
   reg.WriteString('', ExtName + 'file') ;
   reg.CloseKey;
   reg.CreateKey(ExtName + 'file') ;
   reg.OpenKey(ExtName + 'file\DefaultIcon', True) ;
   reg.WriteString('', AppName + ',0') ;
   reg.CloseKey;
   reg.OpenKey(ExtName + 'file\shell\open\command', True) ;
   reg.WriteString('',AppName+' "%1"') ;
   reg.CloseKey;
  finally
   reg.Free;
  end;

  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil) ;


end;
Jetzt würde ich gerne einen Hyperlink mit meiner Anwendung verknüpfen.
Hat jemand eine idee - wie ich das lösen könnte:

Beispiel:
Aus
Code:
<a href="http://www.domain.at">Hyperlink</a>
würde ich gerne:
Code:
<a href="vst://parameter">Hyperlink</a>
machen (oder so ähnlich)

Was ich bis dato hab (aber nicht funktioniert) ist:
Delphi-Quellcode:
REGEDIT4
[HKEY_CLASSES_ROOT\vst] @="URL:vst Protocol" "URL Protocol"=""
[HKEY_CLASSES_ROOT\vst\shell]
[HKEY_CLASSES_ROOT\vst\shell\open]
[HKEY_CLASSES_ROOT\vst\shell\open\command] @="\"C:\\Programme\\myApplication.exe\" \"%1\""
vielen Dank für Hinweise

Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Eigenen Hyperlink erstellen (aus http:// wird myapp://)

  Alt 23. Nov 2010, 14:18
Wenn du Steam installiert hast, könntest du dir mal anschauen, wie das beim Steam Browser Protocol gelöst ist.

Außerdem kannst du bei Microsoft Registering an Application to a URL Protocol (Bei Google suchenregister custom protocol) nachschauen.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Eigenen Hyperlink erstellen (aus http:// wird myapp://)

  Alt 23. Nov 2010, 16:21
Die Schweizer haben da was
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#4

AW: Eigenen Hyperlink erstellen (aus http:// wird myapp://)

  Alt 24. Nov 2010, 13:11
Hallo Leute,

danke für eure Tipps.

ich hab jetzt folgendes:

Delphi-Quellcode:
procedure RegisterFileType(software_protocol:String; software_name:String; software_pfad:String) ;
var
   reg:TRegistry;
   software_regedit_pfad:String;
begin
  reg := TRegistry.Create;
  try
   // Erster Eintrag
   reg.RootKey:=HKEY_CLASSES_ROOT;
   software_regedit_pfad:='';

   reg.CreateKey(software_regedit_pfad+software_protocol);
   reg.OpenKey(software_regedit_pfad+software_protocol, True) ;
   reg.WriteString('','URL:'+software_protocol+' Protocol');
   reg.WriteString('URL Protocol','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\DefaultIcon');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\DefaultIcon', True) ;
   reg.WriteString('',software_name);
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open\command');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open\command', True) ;
   reg.WriteString('',software_pfad+software_name+' %1');
   reg.CloseKey;
   // Zweiter Eintrag
   reg.RootKey:=HKEY_LOCAL_MACHINE;
   software_regedit_pfad:='Software\Classes\';

   reg.CreateKey(software_regedit_pfad+software_protocol);
   reg.OpenKey(software_regedit_pfad+software_protocol, True) ;
   reg.WriteString('','URL:'+software_protocol+' Protocol');
   reg.WriteString('URL Protocol','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\DefaultIcon');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\DefaultIcon', True) ;
   reg.WriteString('',software_name);
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open\command');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open\command', True) ;
   reg.WriteString('',software_pfad+software_name+' %1');
   reg.CloseKey;
   // Dritter Eintrag
   reg.RootKey:=HKEY_CURRENT_USER;
   software_regedit_pfad:='Software\Classes\';

   reg.CreateKey(software_regedit_pfad+software_protocol);
   reg.OpenKey(software_regedit_pfad+software_protocol, True) ;
   reg.WriteString('','URL:'+software_protocol+' Protocol');
   reg.WriteString('URL Protocol','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\DefaultIcon');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\DefaultIcon', True) ;
   reg.WriteString('',software_name);
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open', True) ;
   reg.WriteString('','');
   reg.CloseKey;

   reg.CreateKey(software_regedit_pfad+software_protocol+'\shell\open\command');
   reg.OpenKey(software_regedit_pfad+software_protocol+'\shell\open\command', True) ;
   reg.WriteString('',software_pfad+software_name+' %1');
   reg.CloseKey;

  finally
   reg.Free;
  end;

  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil) ;


end;

Aufruf via:
RegisterFileType('http1',extractfilename(application.exename),extractfilepath(application.exename)); werds mal in den nächsten tagen auf verschiedene Maschionen testen ..

Vielen Dank

Erich
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \

Geändert von erich.wanker (25. Nov 2010 um 12:20 Uhr) Grund: kleine Änderungen inder procedure
  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 22:52 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