Wildcards in Verbindung mit ShellExecute

  • Hallo zusammen,

    ich habe zu dem Thema Wildcards in ShellExecute nichts gefunden was zu meinem Problem passt, deswegen:


    Ich möchte eine pdf öffnen die folgendermaßen benannt ist:

    \Dokumente\Jahrgang\Auftragsnummer_Auftragsart_Name.pdf

    \Dokumente\2023\230124_FA_Janssen.pdf


    Kann ich bei ShellExecute nicht mit Wildcards arbeiten?

    z.B. \Dokumente\2023\230124_FA_*.pdf

  • Moin Kayes.

    Was möchtest Du denn erreichen?
    Das alle PDF Dateien die mit ....\230124_FA_ vorhanden sind sich öffnen oder diese z. B. als Liste ausgegeben werden?
    Oder möchtest Du diese Dateien weg kopieren bzw. verschieben?

    Ich sehe nicht, was Du erreichen möchtest. Magst Du das BITTE etwas genauer darstellen? Vielen Dank.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Ich möchte, das die Datei sich im Acrobat Reader öffnet.

    \Dokumente\2023\230124_FA_Janssen.pdf

    Der Teil ....\230124_FA_ ist nur einmal vorhanden und immer gleich aufgebaut. Über eine Variable kann ich den Jahrgang und ersten Teil des Pfades zusammenbauen. Aber den Namen (in diesem Fall Janssen) weiß ich nicht genau und soll durch die Wildcard ersetzt werden.

    Hier die Funktion, in $idProjekt steckt 230124:

    Code
    Func _OPENFA()
    Global $jjjj = "20" & StringLeft(GUICtrlRead($idProjekt), 2)
    Global $projekt = GUICtrlRead($idProjekt)
    $sImageFileName = "H:\Dokumente\" & $jjjj & "\" & $projekt & "_FA_*"
        ShellExecute($sImageFileName & ".pdf")
        If @error Then Exit MsgBox(BitOR(4096, 16),"", "Fehler : Datei nicht gefunden" & @CRLF)
     EndFunc
  • Habe ich es richtig verstanden, das Du alle PDF Dateien öffnen möchtest die (in diesem Fall) am 24.01.2023 (230124) datiert sind?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Ein Beispiel Anhand der Hilfe zusammengeklöppelt:

  • Das ist weniger eine Frage von ShellExecute als mehr von dem Programm was am Ende ausgeführt wird.
    ShellExecute schaut lediglich in der Registry nach mit welchem Programm eine Dateiendung verknüpft ist wie diese aufzurufen ist (Siehe Zweig HKEY_CLASSES_ROOT).
    Im Falle vom Acrobat sollte (hab kein Acrobat) sowas in der Art stehen: "C:\...\acrobat.exe" "%1"

    Sprich: Der Acrobat-Reader wird gestartet und bekommt den Dateinamen als Parameter übergeben.
    In deinem Fall würde im Dateinamen noch ein Sternchen stehen und nun kommt es also darauf an ob der Acrobat Reader mit Sternchen als Wildcards umgehen kann oder eben nicht.

    Offensichtlich kann es der Acrobat Reader ja nicht.
    Also musst du dir anders behelfen und da gibt es die Möglichkeit dem Reader mehrere Dateinamen zu übergeben.
    Also wie Moombas sagte die Dateiliste erzeugen und als mehrere Parameter dem Acrobat Reader überreichen.

  • Über FileFind bin schon ein ganzes Stück weiter gekommen.


    FileFind hat das Problem gelöst, Vielen Dank Moombas und Alina !

    Das lesen wir gerne im Forum. Sowohl das es gelöst wurde, als auch der Dank. Ich glaube da spreche ich für alle. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl