VB Shell EXE - Output Return

Gast #3833704
Lesenswert?

Hallo Alle,

ich bin nicht ein Expert für VB, deswegen bitte ich Eure Hilfe.

Von eine Excel-Sheet (durch vb) rufe ich ein EXE (Hex_Rechner.exe).
Diese Exe nimmt einen Hex Wert ein (zB 0x6110) und gibt raus einen 
anderen Hex-Wert (0x6117).

Das Shell'ing von EXE läuft gut, aber schließt die Fenster schnell aus. 
Trotzdem sehe ich den Wert 0x6117 für kurzes Augenblick. D.h. alles i.O.

Wenn ich retVal von Shell benutze, kriege ich leider nur Process-ID, 
aber nicht den Output Wert 0x6117.


Meine Frage: Gibt es eine Kodierungsmöglichkeit, mit dem ich 0x6117 
wieder zurück auf einer Zelle von Excel kriegen könnte???

Shell Command ist nicht gut genug dafür.
Ich habe versucht, auf einm TXT file den Wert zu speichern. Aber kein 
Erfolg!

Ich habe auch gelesen, neue Process zu definieren. Aber habe ich es 
nicht richtig verstanden.

Kann jemand bitte mir helfen????
Gast #3833812
Lesenswert?

Rufus Τ. Firefly schrieb:
> Du weißt, daß das Konvertieren von Zahlen zwischen Dezimal und
> Hexadezimal auch mit Excel- bzw. VBA-Bordmitteln gemacht werden kann?
> Dafür ist es wirklich völlig unnötig, ein anderes Programm aufzurufen.

Es ist aber keine Konvertierung:
> (zB 0x6110) und gibt raus einen anderen Hex-Wert (0x6117).
Gast #3835049
Lesenswert?

Hallo Peter,

Danke für die Antwort.
Das Code ist unten. Es ist sehr einfaches Code.

********
Public Sub ShellWithArguments()
Dim Inp_Value As String
Dim retVal As Variant

Inp_Value = "0x6110"
retVal = Shell("C:\Temp\DataCalc.exe  > C:\Temp\Results.TXT" & 
Inp_Value, vbNormalFocus)

End Sub
*********

retVal gives Process ID, während TXT nichts aktualisiert wird, bzw. ein 
Error in dem Console verursachen wird..

Eigentlich würde ich gern die Ergebnis (zB 0x6117) auf einer Cell von 
Excel bringen. Aber es ist noch komplizierter.


@Hallo Rufus,

es geht nicht um Hex-Dec-Bin Konvertierung o.ä.
EXE ist ein App mit I/O's.
Ich gebe ein Wert und nach System-Anforderungen gibt es wieder ein HEX 
Output raus.
Gast #3835056
Lesenswert?

HSW_80 schrieb:
> Inp_Value = "0x6110"
> retVal = Shell("C:\Temp\DataCalc.exe  > C:\Temp\Results.TXT" &
> Inp_Value, vbNormalFocus)

ich würde sagen die Reihenfolge ist falsch und du must noch warten bis 
es auch beendet ist.

Inp_Value = "0x6110"
retVal = Shell("C:\Temp\DataCalc.exe " & Inp_Value & " > 
C:\Temp\Results.TXT", vbNormalFocus, true)

http://msdn.microsoft.com/de-de/library/xe736fyk(v=vs.90).aspx

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren