Inhalt (Verzsichnispfade) aus Explorer Adressleiste lesen
-
Hallo zusammen,,
gerade versuche ich alle geöffneten Datei Explorer zur ermitteln und bei jedem den Text (Verzeichnispfad) aus der Adresszeile auszulesen. Um zu prüfen ob ich schon ein Exporer Fenster mit einem bestimmten Pfad in der Adresszeile gestartet habe.
Ich will verhindern, dass ich mehrmals den Explorer mit gleichem Text in der Adresszeile öffne.Ich habe sogar schon einen Entwurf.
public string strPath = @"c:\Data\FtpLog\FtpClient";
public bool CheckOpenFolders(string strPath)
{
bool BRet = false;foreach (Process p in Process.GetProcessesByName("explorer")) { if (p.MainWindowTitle.Equals(strPath)) { BRet = true; break; } } return BRet;
}
Und noch einen zweiten.
public bool CheckOpenFolders(string strPath)
{
bool BRet = false;System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("EXPLORER"); foreach (System.Diagnostics.Process proc in procs) { if (proc.MainWindowTitle.Contains(strPath)) { BRet = true; } } return BRet;
}
Leider werden in der Schleife (foreach....) nicht alle Prozesse in denen ein Explorer ausgeführt wird durchlaufen.
Und dann kann ich nur den Titel des Prozesses auslesen.Frage: Wie komm ich erstmal an alle Prozesse (Explorer) ran.
Und wir komme ich an den Text ran der in der Adresszeile (Verzeichnispfad) steht.Und wenn ich noch drauf komme wie man hier im Forum einen Block mit dem Quellcode hier einfügt,
dann sind die Berichte von mir auch noch etwas besser lesbar.Vielen Dank im Voraus.
Grüße von CopWorker
-
Kann es sein, dass du manche Explorer-Fenster als Administrator geöffnet hast und dein Programm deshalb keinen Zugriff darauf hat? Hast du schonmal dein Programm als Administrator ausgeführt und geschaut was dann passiert?
MfG SideWinder