Pfad zum Compiler herausfinden?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Pfad zum Compiler herausfinden?

Beitrag 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
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag 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.
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag von Didelphodon »

Danke für Eure Anregungen und Beispiele => ich werds heut Abend gleich ausprobieren.

LG Didel.
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag 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.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag von Didelphodon »

Danke GPI für das Licht am Korridor! :allright:
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@GPI
das erklärt dann wohl einiges. :D

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Antworten