Programm zum Kontextmenü hinzufügen
Programm zum Kontextmenü hinzufügen
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?
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?
So hab mehr Infos darüber gefunden:
Die "Procedure" baut man in VB so auf:
Und der Aufruf erfolgt dann so:
Allerdings soll ja der entsprechende Eintrag nur bei bestimmten Dateitypen kommen, nicht bei allen Dateien...
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
Code: Alles auswählen
ProgrammRegistrierung "Ausführen", App.Path &"\"& App.Exename &".exe %1"
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Die notwendigen Proceduren findest Du in den Include-Dateien von jaPBe, Registry.pbi
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

war aber teil seiner frageZaphod 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

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"
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.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
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
Im Source von Droopy ist es wohl auch drinn, wie so vieles

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
