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????
Zeige mal den Code vom aufruf. Das ist der Textdatei, wird vermutlich das einfachste sein. Was ging daran nicht?
HSW_80 schrieb: > Von eine Excel-Sheet (durch vb) rufe ich ein EXE (Hex_Rechner.exe). 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. http://support.microsoft.com/kb/161304/en-us
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).
Peter II schrieb: > Es ist aber keine Konvertierung: >> (zB 0x6110) und gibt raus einen anderen Hex-Wert (0x6117). Das ist natürlich richtig. Aber auch das Rechnen lässt sich mit VBA-Bordmitteln anstellen, was auch immer da für magische Dinge angestellt werden mögen.
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.