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