Seite 1 von 2
Programm zum Kontextmenü hinzufügen
Verfasst: 12.01.2006 23:53
von Delle
Hallo,
weiß jemand wie man ein Programm zum Kontextmenü (rechte Maustaste) hinzufügt? "Datei öffnen mit Programm XYZ..."
Der Eintrag für das Programm im Menü soll aber natürlich nur bei bestimmten Dateitypen erscheinen (z.B. nur bei .mp3/.wav/.ogg).
Das müßte sicherlich irgendwie in die Registry geschrieben werden,
am Besten bei jedem Start des Programms (sofern der User es mal
in einen anderen Ordner verschoben hat und die Verknüpfung zur
.exe dann immer aktuell bleibt).
Okay wenn das dann erledigt ist, wie liest man in der .exe dann
aus WAS damit geöffnet werden soll?
Verfasst: 12.01.2006 23:59
von diGGa
was geöffnet werden soll geht per commandline... (hieß doch so xD oder?)
ProgramParameter()
Verfasst: 13.01.2006 00:16
von Zaphod
hat aber nichts mit der erweiterung des kontextmenüs (also der verknüpfung von dateitypen mit programmen) zu tun. da muß man ein paar registry einträge anlegen, hab aber keine ahnung welche und auch keine lust es rauszufinden

Verfasst: 13.01.2006 00:22
von Delle
So hab mehr Infos darüber gefunden:
Die "Procedure" baut man in VB so auf:
Code: Alles auswählen
Public Sub ProgrammRegistrierung(ByVal strMenuText As String, _
ByVal strAnwendung As String)
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
Dim Key As String
Dim Result As Long
Dim phkResult As Long
Dim strTEXT As String
Key = "*\shell\" + strMenuText + "\command"
Result = RegCreateKey(HKEY_CLASSES_ROOT, Key, phkResult)
strTEXT = strAnwendung + " %1"
Result = RegSetValue(HKEY_CLASSES_ROOT, Key, REG_SZ, _
strTEXT, Len(strTEXT))
End Sub
Und der Aufruf erfolgt dann so:
Code: Alles auswählen
ProgrammRegistrierung "Ausführen", App.Path &"\"& App.Exename &".exe %1"
Allerdings soll ja der entsprechende Eintrag nur bei bestimmten Dateitypen kommen, nicht bei allen Dateien...
Verfasst: 13.01.2006 00:37
von ts-soft
Die notwendigen Proceduren findest Du in den Include-Dateien von jaPBe, Registry.pbi
Verfasst: 13.01.2006 01:23
von diGGa
Zaphod hat geschrieben:hat aber nichts mit der erweiterung des kontextmenüs (also der verknüpfung von dateitypen mit programmen) zu tun. da muß man ein paar registry einträge anlegen, hab aber keine ahnung welche und auch keine lust es rauszufinden

war aber teil seiner frage

er hat ja gefragt wie er ausliest welche datei mit dem programm geöffnet werden soll und das wird bei kontextmenü nicht anders sein als bei "öffnen mit"
Verfasst: 13.01.2006 13:54
von Delle
Die Prozeduren krieg ich selber hin, ich will ja nur wissen, WAS WO hingeschrieben werden muss...
Verfasst: 13.01.2006 14:20
von Zaphod
ach so war das gemeint. dann ist es aber zu spät, weil das kontext menü ja schon wissen muß, welchen dateityp es verknüpfen soll.
Verfasst: 13.01.2006 14:32
von diGGa
er will wissen wie er bestimmten dateitypen sein programm im kontextmenü zuordnen kann ala winrar. und dann wil er nach dem öffnen auslesen welcher dateityp geöffnet wurde was ja mit programparameter() geht. aber er will wissen wo er reinschreiben muss damit sich im kontextmenü eben der "link" befindet.
Verfasst: 13.01.2006 14:45
von ts-soft
Deshalb soll er sich ja die Include-Datei von GPI ansehen, aber das will er wohl auch nicht, obwohl er dort an den Proceduren erkennen kann, was wohin gehört. Sind Wohl 5 Einträge nötig, je nach Windows-Version etwas anders.
Im Source von Droopy ist es wohl auch drinn, wie so vieles
