Programm über verknüpfte Dateien öffnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Esquilin7
Beiträge: 13
Registriert: 15.11.2004 16:17
Wohnort: Wien
Kontaktdaten:

Programm über verknüpfte Dateien öffnen

Beitrag von Esquilin7 »

Hi allerseits! Ich hab somanches durchgestöbert, finde aber nicht heraus, wie ich die Parameter abfragen kann, mit dem mein Programm geöffnet wird. Ich meine da zum beispiel einen Texteditor: Wenn ich alle TXT Dateien damit verknüpfe (Wie ginge das? :freak: ) und ich doppelklicke auf so eine Textdatei, dann öffnet sich nur der Editor, klarerweise aber nicht die Textdatei. Wie kann ich das abfragen?
Thx 4 all anzwers!!
Lg Esquilin7
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Unsere allseits beliebte PB-Hilfe hat geschrieben:ProgramParameter()

Syntax

Parameter$ = ProgramParameter()
Beschreibung

Ermittelt den nächsten Parameter-String, der dem Executable beim Start übergeben wurde.

Beispiel:
MyProgram.exe MyText.txt /FAST "Special Mode"

Das erste Mal, wenn ProgramParameter() aufgerufen wird, gibt es "MyText.txt" zurück, beim zweiten Mal "/FAST" und beim dritten Mal "Special Mode". Sind keine (weiteren) Parameter vorhanden, wird ein leerer String zurückgegeben.
So bekommst du die Parameter raus.

Die Sache mit dem Verknüpfen von Dateien mit deinem Programm ist nicht so einfach. Ich hatte mal eine UserLib, mit der man das konnte. Ich suche sie mal.


Greetz Laurin

Edit: Sorry, hab die Lib nicht gefunden :(
Zuletzt geändert von Laurin am 13.12.2004 20:26, insgesamt 1-mal geändert.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Programm über verknüpfte Dateien öffnen

Beitrag von Danilo »

Esquilin7 hat geschrieben:wie ich die Parameter abfragen kann, mit dem mein Programm geöffnet wird.
ProgramParameter() ;)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Esquilin7
Beiträge: 13
Registriert: 15.11.2004 16:17
Wohnort: Wien
Kontaktdaten:

Beitrag von Esquilin7 »

Ah!! Danke! Ich hab das nie gecheck, was das soll... Hab immer gedacht dass das was mit dem RunProgram() befehl zu tun hat und mich gewundert was die bringen und wo die her kommen :lol:
Tja, bin gewisser maßen ja doch noch ein Anfänger! Danke!!
PS: Wie können so parameter wie /Fast übergeben werden bzw. was bringen die?
Lg Esquilin7
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Parameter übergibt man an das Programm, indem man sie beim Ausführen hinten dran hängt:

Code: Alles auswählen

C:\Wohin-auch-immer\Programm.exe -Para1 -Para2
Was du mit den Parametern in deinem Programm machst, ist deine Sache. Das Ganze eignet sich beispielsweise für konsolenanwendungen (zB Dateikonverter...).


Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Compilier diesen Source mal zu einem Consoleprogramm MyProgram.exe

Code: Alles auswählen

OpenConsole()
Dim Einlesen.s(3)
For i=1 To 3
  Einlesen(i)=ProgramParameter()
Next i
;Ausgabe der Parameter
For i=1 To 3
PrintN(Str(i)+". Parameter="+Einlesen(i))
Next i
Input()
CloseConsole()
Dann gib unter [Start][Ausführen] cmd bzw. Command.com ein und wechsel zum Pfad wohin du dein Program compiliert hast.

Gib dann in der Console fogendes ein:

Code: Alles auswählen

MyProgram.exe MyText.txt /FAST "My Parameter"
Und siehe selbst. Ich glaube dann versteht man es besser.

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten