Seite 1 von 1

Batch als *.exe Nur wie?

Verfasst: 21.11.2022 21:36
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

Re: Batch als *.exe Nur wie?

Verfasst: 22.11.2022 06:41
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?

Re: Batch als *.exe Nur wie?

Verfasst: 22.11.2022 19:45
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.

Re: Batch als *.exe Nur wie?

Verfasst: 22.11.2022 20:10
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.

Re: Batch als *.exe Nur wie?

Verfasst: 22.11.2022 21:11
von jacdelad
Wenn du das Bild bisher auch als Parameter Übergeben wird es so auch gehen. Kapsel mal den Bildnamen in " ein.

Re: Batch als *.exe Nur wie?

Verfasst: 22.11.2022 23:29
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

Re: Batch als *.exe Nur wie?

Verfasst: 23.11.2022 13:51
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?

Re: Batch als *.exe Nur wie?

Verfasst: 23.11.2022 20:11
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.