VB Shell EXE - Output Return

Gast #3833704
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.