einzelnes Explorer - Fenster über vb.net Pfad .enabled = false setzen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Gunngir.

    einzelnes Explorer - Fenster über vb.net Pfad .enabled = false setzen

    Hallo liebe VB'ler


    Das Problem besteht, dass der Benutzer im Windows Explorer, welches von meinem Programm geöffnet wird, den Pfad raus kopiert.
    Der Pfad ist ein UNC - Pfad (Beispiel: \\Server0815\Freigabe\Ordner\123.CatPart).

    Leider arbeiten die Benutzer unter Zeitdruck und versuchen so den Pfad, welcher ein UNC Pfad ist rauszukopieren, was im späteren Verlauf mit Catia / Delmia probleme macht.

    Gäbe es eine Möglichkeit, den Pfad oben im Explorer .enabled=false zu setzen?
    Die Benutzer würden dann nicht mehr den Pfad nehmen können und somit wäre das Problem gelöst.
    Das Bereinigen eines kleinen Fehlers dauert mehrere Stunden.

    Im Dateianhang ist ein Bild, das zeigt, welche Textbox gemeint ist.

    Leider wurde im Internet nichts gefunden.
    Danke für die Anworten.
    Bilder
    • ExplorerFenster.jpg

      24,14 kB, 792×160, 110 mal angesehen
    @Gunngir Theoretisch ja, gugst Du hier. Du musst den Explorer von Deinem Programm aus starten, einmalig ermitteln, welches das richtige Fenster ist (Enum-Reihenfolge) und dann dieses per API-Befehl disablen.
    Theoretisch, nicht getestet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    für alle anderen

    hier ist meine Lösung:

    VB.NET-Quellcode

    1. Call cRemoteControl.SetAddressBarVisible("explorer", Pth, False)


    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class cRemoteControl
    3. Friend Shared Sub SetAddressBarVisible(ByVal WindowName As String, ByVal LocURL As String, ByVal TF As Boolean)
    4. Dim shellWindows As SHDocVw.ShellWindows = New SHDocVw.ShellWindows
    5. Dim filename As String
    6. For Each ie As SHDocVw.InternetExplorer In shellWindows
    7. filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower()
    8. If filename.Contains(WindowName) Then
    9. Dim ieLoc As String = ie.LocationURL.Substring(5).Replace("/", "\") 'cut off start 'file:' AND replace '/' with '\'
    10. If ieloc = LocURL Then
    11. ie.AddressBar = TF
    12. 'Else 'only for debugging purposes
    13. 'MessageBox.Show("ieLocURL : " & ieLoc & vbCr & "LocUrl : " & LocURL)
    14. End If
    15. End If
    16. Next
    17. End Sub
    18. End Class