Hex zu Ascii Konverter

  • VB6

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Neptun.

    Hex zu Ascii Konverter

    Hallo,

    ich habe ein Problem. Und zwar bekomm ich das Programm das ich geschrieben habe nicht zum laufen.

    Das Programm soll Hexzeichen in Ascii Zeichen umwandlen, indem er die Windows Registrie Files (Hex- Werte) einliest und daraus eine neue Datei erstellt wo dann die Ascii Namen ausgegeben werden sollen...

    Hier der Quelltext meines Programms:
    _______________________________________________________________________________________________________________________________________

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim InputText_HEX As String
    3. Dim OutputText_ASC As String
    4. Dim TmpRegFile As String
    5. 'Quellpfad aus Registry, in dem der Office-Username steht
    6. Const SourceRegSubKey_UserInfos = "Software\Microsoft\Office\UserInfo_Temp"
    7. Const SourceRegKey_UserNameHEX = "UserNameHEX"
    8. Const SourceRegKey_UserEnvironment = "UserEnvironment"
    9. 'Zielpfad in Registry, in dem der Office-Username steht
    10. Const DestinationRegSubKey_UserName = "Software\Microsoft\Office\UserInfo_Temp"
    11. Const DestinationRegKeyName = "UserNameASC"
    12. 'Funktion Hex to String
    13. Private Function Convert2String(ByVal Username As String) As String
    14. Dim x As Integer 'Variable wird deklariert
    15. For x = 1 To Len(Username) Step 6 'Nach 6 Zeichen, wird ein neues Ascii- Zeichen ausgegeben (wegen "00,")
    16. Convert2String = Convert2String & Chr$(CLng("&H" & Mid$(Username, x, 2))) 'ToString Funktion
    17. Next
    18. Exit Function
    19. End Function
    20. 'tmp. Reg-File erzeugen
    21. Private Function CreateRegFile()
    22. On Error Resume Next
    23. Dim RegFile As Integer
    24. RegFile = FreeFile
    25. Open TmpRegFile For Output As #RegFile
    26. Print #RegFile, "Windows Registry Editor Version 5.00"
    27. Print #RegFile, "[HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\UserInfo]"
    28. Print #RegFile, ""
    29. Print #RegFile, """Username""=hex:" & OutputText_ASC
    30. Close #RegFile
    31. End Function
    32. Private Sub cmdTranslate_Click()
    33. On Error Resume Next
    34. InputText_HEX = ""
    35. OutputText_ASC = ""
    36. lblInfo.Caption = "- Microsoft FullUsername auslesen aus:" & vbCrLf & _
    37. " 'HKCU\Software\Microsoft\Office\10.0\Common\UserInfo\UserNameASCII'" & vbCrLf & vbCrLf & _
    38. "- Usernamen in Registry entsprechenden ASC-Wert umwandeln" & vbCrLf & vbCrLf & _
    39. "- Tmp. Reg-File anlegen: 'C:\UserName.reg' und ASC-Wert darin speichern"
    40. 'MS.Fullname aus Reg einlesen
    41. InputText_HEX = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserNameHEX)
    42. 'Tmp. Regfile Pfad aus Registry einlesen
    43. TmpRegFile = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserEnvironment)
    44. 'Ueberpruefung ob letztes Zeichen ein '\' ist
    45. If Right(TmpRegFile, 1) <> "\" Then TmpRegFile = TmpRegFile & "\"
    46. TmpRegFile = TmpRegFile & "UserInfos.reg"
    47. 'Falls KEIN Username hinterlegt ist, wird 'Meffert AG' eingetragen
    48. If InputText_HEX = "" Then InputText_HEX = "4D,00,65,00,66,00,66,00,65,00,72,00,74,00,20,00,41,00,47"
    49. 'Username in Registry entsprechenden HEX-Wert umwandeln
    50. OutputText_ASC = Convert2String(InputText_HEX) & "00,00"
    51. 'tmp. Reg-File mit HEX-Wert erzeugen
    52. CreateRegFile
    53. 'erzeugten HEX-Wert in tmp. Reg-Wert schreiben
    54. Reg_SetString HKEY_CURRENT_USER, DestinationRegSubKey_UserName, DestinationRegKeyName, OutputText_ASC
    55. End Sub
    56. Private Sub Form_Load()
    57. cmdTranslate_Click
    58. End
    59. End Sub

    ____________________________________________________________________________________________________________________________________


    Da ich nur ein Laie bin, hoffe hier kann und will mir jemand helfe!!!

    VIELEN DANK


    Edit by LaMa5:
    - VB-Tag hinzugefügt; Beim nächsten Mal bitte selbst dran denken!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    ahoi,

    wo liegt denn das problem startet das programm nicht, liest es nix aus werden die werte nicht richtig umgewandelet .... ????
    außerdem könntest du die masse an code vielleicht in codetags verpacken bzw nur den relevanten code posten
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    mh nun mit vb6 kann ich es leider nicht testen aber kann es sein das das evtl als string übergeben werden muss ??
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    wenn du die funktion aufrufst kommt denn bei dir eine toolbox die dir vielleicht die übergebbaren parameter anzeigt ??
    vb6 is bei mir ne weile her
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Mono“ ()

    is das eigentlich ne function die dir von vb6 zur verfügung gestellt wird oder eine eigene ?
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    erstmal danke für die schnellen antworten, aber ich kann mit den links nicht viel anfangen!!!weil ich nicht viel ahnung vom vb habe...

    das Programm habe ich von einem vorherrigen Programm umgeändert. Das vorherige Programm hat die Daten nur genau andersrum konvertiert!

    hier mal das original Programm:
    _____________________________________________________________________________________________________

    Visual Basic-Quellcode

    1. Option Explicit
    2. Dim InputText_ASC As String
    3. Dim OutputText_HEX As String
    4. Dim TmpRegFile As String
    5. 'Quellpfad aus Registry, in dem der Office-Username steht
    6. Const SourceRegSubKey_UserInfos = "Software\Microsoft\Office\10.0\Common\UserInfo"
    7. Const SourceRegKey_UserNameASCII = "UserNameASCII"
    8. Const SourceRegKey_UserEnvironment = "UserEnvironment"
    9. 'Zielpfad in Registry, in dem der Office-Username steht
    10. Const DestinationRegSubKey_UserName = "Software\Microsoft\Office\10.0\Common\UserInfo"
    11. Const DestinationRegKeyName = "UserNameHEX"
    12. 'ASCII in HEX umwandeln
    13. Private Function Convert2HEX(ByVal Username As String) As String
    14. On Error Resume Next
    15. Dim x As Integer
    16. For x = 1 To Len(Username)
    17. Convert2HEX = Convert2HEX & Hex(Asc(Mid$(Username, x, 1))) & ",00,"
    18. Next
    19. End Function
    20. 'tmp. Reg-File erzeugen
    21. Private Function CreateRegFile()
    22. On Error Resume Next
    23. Dim RegFile As Integer
    24. RegFile = FreeFile
    25. Open TmpRegFile For Output As #RegFile
    26. Print #RegFile, "Windows Registry Editor Version 5.00"
    27. Print #RegFile, "[HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\UserInfo]"
    28. Print #RegFile, ""
    29. Print #RegFile, """Username""=hex:" & OutputText_HEX
    30. Close #RegFile
    31. End Function
    32. Private Sub cmdTranslate_Click()
    33. On Error Resume Next
    34. InputText_ASC = ""
    35. OutputText_HEX = ""
    36. 'MS.Fullname aus Reg einlesen
    37. InputText_ASC = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserNameASCII)
    38. 'Tmp. Regfile Pfad aus Registry einlesen
    39. TmpRegFile = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserEnvironment) & "UserInfos.reg"
    40. 'Falls KEIN Username hinterlegt ist, wird 'Meffert AG' eingetragen
    41. If InputText_ASC = "" Then InputText_ASC = "Meffert AG"
    42. 'Username in Registry entsprechenden HEX-Wert umwandeln
    43. OutputText_HEX = Convert2HEX(InputText_ASC) & "00,00"
    44. 'tmp. Reg-File mit HEX-Wert erzeugen
    45. CreateRegFile
    46. 'RegSetValue HKEY_CURRENT_USER, DestinationRegSubKey_UserName, DestinationRegKeyName, REG_BINARY, OutputText_HEX, Len(OutputText_HEX)
    47. End Sub
    48. Private Sub Form_Load()
    49. On Error Resume Next
    50. InputText_ASC = ""
    51. OutputText_HEX = ""
    52. lblInfo.Caption = "- Microsoft FullUsername auslesen aus:" & vbCrLf & _
    53. " 'HKCU\Software\Microsoft\Office\10.0\Common\UserInfo\UserNameASCII'" & vbCrLf & vbCrLf & _
    54. "- Usernamen in Registry entsprechenden HEX-Wert umwandeln" & vbCrLf & vbCrLf & _
    55. "- Tmp. Reg-File anlegen: 'C:\UserName.reg' und Hex-Wert darin speichern"
    56. 'MS.Fullname aus Reg einlesen
    57. InputText_ASC = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserNameASCII)
    58. 'Tmp. Regfile Pfad aus Registry einlesen
    59. TmpRegFile = Reg_GetValue(HKEY_CURRENT_USER, SourceRegSubKey_UserInfos, SourceRegKey_UserEnvironment)
    60. 'Ueberpruefung ob letztes Zeichen ein '\' ist
    61. If Right(TmpRegFile, 1) <> "\" Then TmpRegFile = TmpRegFile & "\"
    62. TmpRegFile = TmpRegFile & "UserInfos.reg"
    63. 'Falls KEIN Username hinterlegt ist, wird 'Meffert AG' eingetragen
    64. If InputText_ASC = "" Then InputText_ASC = "Meffert AG"
    65. 'Username in Registry entsprechenden HEX-Wert umwandeln
    66. OutputText_HEX = Convert2HEX(InputText_ASC) & "00,00"
    67. 'tmp. Reg-File mit HEX-Wert erzeugen
    68. CreateRegFile
    69. End
    70. End Sub



    Edit by LaMa5:
    - VB-Tag hinzugefügt; Beim nächsten Mal bitte selbst dran denken!!

    _____________________________________________________________________________________________________

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()