Batch als *.exe Nur wie?

Anfängerfragen zum Programmieren mit PureBasic.
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Batch als *.exe Nur wie?

Beitrag von Fabio »

Hallo,
seit langen brauch wieder mal Pure Basic.

Ich habe folgendes Problem.
Das Photo Programm "Affinity Photo 2" installiert sich nun als Windows app.
Ich möchte hier Affinity mit einem externen Raw Konverter starten.

Dieser verlangt aber eine *.exe zur Auswahl.
Das ist Ansich kein Problem den Pfad zur *exe anzugeben und zu starten.
Aber bei jedem Update, wird sich der Pfad ändern und ich muss ihn wieder manuell einpflegen.

Über eine Batchdatei,
"start /b affinityphoto2.exe %1
exit"

lässt sich Affinity starten.

Wie kann ich die Ausführung über "RunProgram"
realisieren?


Danke
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Batch als *.exe Nur wie?

Beitrag von jacdelad »

Code: Alles auswählen

Parameter$="Datei.png"
SetCurrentDirectory("C:\VerzeichnisVonAffinity2");Verzeichnis von Affinity2
RunProgram("affinityphoto2.exe "+Parameter$)
oder

Code: Alles auswählen

Parameter$="Datei.png"
Verzeichnis$="C:\VerzeichnisVonAffinity2"
RunProgram(Verzeichnis$+"affinityphoto2.exe "+Parameter$)
?

Ich verstehe nicht ganz, warum sich nach einem Update die Pfade ändern, kannst du das erklären?
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Re: Batch als *.exe Nur wie?

Beitrag von Fabio »

Hallo @jacdelad
erstmal Danke für Deine Hilfe.

Das mit der Pfadänderung habe ich aus dem Affinity Forum entnommen.
Anscheinend, kann ich noch nicht bestätigen, wird bei den Windows App's, der Pfad nach einem Update, geändert.
z.B. ist aktuelle Pfad bei mir "C:\Program Files\WindowsApps\SerifEuropeLtd.AffinityPhoto2_2.0.0.1640_x64__3cqzy0nppv2rt\App"
Hier wird die Version mit angegeben -> "AffinityPhoto2_2.0.0.1640_x64"
Sollte es ein Update auf 2.1.... geben, ändert sich hier automatisch die Pfadangabe.

Es geht hier um eine Installation eine Win app (*.msix") und nicht um ein "normales" setup wo in den Program Ordner installiert wird.

Was hier immer die "Unbekannte" ist, wäre was für eine Datei, Png, Jpg, Dng, ... Übergeben wird
und natürlich auch der Pfad zur *exe Datei.

Nutze ich diese Batch Datei, kann ich alles was Affinity öffnen kann, per drag n drop auf die Batch ziehen, und Affinity wird mit dieser Bilddatei geöffnet.

Ich hoffe es ist nicht ganz zu kompliziert beschrieben.

Edit:

Code: Alles auswählen

Parameter$ = ProgramParameter()

;Parameter$="Datei.png"


;Verzeichnis$="C:\VerzeichnisVonAffinity2"
RunProgram("affinityphoto2.exe "+Parameter$)
Der Start der Exe funktioniert so :)

jetzt wollte ich per ProgramParameter die Bilddatei übergeben, aber hier scheine ich noch einen Denkfehler zu haben.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Re: Batch als *.exe Nur wie?

Beitrag von Fabio »

Sorry, nochmals.
ich hatte das Problem 2008 schon einmal :)
http://forums.purebasic.com/german/view ... p?p=213564

Ich werd mir das nochmals anschauen.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Batch als *.exe Nur wie?

Beitrag von jacdelad »

Wenn du das Bild bisher auch als Parameter Übergeben wird es so auch gehen. Kapsel mal den Bildnamen in " ein.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Batch als *.exe Nur wie?

Beitrag von mk-soft »

Die einzelnen Parameter die Leerzeichen enthalten müssen mit #DQUOTE$ gekapselt werden

Schon mal in die PB-Hilfe geschaut

Code: Alles auswählen


Parameter0$ = ProgramParameter()

Prog$ = "C:\VerzeichnisVonAffinity2\" + affinityphoto2.exe
If RunProgram(Prog$, #DQUOTE$ + Parameter0$ + #DQUOTE$)
  ;
Else
  ;  
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Batch als *.exe Nur wie?

Beitrag von TroaX »

Fabio hat geschrieben: 21.11.2022 21:36 Aber bei jedem Update, wird sich der Pfad ändern und ich muss ihn wieder manuell einpflegen.
Warum? So ganz komme ich da jetzt nicht drauf o.O
Ich nutze Affinity selber, komme aber nicht dahinter, warum sich der Pfad ändern sollte?
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Re: Batch als *.exe Nur wie?

Beitrag von Fabio »

Hallo @Torax

Das mit der Pfadänderung habe aus dem Forum, muss ja nicht Stimmen, aber wenn ich den Ordnername anschaue,
kann ich mir das durchaus gut vorstellen.
Muss ja nicht bedeuten das ich hier richtig liege.

@mk-soft , , Danke für Deine Hilfe.

Denn Pfad zur exe muss ich nicht angeben, hier reicht nur das "affinityphoto2.exe"
Der Name scheint registriert zu sein.

Das kann man mittels "Ausführen" überprüfen.
Affinity 2 wird bei mir auch gestartet.

Ich muss mir noch das mit der Parameter Übergabe genauer anschauen und auch verstehen.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Antworten