Seite 1 von 1

Datei verknüpfen

Verfasst: 07.04.2006 15:34
von Sven
Wie kann ich Dateiendungen mit einem Programm verknüpfen? So wie es bei jaPBe unter Einstellungen geht. Bzw. Abfragen, mit welchem Programm bestimmte Endungen verknüpft sind?

Sven

Verfasst: 07.04.2006 15:44
von ts-soft
Wenn Du schon den jaPBe verwendest, guck einfach in den Includes, Registry.pbi, da sind fertige Proceduren dafür.

Welches Program, womit:

Code: Alles auswählen

Procedure.s GetAssociatedProgram(Extension.s)
  
  hKey.l = 0
  KeyValue.s = Space(255)
  datasize.l = 255
  AssociatedProgram$ = ""

  If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "." + Extension, 0, #KEY_READ, @hKey)  = #ERROR_SUCCESS
    If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
      KeyNext.s = Left(KeyValue, datasize-1)
      hKey.l = 0
      KeyValue.s = Space(255)
      datasize.l = 255
      If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, KeyNext + "\Shell\Open\Command", 0, #KEY_READ, @hKey) = #ERROR_SUCCESS
        If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
          AssociatedProgram$ = Left(KeyValue, datasize-1)
        EndIf
      EndIf
    EndIf
  EndIf
  Pos = FindString(LCase(AssociatedProgram$), ".exe", 1)
  If Pos <> 0
    AssociatedProgram$ = Left(AssociatedProgram$, Pos + 4)
    AssociatedProgram$ = RemoveString(AssociatedProgram$, Chr(34), 1)
  EndIf

  ProcedureReturn AssociatedProgram$
EndProcedure
Debug GetAssociatedProgram("html")
Debug GetAssociatedProgram("mp3")
Debug GetAssociatedProgram("eml")