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
Anwendungslinks z.B. ed2k:// oder skype://
Anwendungslinks z.B. ed2k:// oder skype://
Die Würde des Menschen ist die Wahl ...
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.
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
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\*
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\*
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.
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))