RSBasic hat geschrieben:@ts-soft
Die PB-Datei wird so ausgeführt:
Ich kann aber auch die Konstante + "PureBasic.exe" weglassen und die PB-Datei direkt starten.
Somit wird dann nur Standard-Programm ausgeführt.
Ist das dann für dich die bessere Variante?
#PB_Compiler_Home ist eine CompilerDirektive, die wird auf Deinem
Rechner ausgewertet, aber nicht mehr woanders
Die kann man nicht in der Exe verwenden!
Code: Alles auswählen
Procedure.s GetPBFolder(index = 0)
Protected hKey1.l, Type.l, Res.l, Folder$, lpbData.l, cbData.l, PBRegKey.s
cbData = 1024 ;The PB entry is really quite long!
lpbData = AllocateMemory(cbData)
Folder$=""
hKey1=0
Type=0
Res=-1
If lpbData
Select OSVersion()
Case #PB_OS_Windows_95,#PB_OS_Windows_98,#PB_OS_Windows_ME
PBRegKey="Software\Classes\PureBasic.exe\shell\open\command"
Res=RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, PBRegKey, 0, #KEY_ALL_ACCESS, @hKey1)
Case #PB_OS_Windows_NT3_51,#PB_OS_Windows_NT_4,#PB_OS_Windows_2000,#PB_OS_Windows_Server_2003
PBRegKey="Applications\PureBasic.exe\shell\open\command"
Res=RegOpenKeyEx_(#HKEY_CLASSES_ROOT, PBRegKey, 0, #KEY_ALL_ACCESS, @hKey1)
Case #PB_OS_Windows_XP, #PB_OS_Windows_Vista,#PB_OS_Windows_Server_2008,#PB_OS_Windows_Future
PBRegKey="Software\Classes\PureBasic.exe\shell\open\command"
Res=RegOpenKeyEx_(#HKEY_CURRENT_USER, PBRegKey, 0, #KEY_ALL_ACCESS , @hKey1)
EndSelect
If Res = #ERROR_SUCCESS And hKey1
If RegQueryValueEx_(hKey1, "", 0, @Type, lpbData, @cbData)=#ERROR_SUCCESS
Folder$ = PeekS(lpbData)
Select index
Case 0
Folder$ = GetPathPart(StringField(Folder$,2,Chr(34)))
Case 1
Folder$ = StringField(Folder$,6,Chr(34))
Case 2
Folder$ = StringField(Folder$,8,Chr(34))
Case 3
Folder$ = StringField(Folder$,10,Chr(34))
EndSelect
EndIf
RegCloseKey_(hKey1)
EndIf
FreeMemory(lpbData)
EndIf
ProcedureReturn Folder$
EndProcedure
RunProgram(GetPBFolder() + "PureBasic.exe"...
So ist es besser!
Hab gerade nen kl. Fehler gefunden, in:
ListIconGadget / Hintergrundbild hinzufügen sollte die Strukture wie folgt aussehen:
Code: Alles auswählen
Structure lvbkimage
ulFlags.i
hbm.i
pszImage.s
cchImageMax.l
xOffsetPercent.l
yOffsetPercent.l
EndStructure
Dann klappts auch mit dem x64 Nachbarn
PS: Wo bleibt das Scintilla?
Gruß
Thomas