explorer fernsteuern



  • Hi,
    gehört zwar nicht direkt nach API, aber irgendwie auch doch.

    Ich starte aus einem Programm eine Explorerinstanz und möchte das dieser einen bestimmten Pfad öffnet und bestimmte dateien markiert.

    das klappt alles soweit, dass er eine Datei Markiert.
    das Kommandozeileninterface des Explorers scheint eine Mehrfachauswahl nicht zu unterstützen.
    ( explorer.exe /n, /e, "pfad", /select, dateiname )

    Kennt jemand andere Tricks den Explorer dazu zu bewegen eine Liste von Dateien zu selektieren.

    Danke im Voraus



  • ich weis jetzt nicht ob der weg (ab einem bestimmten punkt) funzt, aber ich würde mal folgendes versuchen.

    den explorer über createprocess starten. dahingehend bekommst du die ProcessId zurück.

    dann mit EnumWindows (IsWindowVisible) die Fensterliste durchforsten und mit GetWindowThreadProcessId die ProcessId vergleichen. wenn die stimmt haste das Handle auf das Explorer Fenster.

    dann mit EnumChildWindows die Kindfenster vom Explorer durchlaufen und mit GetClassName die Classennamen der Kindfenster abfragen. der classenname der ListView im Explorer ist bei mir SysListView32. wenn SysListView32 zurückgegeben wird, hast du das Handle auf die Liste im Explorer.

    ab hier weis ich jetzt eben nicht ob es klappt. aber nen versuch ist es wert...
    mit dem Handel der SysListView32 könntest du dann wieder alle LVM_* Messages nutzen um deine gewünschten dateien zu markieren.



  • oje, das klingt mir doch sehr frickelig.


Anmelden zum Antworten