Seite 1 von 2

Pfad zum Compiler herausfinden?

Verfasst: 04.01.2005 09:47
von Didelphodon
Wieder Hallo!

2 mich quälende ( :coderselixir: ) Fragen:

1.) Wie komm ich auf schnellem Wege an den Pfad zum PureBasic-Compiler?
2.) Bei der Verwendung von JaPBe ist mir aufgefallen, dass JaPBe die Compiler-EXE anscheinend auf einen anderen Namen umkopiert - Warum, bzw. kriegt es dann überhaupt noch ein Update des Compilers via Smart-Update (oder wie es heisst) mit?

LG
Didelphodon

Verfasst: 04.01.2005 10:33
von nco2k
mach es doch einfach über die registry. da wo das programm installiert ist, liegt auch der compiler nicht weit weg. :wink:

c ya,
nco2k

Verfasst: 04.01.2005 10:36
von Didelphodon
Über die Registry hab ich schon gesucht, aber ich habe den Pfad bislang nicht als Wert gefunden sondern nur als Name (!?!?!?).

Ist schon ein bissel seltsam! Vielleicht mach ich ja auch irgendwo was falsch beim Suchen - kann mir einer den gesamten Schlüssel (wo's interessant wird) posten??

LG Didel.

Verfasst: 04.01.2005 10:48
von DarkDragon
Such halt mal nach "C:\Programme\PureBASIC" in der Registry. Der Kasten "Ganze Zeichenfolge durchsuchen"(oder wie auch immer) muss aktiviert sein.

Bei mir kommt:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PureBasic_is1\Inno Setup: AppPath

Verfasst: 04.01.2005 10:56
von nco2k
wozu brauchst du einen wert, ich dachte du brauchst einen pfad wie "C:\Programme\PureBasic" wo du dann einfach "\Compilers" dranhängst, dort liegt dann auch alles was du so brauchst. wie das ganze bei jaPBe läuft, weiss ich nicht. ich frage mich auch warum gpi da eine PBCompiler-jaPBe.exe reinkopiert. :?

ich würds auf die schnelle einfach so machen:

Code: Alles auswählen

PBPfad.s = Reg_GetValue(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PureBasic_is1", "Inno Setup: App Path", "")
PBCompiler.s = PBPfad+"\Compilers\pbcompiler.exe"
Debug PBCompiler
If FileSize(PBCompiler) > 0
  Debug "Exe vorhanden :)"
Else
  Debug "Exe nicht vorhanden :("
EndIf
oder so ähnlich. dafür brauchst du die Registry Include Datei aus jaPBe.

ist nicht der beste weg, weil es menschen gibt die pb nicht mit dem installer installieren, sondern von hand, da fehlt natürlich der eintrag, aber es wäre immerhin ein anfang.

c ya,
nco2k

Verfasst: 04.01.2005 11:19
von ts-soft

Code: Alles auswählen

Procedure.s GetPureBasicCompilerDir()
  cbData = (#MAX_PATH * 2) + 2
  lpbData = AllocateMemory(cbData)
  If GetVersion_() & $FF0000
    If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "Applications\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS, @hKey1) = #ERROR_SUCCESS
      If RegQueryValueEx_(hKey1, "", 0, @Type, lpbData, @cbData) = #ERROR_SUCCESS
        Folder$ = PeekS(lpbData)
        Folder$ = GetPathPart(Mid(Folder$, 2, Len(Folder$) -7))
      EndIf
      RegCloseKey_(hKey1)
    EndIf
  Else
    If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Classes\PureBasic.exe\shell\open\command", 0, #KEY_ALL_ACCESS, @hKey1) = #ERROR_SUCCESS
      If RegQueryValueEx_(hKey1, "", 0, @Type, lpbData, @cbData) = #ERROR_SUCCESS
        Folder$ = PeekS(lpbData)
        Folder$ = GetPathPart(Mid(Folder$, 2, Len(Folder$) -7))
      EndIf
      RegCloseKey_(hKey1)
    EndIf
  EndIf
  FreeMemory(lpbData)
  ProcedureReturn Folder$ + "Compilers\"
EndProcedure

Debug GetPureBasicCompilerDir()
Wenn's hilft :mrgreen:

Verfasst: 04.01.2005 12:25
von Didelphodon
Danke für Eure Anregungen und Beispiele => ich werds heut Abend gleich ausprobieren.

LG Didel.

Verfasst: 04.01.2005 20:00
von GPI
>ich frage mich auch warum gpi da eine PBCompiler-jaPBe.exe
>reinkopiert. :?

Kopiert er auch nicht. jaPBe lädt den ursprünglichen Compiler, modifziert ihn so, das statt den linker mein Fake-Linker gestartet wird. Diese modifzierte Version wird dann abgespeichert, damit man es normal starten kann. Dieser Mod wird bei jeden Start erstellt.

Wozu das ganze? Das ist so ziemlich die einzige Möglichkeit Resourcen einzufügen.

Verfasst: 04.01.2005 21:12
von Didelphodon
Danke GPI für das Licht am Korridor! :allright:

Verfasst: 05.01.2005 01:43
von nco2k
@GPI
das erklärt dann wohl einiges. :D

c ya,
nco2k