Microsoft Excel

Herbers Excel/VBA-Archiv

DOS Commandf in Zwischenablage umleiten/ auslesen

Betrifft: DOS Commandf in Zwischenablage umleiten/ auslesen von: Arthur
Geschrieben am: 19.03.2015 16:15:18

Hallo.

Mein Problem ist im Grunde klein, dennoch will es nicht so werden wie es soll ...
Ihr könnt da sicher helfen.

Die Aufgabe: Aus VBA einen DOS-Befehl absetzen, zur Vermeidung von Zwischendateien das Ergebnis in die Zwischenablage umleiten, die Zwischenablage auslesen.

DOS-Befehl absetzen: Shell command
Umleiten in Zwischenablage (WIN7): Pipe-Funktion: | Clip
Zwischenablage auslesen: per DataObject

In einem Kommandofenster ausgeführt stehen die Daten für das DataObject zur Verfügung und werden ausgelesen. Wenn der DOS-Befehl über die Shell ausgeführt wird, landen die Ergebnisse nicht im Zwischenspeicher, nicht im Clipboard.

Was läuft da falsch?

Hier ein kleiner Beispielcode:

Sub mytest()

    Dim oData As New DataObject
    
    Shell "ipconfig | clip"

    With oData
        .GetFromClipboard
        Debug.Print oData.GetText(1)
    End With
    Set oData = Nothing

End Sub
Gruß, Arthur

  

Betrifft: AW: DOS Commandf in Zwischenablage umleiten/ auslesen von: Namenloser
Geschrieben am: 19.03.2015 16:24:10

Hallo
Shell läuft asyncron zu VBA code, d.h. das dosen dingens ist noch am initialisieren, da ist dein vba code schon am auslesen der Zwischenablage. Entweder ein ausreichend grosses Sleep zw. Shell und With oData oder warten bis die Shell beendet wurde.


  

Betrifft: AW: DOS Commandf in Zwischenablage umleiten/ auslesen von: Namenloser
Geschrieben am: 19.03.2015 16:31:18

Versuchs halt so:

Sub mytest()

    Dim oData As New DataObject
Call CreateObject("wscript.shell").Run(Environ$("comspec") & " /c ipconfig |Clip", 0, True)
With oData
        .GetFromClipboard
        Debug.Print oData.GetText(1)
    End With
    Set oData = Nothing

End Sub



  

Betrifft: DOS Command auslesen von: Anton
Geschrieben am: 19.03.2015 16:26:40

Hallo Arthur,

du kannst die Ausgabe des DOS-Befehls direkt auslesen, etwa so, wie hier.

mfg Anton


  

Betrifft: Vielen Dank ... von: Arthur
Geschrieben am: 19.03.2015 16:55:12

:o)


 

Beiträge aus den Excel-Beispielen zum Thema "DOS Commandf in Zwischenablage umleiten/ auslesen"