Anwendungslinks z.B. ed2k:// oder skype://

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
steffi
Beiträge: 14
Registriert: 30.03.2006 06:52
Wohnort: Aachen

Anwendungslinks z.B. ed2k:// oder skype://

Beitrag von steffi »

Hallo,

ich habe eine kleine Frage, wie registriere ich Links (z.B. ed2k:// oder skype://) zu einer meiner Anwendungen und wie bekommt das Programm diese Infos?

Viele Grüße,
Steffi
Die Würde des Menschen ist die Wahl ...
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wenn ich heute oder morgen zu hause bin, dann kann ich dir genau diese Frage beantworten.
Ich habe nämlich schon mein "eigenes Protokoll" in dieser Richting eingerichtet.

SO viel schon mal: mit MeinProtokoll://Eins Zwei Drei/
wird deine EXE gestartet. danach kannst du die Parameter mit ProgramParameter() aufrufen - siehe PB Hilfe.

Hast du schon skype installiert? Dann such doch mal in der Registry nach "skype", vielleicht findest du es ja schon, aber ich glaube nicht.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Such mal in der Registy (Öffnen mit Start->Ausführen->regedit oder von TuneUpUntiles->Verwalten&Kontrolieren->TuneUpRegistryEditor) nach den abkürzungen.

Ich wurde z.B. bei der Suche nach FTP fündig:
HKEY_CLASSES_ROOT\ftp
HKEY_CLASSES_ROOT\PROTOCOLS\Handler\ftp <--- Dies ist der richtige kurz-Link
In anderen Registierungsdateiverknüpfungen wie z.B. HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*
tranquil
Beiträge: 117
Registriert: 22.09.2004 22:07
Kontaktdaten:

Beitrag von tranquil »

Bevor es Emule gab haben wir uns auch mal an so einem Client gewagt und sind auch schon über das Registrieren eines eigenen Protokolls gestolpert. Das sind nur ein paar Registry Keys.

Wir haben in dem Beispiel unten das Protokoll EasyOSX: geregged auf die Datei die den code startet.

Alles was dann hinter der Protokollbezeichnung steht wird dann als Kommandozeile an Dein Programm bei einem Link-Klick übergeben.

Der Code ist noch aus Purebasic <3.20 und ich habe den nun mal unbearbeitet hier eingefügt. Wenn Du Probleme damit haben solltest frag einfach dann schreiben wir den mal für 4.0 zurecht.

Code: Alles auswählen


Procedure.l MyWriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s)
  hKey.l=0  
  If RegCreateKey_(OpenKey,SubKey,@hKey)=0
    result=1
    datasize.l=Len(keyvalue)
    If RegSetValueEx_(hKey,keyset,0,#REG_SZ,@keyvalue,datasize)=0
      result=2
    EndIf 
    RegCloseKey_(hKey)
  EndIf
  ProcedureReturn result 
EndProcedure

indir.s=Space(1024)
getcurrentdirectory_(1024,@indir.s)

; Get Filename of Exe
hMod=GetModuleHandle_(0)
tmp$=Space(255)
getmodulefilename_(hMod,@tmp$,255)
filename$=GetFilePart(tmp$)

res=MyWriteRegKey(#HKEY_CLASSES_ROOT,"EasyOSX","","")
res=MyWriteRegKey(#HKEY_CLASSES_ROOT,"EasyOSX","URL Protocol","")
res=MyWriteRegKey(#HKEY_CLASSES_ROOT,"EasyOSX\DefaultIcon","",indir.s+"\"+filename$)
res=MyWriteRegKey(#HKEY_CLASSES_ROOT,"EasyOSX\Shell\open\command","",Chr(34)+indir.s+"\"+filename$+Chr(34)+" "+Chr(34)+"%1"+Chr(34))
Antworten