.xxx als .exe starten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag 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?
Ich benutze PureBasic 3.30
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 »

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")
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
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag 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.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
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 »

@PureBasic4.0
BriefLZ für PB 3.30? PBOSL unterstützt den OldTimer nicht
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
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag 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
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag 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.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag 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.
Ich benutze PureBasic 3.30
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag 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.
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag 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.
Ich benutze PureBasic 3.30
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 »

@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:
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
Antworten