Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DOS Commandf in Zwischenablage umleiten/ auslesen

DOS Commandf in Zwischenablage umleiten/ auslesen
19.03.2015 16:15:18
Arthur
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DOS Commandf in Zwischenablage umleiten/ auslesen
19.03.2015 16:24:10
Namenloser
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.

AW: DOS Commandf in Zwischenablage umleiten/ auslesen
19.03.2015 16:31:18
Namenloser
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

DOS Command auslesen
19.03.2015 16:26:40
Anton
Hallo Arthur,
du kannst die Ausgabe des DOS-Befehls direkt auslesen, etwa so, wie hier.
mfg Anton

Anzeige
Vielen Dank ...
19.03.2015 16:55:12
Arthur
:o)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige