Seite 3 von 4

Verfasst: 14.04.2007 17:28
von kreeph
Das zeigt mir im Debugger jetzt alles (Pfad) außer die Datei an. Schonmal etwas! :D Aber wie ich jetzt die Datei bekomme weiß ich immer noch nicht. Vielleicht kann man das mit deinem Code, ich aber nicht. :mrgreen:

edit: omg bin ich blöd... :D das Ding zeigt mir den Pfad! /:-> <)
Wenn das so klappt kann ich doch auch alles außer der Datei wegmachen?

Verfasst: 14.04.2007 17:36
von ts-soft
Hab mich verlesen :oops:

Code: Alles auswählen

Procedure.s GetFile(File.s)
  If OpenLibrary(0, "shlwapi.dll")
    CallFunction(0,"PathStripPathA", @File)
    CloseLibrary(0)
    ProcedureReturn File
  EndIf
EndProcedure

Debug GetFile("c:\windows\system32\notepad.exe")

Verfasst: 14.04.2007 20:59
von PureBasic4.0
Nur mal, um die Sicherheit anzusprechen: Wenn jemand dein kleines "Geheimnis" mit dem Umbenennen der .xxx in .exe kennt, kann er das "gar so wichtige" Programm einfach ausführen. Ich würde wenigstens mit BriefLZ (PBOSL) oder der PureBasic internen Pack-Funktion das Programm wenigstens komprimieren. Könnte dir aber BriefLZ empfehlen, da das wesentlich schneller ist.

Verfasst: 14.04.2007 21:22
von ts-soft
@PureBasic4.0
BriefLZ für PB 3.30? PBOSL unterstützt den OldTimer nicht

Verfasst: 14.04.2007 21:37
von PureBasic4.0
ts-soft hat geschrieben:BriefLZ für PB 3.30? PBOSL unterstützt den OldTimer nicht
wieder ein Grund, auf PB 4 Upzugraden

Verfasst: 14.04.2007 22:37
von ZeHa
Die Date ist natürlich schon eine ursprüngliche .exe, aber wegen ev. geheimen Verschlüsselungen( :o ) muss ich sie in einem anderen Format speichern.

Kannst Du nicht einfach mal ganz normal und verständlich erklären, weswegen Du eine .exe in .xxx umbenennen willst und was der tiefere Sinn dieses Vorhabens ist? Vielleicht gibt es für Deine Zwecke ja noch eine völlig andere, aber evtl. viel sinnvollere (und besser funktionierende) Lösung.

Verfasst: 15.04.2007 07:12
von kreeph
Also das mit der exe ist schon gesichert. Nunja zumindest auf meinem Niveau :mrgreen: . Man muss sie über ein anderes Programm starten und es wird nur richtig ausgeführt, wenn man es mit dem richtigen Parameter startet. Diese spezielle Endung brauch ich um mit dem Programm, das die .xxx startet, diese in einem OpenFileRequester() leichter zu finden.

Verfasst: 15.04.2007 07:38
von Leonhard
Ist das nicht so etwas besser? Zudem funktioniert es jetzt auch mit Unicode.

Code: Alles auswählen

Import "shlwapi.lib"
  PathStripPathA(*Buffer)
  PathStripPathW(*Buffer)
EndImport

Procedure.s GetFile(File.s)
  CompilerIf #PB_Compiler_Unicode
  PathStripPathW(@File)
  CompilerElse
  PathStripPathA(@File)
  CompilerEndIf
  
  ProcedureReturn File
EndProcedure 

Debug GetFile("c:\windows\system32\notepad.exe")
Ich arbeite aus bestimmten gründen nur noch mit Unicode. Ich finde, das man da nichts falsch machen kann.

Verfasst: 15.04.2007 08:26
von kreeph
@Leonhard
klappt in 3.30 nicht :(

Naja von den Fragen hier ist ja alles größtenteils beantwortet und deshalb will ich die Gelegenheit nutzen, um noch eine Frage zu stellen. Ich hab mich unter Suchen schon danach umgesehen und eine Menge gefunden, aber nix was sich mit 3.30 vertragen hat... Es geht darum ein StringGadget mit Enter zu bestätigen. :oops: Habe mich schon sehr lange in der Hilfedatei umgesehen aber es geht immer noch nicht.:coderselixir:
Vllt. kann mir ja jemand von euch einen Link zu einer 3.30er Lösung geben oder ein Beispiel.

Verfasst: 15.04.2007 17:11
von ts-soft
@Leonard
>> Ist das nicht so etwas besser? Zudem funktioniert es jetzt auch mit Unicode.
Wenn ich das bräuchte würde ich einfach:

Code: Alles auswählen

PathStripPath_(buffer)
Paßt sich automatisch den Compiler-
einstellugen an :wink: