ts-soft hat geschrieben:Sollte es dennoch jemand schaffen bitte Posten, da ich bisher immer scheiterte
Um ein leeres Dokument zu erstellen, habe ich jetzt hier
folgendes gemacht:
Code: Alles auswählen
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,".pb",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "PureBasic Source"
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,".pb\ShellNew",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = ""
RegSetValueEx_(key,"NullFile",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,"PureBasic Source",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "PureBasic Source"
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,"PureBasic Source\shell\open\command",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "" ; Chr(34)+OpenFileRequester("PB OPEN COMMAND","PureBasic.exe",".EXE|*.exe",0)+Chr(34)
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
Danach kurz warten, bzw. rebooten oder ab- und wieder anmelden,
und ich habe den Eintrag "PureBasic Source" im ContextMenu "New"/"Neu".
Wenn man keine leere Datei möchte, sondern einen bestimmten Inhalt,
dann sollte man folgendes machen:
Den "ShellNew" oder "Templates" Ordner suchen. Auf Win9x
soll das "c:\Windows\ShellNew" sein (bzw. Dein Windows-Path).
Bei mir (engl. Win2k) war es richtig in:
"c:\Documents and Setting\USERNAME\Templates", wobei
USERNAME der Name des Users ist, also "Administrator",
"All Users" oder "Billy".
Dort kopiert man seine TextDatei "PureBasic.pb" rein, mit
dem Inhalt den man haben möchte.
Und dann folgender Code:
Code: Alles auswählen
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,".pb",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "PureBasic Source"
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,".pb\ShellNew",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "PureBasic.pb"
RegSetValueEx_(key,"FileName",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,"PureBasic Source",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "PureBasic Source"
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
If RegCreateKeyEx_(#HKEY_CLASSES_ROOT,"PureBasic Source\shell\open\command",0,0,#REG_OPTION_NON_VOLATILE,#KEY_ALL_ACCESS,0,@key,@Disposition) = #ERROR_SUCCESS
Value$ = "" ; Chr(34)+OpenFileRequester("PB OPEN COMMAND","PureBasic.exe",".EXE|*.exe",0)+Chr(34)
RegSetValueEx_(key,"",0,#REG_SZ,Value$,Len(Value$)+1)
RegCloseKey_(key)
EndIf
Das ist die Anleitung von Falkos Link in Code umgesetzt,
und hier funktionierte es wunderbar (habe beides getestet).