Seite 1 von 3

ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 15:42
von kunstlust
Kennt jemand eine Methode um die alle markierten Dateien aus dem Explorer an PB ohne ProgramParameter() zu übergeben?
Leider ist die Länge der Übergabe bei ProgramParameter() ja auf 260 begrenzt.
Ich möchte das für ein Tool im SendTo den Benutzers nutzen und bei Netzwerkpfanden ist die Stringlänge schnell erreicht.

Danke für einen TIP :lurk:

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 15:58
von NeoChris
Warum zur Hölle gibt es ne Zeichenbegrenzung bei ProgramParameter? Sinn?!

Warum behebt Microsot das nicht?

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 16:13
von kunstlust
Das liegt sicher an der Übergabe an eine Exe, ich vermute das dies noch alten Tagen stammt...

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 16:23
von RSBasic
Du kannst auch einen eigenen Kontextmenü-Handler für einen Menüeintrag registrieren. Soweit ich weiß gibt es damit keine Einschränkung.
Ich glaube, Alexi hat das schon mal umgesetzt.

Bei Google gibt es viele Beispielcodes, die meistens aber leider in C++ geschrieben sind. Wenn du dich mit C++ auskennst, kannst du versuchen, einen C++-Code in PB anzupassen.

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 21:28
von kunstlust
Meine C++ Kenntnisse halten ich lieber nicht vor. Gibt es keine Api Funktion, da bist du doch im Thema, oder? Von dir Stammt doch die tolle API-Sammlung ?

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 21:47
von RSBasic
Das basiert ja meistens auf WinAPIs, aber da das etwas komplexer ist, als nur ein paar einfache Funktionsaufrufe, muss man sich erstmal mit dem Thema beschäftigen.
Da ich das noch nie gemacht habe, kann ich dir leider nicht helfen. Und viel Zeit habe ich leider auch nicht, sorry.

Auf MSDN und Stackoverflow gibt es viele Beispielcodes, aber wie gesagt nur in C++. Beispielsweise hier ein CPP-Projekt zum Downloaden: https://code.msdn.microsoft.com/windows ... l-410a709a

Ich weiß nicht, was für ein Tool du hast, aber am einfachsten ist es, wenn der Benutzer die Dateien in deiner Anwendung mit Hilfe des OpenFileRequesters manuell auswählt.

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 22:35
von GPI
RSBasic hat geschrieben:Ich weiß nicht, was für ein Tool du hast, aber am einfachsten ist es, wenn der Benutzer die Dateien in deiner Anwendung mit Hilfe des OpenFileRequesters manuell auswählt.
Oder ein kleines Fenster auf den Desktop zaubern und der User kann die Dateien per Drag&Drop ablegen.

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 22:44
von kunstlust
Erstmal danke, du sollst dir auch nicht meinen Kopf machen... Ich benötige dies und PDFs zu drucken, dazu lade ich die PDFs jeweils in den Speicher und sende. Sie danach an mit @PJL Kommandos an einen Drucker. Dabei spielt die Menge nicht so eine große Rolle, aber die Dateinamen und die Pfade sprengen eben im Zusammenspiel of die Grenzen. Das mit dem Desktop habe ich schon mal gemacht. Das könnte ein Weg sein.

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 22:51
von kunstlust
Wobei ich mich eben Frage, wie das z.B. das Zip von Windows macht. Ich habe mir unter Windows 10 mal 1024 Dateien angelegt und diese per Sendto an eine Consolen Exe von PB übergeben, da kommt eine Windowsmeldung das es zufiele Dateien sind. Das Windowszip hat mit der Menge kein Problem. Ich würde gerne die Logic verstehen, was läuft da anders. Irgendwie muss Windows ja etwas anders machen, als eine %x zu übergeben. Da muss doch eine Art Array übergebenen werden, oder?

Re: ProgramParameter() - Get Selected Files Explorer

Verfasst: 08.12.2015 22:52
von GPI
Äh, warum machst du das nicht so, das du ein Programm schreibst, das den Ordner überwacht. Wenn dort eine PDF gespeichert wirst, druckst du sie und verschiebst sie in einen "erledigt" Ordner.