Explorer Untersuchen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Explorer Untersuchen

    Hallo Forum,

    Ich würde gerne wissen wie ich herausfinden kann welche Ordner gerade geöffnet sind. Also mit "Process.GetMainWindowTitle" klappt leider nicht da kommt nähmlich nur eine leere ListBox. Wüsste jemand ob es noch andere möglichkeiten gibt geöffnete Ordner auszulesen (vllt. Explorer)?
    Die geöffneten Ordner zu kriegen ist für dich extrem schwer bis unmöglich.
    Dazu müsstest du dich (sofern es überhaupt möglich ist) durch die Tiefen der WinAPI graben, wo es KEINEN Beispielcode in VB.NET oder C# mehr gibt.
    Und das wird hier garantiert keiner für dich tun.
    Explorer besteht ja nur aus TreeView und ListView, wenn man die Nachrichten / Message von ListView oder TreeView auswertet, kann man geöffneten Ordner ermitteln.
    Im meinem ersten post habe einfachere möglichkeit gepostet, wie man an geöffneten Ordner ran kommt, am sonsten würde ich abraten mit dem ding (Explorer) rum zu spielen, solche spielereien können sehr bös enden.
    Samus Aran hat recht.... !

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „SystemUnknow“ ()

    So schwer ist das Ganze nicht - liste alle TopLevel-Fenster mit EnumWindows() auf. In der Callback-Prozedur liest du mit GetClassName() den Klassennamen des aktuell bearbeiteten Fensters aus. Ist er "CabinetWClass", hast du ein Explorer-Fenster gefunden. Damit kannst du anstellen, was immer du willst (z.B. den Titel auslesen).

    Edit: Hier ein Beispiel in C++:

    C-Quellcode

    1. #include <windows.h>
    2. #include <iostream>
    3. using namespace std;
    4. BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam);
    5. int _tmain(int argc, _TCHAR* argv[])
    6. {
    7. EnumWindows(EnumProc, NULL);
    8. cout << "finished." << endl;
    9. cin.get();
    10. return 0;
    11. }
    12. BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam) {
    13. wchar_t name[100], title[100];
    14. GetClassName(hwnd, name, 99);
    15. GetWindowText(hwnd, title, 99);
    16. if (wcscmp(name, L"CabinetWClass") == 0) {
    17. wcout << L"Explorer Window found. Title: " << title << endl;
    18. }
    19. return TRUE;
    20. }
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()