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: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
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?
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
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: 341
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
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.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
mk-soft
Beiträge: 3695
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: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
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 | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
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