RegMaker

  • Hallo,

    versuche gerade ein RegMaker zu erstellen, aber der schreibt nichts in die Registry.

    Spoiler anzeigen


    #include <GuiConstants.au3>

    GuiCreate("Registry Eintrag ersteller", 380, 250,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))

    GUISetBkColor(0x87ceeb) ; Hintergrundfarbe


    $font="Arial"
    $Group_1 = GuiCtrlCreateGroup("Registry Eintrag ersteller", 10, 10, 360, 230)
    GUICtrlSetFont (-1,9, 400, $font)

    GUICtrlCreateCombo("", 110, 35, 250, 25)
    $firstkey = GUICtrlSetData(-1, "HKEY_CLASSES_ROOT\|HKEY_CURRENT_USER\|HKEY_LOCAL_MACHINE\|HKEY_USER\|HKEY_CURRENT_CONFIG\|HKEY_PERFORMANCE_DATA\|", "HKEY_CURRENT_USER\")
    $font="Arial"
    $Label_1 = GuiCtrlCreateLabel("HiveKey", 20, 40, 80, 25) ;100
    GUICtrlSetFont (-1,9, 400, $font)

    $folowkey = GuiCtrlCreateInput("Software\AutoIt\",110, 70, 250, 25)
    $font="Arial"
    $Label_2 = GuiCtrlCreateLabel("Folge-Keys", 20, 75, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    GUICtrlCreateCombo("", 110, 105, 250, 25)
    $dattyp = GUICtrlSetData(-1, "REG_SZ|REG_BINARY|REG_DWORD|REG_MULTI_SZ|REG_EXPAND_SZ|", "REG_SZ")
    $Label_3 = GuiCtrlCreateLabel("Datentyp", 20, 110, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    $datwert = GuiCtrlCreateInput("123456", 110, 140, 250, 25)
    $font="Arial"
    $Label_4 = GUICtrlCreateLabel("Datenwert", 20, 145, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    $font="Arial"
    $Button_1 = GuiCtrlCreateButton("Exit", 260, 180, 100, 40)
    GUICtrlSetFont (-1,9, 400, $font)

    $Button_2 = GuiCtrlCreateButton("Eintragen", 20, 180, 100, 40)


    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    Case $msg = $Button_2
    RegWrite($firstkey & @LF & $folowkey , $dattyp , $datwert)


    Case $msg = $Button_1
    Exit
    Case Else

    EndSelect
    WEnd
    Exit


    Wenn ich nur wüste, was ich falsch mache ????

    Liebe Grüße und HAPPY WEEKEND,

    Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hi,

    [autoit]

    RegWrite($firstkey & @LF & $folowkey , $dattyp , $datwert)

    [/autoit]

    In der Zeile muss das @LF weg.

    Mfg

    2 Mal editiert, zuletzt von Daniel W. (5. Mai 2007 um 00:37)

  • Hallo Daniel.

    Auch ohen dem @LF geht es nicht *mh*

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hm erstmal nen Snickers ... Du kannst ja debuggen indem du vor dem Regwrite ne msgbox machst mit dem Error Code und danach eine mit dem Error code. Wenn sich der Error Code ändert weißt du das es da hängt. Ansonsten weiter gucken^^

  • 3 fehler:
    - ersten combobox definieren die du ja auslesen willst
    - dann musst du die ganzen edit feldlder bzw comboboxen auslense da wenn du gleich die variable einträgst nur die interne vergebene nr für das ctrl element bekommst.
    - du musst ja auch einen namen für den Registry eintrag vergeben nicht nur den wert und als was sondern wie denn das eil heist.im bsp heist es Test.

    Spoiler anzeigen
    [autoit]

    RegWrite ( "keyname" [,"valuename", "type", value] )

    [/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GuiCreate("Registry Eintrag ersteller", 380, 250,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))

    [/autoit] [autoit][/autoit] [autoit]

    GUISetBkColor(0x87ceeb) ; Hintergrundfarbe

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $font="Arial"
    $Group_1 = GuiCtrlCreateGroup("Registry Eintrag ersteller", 10, 10, 360, 230)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $meinecomboboyheist = GUICtrlCreateCombo("", 110, 35, 250, 25)
    $firstkey = GUICtrlSetData(-1, "HKEY_CLASSES_ROOT\|HKEY_CURRENT_USER\|HKEY_LOCAL_MACHINE\|HKEY_USER\|HKEY_CURRENT_CONFIG\|HKEY_PERFORMANCE_DATA\|", "HKEY_CURRENT_USER\")
    $font="Arial"
    $Label_1 = GuiCtrlCreateLabel("HiveKey", 20, 40, 80, 25) ;100
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $folowkey = GuiCtrlCreateInput("Software\AutoIt\",110, 70, 250, 25)
    $font="Arial"
    $Label_2 = GuiCtrlCreateLabel("Folge-Keys", 20, 75, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateCombo("", 110, 105, 250, 25)
    $dattyp = GUICtrlSetData(-1, "REG_SZ|REG_BINARY|REG_DWORD|REG_MULTI_SZ|REG_EXPAND_SZ|", "REG_SZ")
    $Label_3 = GuiCtrlCreateLabel("Datentyp", 20, 110, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $datwert = GuiCtrlCreateInput("123456", 110, 140, 250, 25)
    $font="Arial"
    $Label_4 = GUICtrlCreateLabel("Datenwert", 20, 145, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $font="Arial"
    $Button_1 = GuiCtrlCreateButton("Exit", 260, 180, 100, 40)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $Button_2 = GuiCtrlCreateButton("Eintragen", 20, 180, 100, 40)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GuiSetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_2
    RegWrite(GUICtrlRead ($meinecomboboyheist) & GUICtrlRead ($folowkey) ,"Test", GUICtrlRead ($dattyp) , GUICtrlRead ($datwert))
    ;ersten combobox definieren die du ja auslesen willst dann musst du die ganzen teile ja auslesen da wenn du gleich die variable einträgst nur die interne vergebene nr für das ctrl element bekommst.

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_1
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    WEnd
    Exit

    [/autoit]

    EDIT BugFix: Hi, hab (mal wieder) noch Codetag und Spoiler eingebaut. Magst du die Tags nicht ??

    Einmal editiert, zuletzt von Tam0r (5. Mai 2007 um 01:57)

  • Hi,

    Du hast da noch so einige Fehler drinnen ;) . Bevor Du Dich an sowas heikles wie die Bearbeitung der Registry machst ... würde ich mich erst nochmal intensiver mit Autoit beschäftigen. So wie Du das Skript gepostet hast, ist es sogar gut, das es die Registy nicht verändert ;) . Ist nicht böse gemeint ... soll nur als Warnung dienen ;)

    habe mal das Skript mit Kommentaren korrigiert.

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #Include <GuiCombo.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("Registry Eintrag ersteller", 380, 250,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))

    [/autoit] [autoit][/autoit] [autoit]

    GUISetBkColor(0x87ceeb) ; Hintergrundfarbe

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $font="Arial"
    $Group_1 = GuiCtrlCreateGroup("Registry Eintrag ersteller", 10, 10, 360, 230)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $firstkey = GUICtrlCreateCombo("", 110, 35, 250, 25) ;hier stehen die Daten drinnen und hier müssen sie auch herausgeholt werden!!!
    ;mit GUICtrlSetdata werden nur die Daten in die Combobox geschrieben!
    GUICtrlSetData(-1, "HKEY_CLASSES_ROOT\|HKEY_CURRENT_USER\|HKEY_LOCAL_MACHINE\|HKEY_USER\|HKEY_CURRENT_CONFIG\|HKEY_PERFORMANCE_DATA\|", "HKEY_CURRENT_USER\")
    $font="Arial"
    $Label_1 = GuiCtrlCreateLabel("HiveKey", 20, 40, 80, 25) ;100
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $folowkey = GuiCtrlCreateInput("Software\AutoIt\",110, 70, 250, 25)
    $font="Arial"
    $Label_2 = GuiCtrlCreateLabel("Folge-Keys", 20, 75, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $dattyp = GUICtrlCreateCombo("", 110, 105, 250, 25) ; siehe $firstkey
    GUICtrlSetData(-1, "REG_SZ|REG_BINARY|REG_DWORD|REG_MULTI_SZ|REG_EXPAND_SZ|", "REG_SZ")
    $Label_3 = GuiCtrlCreateLabel("Datentyp", 20, 110, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $datwert = GuiCtrlCreateInput("123456", 110, 140, 250, 25)
    $font="Arial"
    $Label_4 = GUICtrlCreateLabel("Datenwert", 20, 145, 80, 25)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $font="Arial"
    $Button_1 = GuiCtrlCreateButton("Exit", 260, 180, 100, 40)
    GUICtrlSetFont (-1,9, 400, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $Button_2 = GuiCtrlCreateButton("Eintragen", 20, 180, 100, 40)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_2

    ;mit GuiCtrlRead ließt Du bei den meisten Controls die Daten aus ... nimmst Du nur die Variable bekommst
    ;Du nur die ControlID !!!
    Dim $cbo_text_firstkey
    Dim $cbo_text_dattype
    Dim $dlg_answer
    _GUICtrlComboGetLBText ( $firstkey, _GUICtrlComboGetCurSel ( $firstkey ), $cbo_text_firstkey )
    _GUICtrlComboGetLBText ( $dattyp, _GUICtrlComboGetCurSel ( $dattyp ), $cbo_text_dattype)

    [/autoit] [autoit][/autoit] [autoit]

    $dlg_answer = MsgBox(266529,"Soll der Schlüssel in die Registry eingetragen werden?",$cbo_text_firstkey & GuiCtrlRead($folowkey) &@LF& "Datenwert: "&GuiCtrlRead($datwert)&@LF& "Datentyp: "&$cbo_text_dattype)
    if $dlg_answer = 1 then ;ok
    ;in deiner Gui fehlt noch der name des einzutragenden Wertes!
    $success = RegWrite($cbo_text_firstkey & GuiCtrlRead($folowkey), "foobar" , $cbo_text_dattype , GuiCtrlRead($datwert))
    if $success <> 1 Then
    msgbox(0,"Einfehler ist aufgetreten","Bitte folgenden Fehlercode in der Hilfe nachlesen:" &@error)
    Endif
    Endif

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_1
    Exit
    Case Else

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    WEnd
    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    ... tamor ist schneller als sein Schatten ... und als ich :)

    Einmal editiert, zuletzt von jonk (5. Mai 2007 um 02:22)

  • Hallo TomOr & jonk.

    1.)
    Vielen Dank an EUCH !!!

    2.)
    Ich kann jonk seine Warnung sehr gut verstehen und möchte mich auch dafür bedanken. jonk, ich bin nie böse, wenn man mir etwas sagt, das Hand und Fuß hat und besonders dann nicht, wenn es nett und höflich geschrieben ist. Wenn mein PC mal nicht "abraucht", dann mache ich ein Kreuz im Kalender. LOL

    Ja, ich bin Anfängerin und ich beschäftige mich viel mit AutoIt und ich muß sagen, das mich AutoIt so begeistert, das ich andere Hobbys völlig zur Seite geschoben habe. War ja nicht schwerrrrr :rofl:

    Ich möchte Euch allen ein schönes sonniges WE wünschen und das nächste was ich möchen möchte, werde ich dann mal um einiges nach hinten schieben.

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl