Pfadabfrage bei Klick in fremder Anwendung

  • Hallo Leute,

    wie geht das hier?

    Beim Klick auf einen Ordner oder eine Datei in einem beliebigen Explorerfenster soll mein Autoit-Programm mitbekommen, wie der Pfad zu Ordner oder Datei lautet.

    Wie lässt sich außerdem der Pfad zu Netzlaufwerken entschlüsseln, das heißt unabhängig von den Netzlaufwerken machen (statt "J:\..." "\\servername...")?

    Geht das?
    Schöne Grüße,

    rasipu

  • Hi,
    letzteres geht mit

    [autoit]

    $var = DriveGetDrive( "network" )
    If NOT @error Then
    MsgBox(4096,"", "Found " & $var[0] & " drives")
    For $i = 1 to $var[0]
    MsgBox(4096,"Drive " & $i, $var[$i])
    MsgBox(0, "Drive : is mapped to", DriveMapGet($i)
    Next
    EndIf

    [/autoit]


    Gruss Jan

    Einmal editiert, zuletzt von janrenzlow (24. August 2007 um 21:41)

  • Hi, das erstere geht mit nur über Klassen, da das Explorerfenster immer wechselnde Titel nämlich die der Ordner anzeigt - einzig & allein die Klasse bleibt unveränderlich. Wechsel im Anklicken eines Ordners kann man über die Statusanzeige nachvollziehen darum also

    [autoit]


    Opt("WinTitleMatchMode", 4)
    Dim $sSTGalt='', $iZaehler =0
    WinWaitActive('[CLASS:ExploreWClass]')
    $sSGT = StatusbarGetText ( '[CLASS:ExploreWClass]','', 1)

    [/autoit][autoit][/autoit][autoit]

    Do
    $sSGT = StatusbarGetText ( '[CLASS:ExploreWClass]','', 1)
    If $sSGT <> $sSTGalt then
    MsgBox(4096, 'Status',$sSGT & @CRLF & ControlGetText ( '[CLASS:ExploreWClass]','', 41477) & @CRLF & '', 5)
    $sSGTalt=$sSGT
    $iZaehler= $iZaehler + 1
    EndIf
    Until $iZaehler = 5

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    Das ist zumindest ein Ansatz der einen Klickwechsel und den aktuellen Pfad verrät, Wie eine blaumarkierte Datei oder Ordner zu identifizieren ist, weiß ich nicht selbst ControlCommand()funktioniert nur in Listen und Comboboxen
    Gruss Jan

    6 Mal editiert, zuletzt von janrenzlow (24. August 2007 um 22:46)

  • Hallo Jan,

    danke für die schnellen Antworten. Als Anfänger bin ich auf jeden Fall ein ordentliches Stück weiter.

    Zu Deinem ersten Beitrag:
    An meinem Rechner hängt ein NAS-Device, worauf ich Netzlaufwerke eingerichtet habe. Die entsprechenden Laufwerksbuchstaben gibt mir Dein Skript aus, nur wird der Netzwerkpfad (auch nach Ergänzen einer schließenden Klammer in Zeile 6) nicht ausgegeben. In der Hilfe wird zu "DriveMapGet" das Argument in Anführungsstrichen übergeben. Die muss ich wohl noch ergänzen.

    Zu Deinem zweiten Beitrag:
    Das sieht ja schonmal ziemlich gut aus. Beim Klick auf den Hintergrund im Explorerfenster bekomme ich den entsprechenden Pfad ausgeworfen. Mal schauen, ob sich Dateien oder Ordner unter diesem Pfad auch noch finden lassen.

    Danke für Deine Hilfe!
    Schöne Grüße,

    rasipu