1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. nuts

Beiträge von nuts

  • Kleine Anfangshilfen bitte

    • nuts
    • 20. November 2008 um 21:01

    Beispiel:

    [autoit]


    Mousemove (100, 200)

    [/autoit]


    bewegt die Maus zur X- Koordinate 100 / Y- Koordinate 200.

    Am besten mal die angesprochenen Befehle in der Hilfe ansehen, ist dort sehr gut beschrieben!

  • Kleine Anfangshilfen bitte

    • nuts
    • 20. November 2008 um 20:51
    Zitat von xXmöpmöpXx

    Ich benötige; Maus hin und her fahr funktion^^ etwas zum farben erkennen, und noch wie mann tasten drücken lässt.


    was du genau machen willst ist mir nicht ganz klar.

    Diese Funktionen sollten dich weiterbringen:

    Mousemove
    PixelGetColor
    Send

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 19. November 2008 um 15:53
    [autoit]


    $123 = IniRead("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\regtweaks.ini", "RegWrite", "Tweak2", "" )
    $123 = StringSplit($123, ',')
    If UBound($123) = 5 Then $ret = RegWrite(Execute($123[1]), Execute($123[2]), Execute($123[3]), Execute($123[4]))

    [/autoit]


    so gehts auch.

    Bin zwar noch nicht am Ziel aber es wird besser. Scheinbar muss man die Werte aus dem Array mit einem Execute herzitieren? Trotzdem seltsam ..
    Endweder $123[1] hat einen bestimmten Wert oder es hat ihn eben nicht oder?

    edit \ hehe ist ja das gleiche wie von Oscar nur ohne _ArrayDisplay, gibt es einen bestimmten Grund diese Funktion noch einzubauen?

    edit2\
    So habs geschafft. Meine erstes Skript mit 2 dimensionalem Array :D

    [autoit]


    $var = IniReadSection("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\regtweaks.ini" ,'RegWrite')
    If @error Then
    MsgBox(4096, "", "Kein Array erstellbar")
    else
    For $i = 1 To $var[0][0]

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

    $123 = StringSplit($var[$i][1] , ',')
    If UBound($123) = 5 Then $ret = RegWrite(Execute($123[1]), Execute($123[2]), Execute($123[3]), Execute($123[4]))
    Next
    endif

    [/autoit]

    die .ini sieht dabei so aus:

    Code
    [RegWrite] 
    Tweak2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3"

    Vielen dank an alle die mitgeholfen haben.

    Greenhorn sorry das ich die von dir geschrieben Funktion so links liegen gelassen habe, bin blutiger Anfänger und (noch) nicht der Lage beliebige Funktionen in meine Skripte einzusetzen.

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 19. November 2008 um 15:16

    Aber wieso passe ich dann nicht direkt die .reg an?
    Also ich will dir deine Funktion bestimmt nicht schlecht reden (verstehe sie ja gar nicht), aber ich frage mich ob das für meinen Zweck nicht etwas überdimensioniert ist (die Funktion hat ja auch mehr Zeilen als mein ganzes Skript).

    Vielleicht erstelle ich mir wirklich einfach eine tweaks.reg und führe die über autoit aus?

    Allerdings ist mir wirklich nicht klar wieso der Vorschlag von Oscar nicht funktioniert? Deiner Meinung nach müsste es ein ganz anderer Ansatz über IniReadSectionNames() sein?

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 19. November 2008 um 13:31

    Um ehrlich zu sein verstehe ich den Sinn der RegToAu3 nicht.
    Wenn ich doch schon eine funktionierende .reg datei erstellt habe, wieso soll ich diese dann in autoit übersetzen und die einträge darüber erstellen/ändern?

    Über IniReadSectionNames() liegt die Info über den zu schreibenden Reg-Schlüssel eben im Sektionsnamen, während Ansatz nur über IniReadSection die ganzen Informationen im jeweiligen Ini-Schlüssel enthalten sind (der Wert des Schlüssels eben).
    Könnte natürlich den Vorteil haben, dass es überhaupt funktioniert :D

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 19. November 2008 um 12:13

    Also gut irgendwie logisch.

    Stringsplit erstellt ein Array mit in diesem Fall 5 "Werten", dabei gibt Wert[0] an wieviele sich im Array befinden.

    [autoit]


    If UBound($123) = 5 Then

    [/autoit]


    verhindert eigentlich nur, dass in die Registrierung geschrieben wird, wenn nicht alle Parameter angegeben worden sind?

    Komischerweise funktioniert es bei mir nicht, obwohl per msgbox alles richtig angezeigt wird :(

    [autoit]


    $123 = IniRead("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\regtweaks.ini", "RegWrite", "Tweak2", "" )
    $123 = StringSplit($123, ',')
    msgbox(1, "", $123[1])
    msgbox(1, "", $123[2])
    msgbox(1, "", $123[3])
    msgbox(1, "", $123[4])
    If UBound($123) = 5 Then RegWrite($123[1], $123[2], $123[3], $123[4])

    [/autoit]


    die .ini sieht dabei so aus:

    Code
    [RegWrite] 
    Tweak2 = '"HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3"'


    ich habs schon mit verschiedenen Veränderungen in der .ini versucht (mit ', ganz ohne ") aber leider nicht die richtige Kombination rausgefunden.

    Muss eine Kleinigkeit verdreht sein, ich komm aber nicht drauf.

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 19. November 2008 um 00:26

    Mhm ich steh schon wieder aufm Schlauch. Irgendwie ein grundlegendes Verständnisproblem

    [autoit]


    $123 = IniRead("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\regtweaks.ini", "RegWrite", "Tweak2", "" )
    msgbox(1, "", $123)
    RegWrite( $123)

    [/autoit]

    die .ini sieht so aus

    Code
    [RegWrite] 
    Tweak2 = '"HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3"'

    in der msg box sieht der text dann so aus: "HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3"
    und wenn:

    [autoit]


    $123 = "HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3"

    [/autoit]


    dann müsste die Regwritezeile doch aus sehen:

    [autoit]


    Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "lala3", "REG_DWORD" , "3")

    [/autoit]


    wenn ich die Zeile selbst so eingebe funktioniert RegWrite, nur über den Umweg funktionierts nicht! Für mich irgendwie unlogisch :(

    Wenn ich die .ini so anpassen, dass jeder Regtweak aus 4 Key/Value Paare besteht (eben die 4 Variablen der RegWrite Funktion) funktioniert das ganze auch, allerdings hab ich dann in jeder RegWrite Zeile 4 Inireads und brauche pro Tweak 4 Einträge in der .ini

    Irgendwie komisch :rolleyes:

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 17. November 2008 um 18:25

    Hehe IniReadSection macht tatsächlich genau was ich will. Glaube das hab ich bis jetzt wegen der Rückgabe in ein Array völlig ignoriert (kann mit Arrays leider noch fast nichts anfangen).
    Ich werde wohl doch mal das Array Tutorial mal durcharbeiten müssen - scheint doch ganz nützlich zu sein.

    Die Lösung von Greenhorn schaue ich mir auch mal an, verstehe ich noch nicht so ganz.

    Danke euch beiden, ich melde mich wieder wenns nicht klappt.

  • Unbestimmte Anzahl Reg. - Tweaks nacheinander abarbeiten

    • nuts
    • 17. November 2008 um 17:56

    Hey,

    ich hab mir ein kleines Skript zum Einrichten meiner HPTC-Oberfläche geschrieben. Damit verändere ich die setup.ini des Hauptprogramms.

    Hier mal der Vollständigkeit halber das Skript:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUICoordMode", 1)

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

    Global $GUI = GUICreate("Setup", 450, 600)

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

    $Button1 = GUICtrlCreateButton("Auflösung/Bilder", 100, 100,250,60)
    $Button2 = GUICtrlCreateButton("Buttons", 100, 200,250,60)
    $Button3 = GUICtrlCreateButton("Programme", 100, 300,250,60)
    $Button4 = GUICtrlCreateButton("Reg-Tweaks", 100, 400,250,60)

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

    GUISetState()

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

    while 1
    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exit

    case $button1

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

    Opt("GUICoordMode", 1)

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

    Global $Gui1 = GUICreate("Form1", 633, 447, 193, 125)
    Local $Label1 = GUICtrlCreateLabel("Auflösung", 20, 20, 89, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Input1 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Auflösung", "Horizontal", ""), 16, 60, 110, 21)
    Local $input2 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Auflösung", "Vertikal", ""), 16, 90, 110, 21)
    Local $Label2 = GUICtrlCreateLabel("Horizontal", 140, 60, 64, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label3 = GUICtrlCreateLabel("Vertikal", 140, 90, 49, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label5 = GUICtrlCreateLabel("Hintergrundbilder", 20, 140, 151, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Input3 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Hintergrundbilder", "HauptGUI", ""), 16, 180, 316, 21)
    Local $Input4 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Hintergrundbilder", "EinstellungenGUI", ""), 16, 210, 316, 21)
    Local $Input5 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Hintergrundbilder", "BeendenGUI", ""), 16, 240, 316, 21)
    Local $Label4 = GUICtrlCreateLabel("Haupt-GUI", 350, 180, 67, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label6 = GUICtrlCreateLabel("Beenden-GUI", 350, 210, 86, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label7 = GUICtrlCreateLabel("Einstellungen-GUI", 350, 240, 111, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Speichern = GUICtrlCreateButton("Speichern", 16, 300, 153, 49, 0)
    Local $Back = GUICtrlCreateButton("Zurück", 179, 300, 153, 49, 0)

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

    GUISetState()
    while 1

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

    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exit
    case $Speichern
    IniWrite(@ScriptDir & "\htpc.ini", "Auflösung", "Horizontal", GUICtrlRead($Input1))
    Iniwrite(@ScriptDir & "\htpc.ini", "Auflösung", "Vertikal", GUICtrlRead($Input2))
    Iniwrite(@ScriptDir & "\htpc.ini", "Hintergrundbilder", "HauptGUI", GUICtrlRead($Input3))
    Iniwrite(@ScriptDir & "\htpc.ini", "Hintergrundbilder", "EinstellungenGUI", GUICtrlRead($Input4))
    Iniwrite(@ScriptDir & "\htpc.ini", "Hintergrundbilder", "BeendenGUI", GUICtrlRead($Input5))
    MsgBox(1, "", "Gespeichert")
    case $Back
    GUISetState(@SW_HIDE, $GUI1)
    GUISetState(@SW_SHOW, $GUI)
    ExitLoop
    EndSwitch
    Wend

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

    case $button2

    Opt("GUICoordMode", 1)
    $Gui2 = GUICreate("Form2", 713, 497, 193, 125)
    $Label1 = GUICtrlCreateLabel("Button", 16, 20, 57, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Input1 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Left", ""), 16, 60, 150, 21)
    Local $Input2 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Width", ""), 16, 90, 150, 20)
    Local $Input3 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Height", ""), 16, 120, 150, 21)
    Local $Input4 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Style", ""), 16, 150, 150, 21)
    Local $Input5 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Top", ""), 16, 180, 150, 21)
    Local $Input6 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Abstand", ""), 16, 210, 150, 21)
    Local $Input7 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Farbe", ""), 16, 240, 150, 21)
    Local $Input8 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Button", "Fokusfarbe", ""), 16, 270, 150, 21)
    Local $Label3 = GUICtrlCreateLabel("Left", 186, 60, 25, 40)
    Local $Label4 = GUICtrlCreateLabel("Width", 186, 90, 32, 40)
    Local $Label5 = GUICtrlCreateLabel("Height", 186, 120, 35, 40)
    Local $Label6 = GUICtrlCreateLabel("Style", 186, 150, 27, 40)
    Local $Label7 = GUICtrlCreateLabel("Top", 186, 180, 23, 40)
    Local $Label8 = GUICtrlCreateLabel("Abstand", 186, 210, 31, 40)
    Local $Label8 = GUICtrlCreateLabel("Farbe", 186, 240, 31, 40)
    Local $Label9 = GUICtrlCreateLabel("Fokusfarbe", 186, 270, 72, 40)

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

    Local $Label2 = GUICtrlCreateLabel("Buttonschrift", 360, 20, 105, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Input9 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonschrift", "Größe", ""), 360, 60, 150, 21)
    Local $Input10 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonschrift", "Weight", ""), 360, 90, 150, 21)
    Local $Input11 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonschrift", "Weight2", ""), 360, 120, 150, 21)
    Local $Input12 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonschrift", "Attribute", ""), 360, 150, 150, 21)
    Local $Input13 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonschrift", "Font", ""), 360, 180, 150, 21)

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

    Local $Label3 = GUICtrlCreateLabel("Größe", 530, 60, 42, 20)
    Local $Label10 = GUICtrlCreateLabel("Weight", 530, 90, 46, 20)
    Local $Label11 = GUICtrlCreateLabel("Weight2", 530, 120, 53, 20)
    Local $Label12 = GUICtrlCreateLabel("Attribute", 530, 150, 52, 20)
    Local $Label13 = GUICtrlCreateLabel("Font", 530, 180, 30, 20)

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

    Local $Speichern = GUICtrlCreateButton("Speichern", 16, 350, 150, 50, 0)
    Local $Back = GUICtrlCreateButton("Zurück", 200, 350, 150, 50, 0)

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

    GUISetState(@SW_SHOW)
    while 1

    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exitloop
    case $Speichern

    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Left", GUICtrlRead($Input1))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Width", GUICtrlRead($Input2))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Height", GUICtrlRead($Input3))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Style", GUICtrlRead($Input4))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Top", GUICtrlRead($Input5))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Abstand", GUICtrlRead($Input6))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Farbe", GUICtrlRead($Input7))
    IniWrite(@ScriptDir & "\htpc.ini", "Button", "Fokusfarbe", GUICtrlRead($Input8))

    IniWrite(@ScriptDir & "\htpc.ini", "Buttonschrift", "Größe", GUICtrlRead($Input9))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonschrift", "Weight", GUICtrlRead($Input10))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonschrift", "Weight2", GUICtrlRead($Input11))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonschrift", "Attribute", GUICtrlRead($Input12))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonschrift", "Font", GUICtrlRead($Input13))
    MsgBox(1, "", "Gespeichert")
    case $Back
    GUISetState(@SW_HIDE, $GUI2)
    GUISetState(@SW_SHOW, $GUI)
    ExitLoop
    EndSwitch
    Wend

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

    case $button3
    Opt("GUICoordMode", 1)
    Global $GUI3 = GUICreate("Form3", 737, 400, 193, 91)
    Local $Label1 = GUICtrlCreateLabel("Buttonbeschriftung", 16, 16, 160, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Label2 = GUICtrlCreateLabel("Programme", 300, 16, 103, 28)
    GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
    Local $Input1 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button1", ""), 300, 60, 300, 21)
    Local $Input2 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button2", ""), 300, 90, 300, 21)
    Local $Input3 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button3", ""), 300, 120, 300, 21)
    Local $Input4 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button4", ""), 300, 150, 300, 21)
    Local $Input5 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button5", ""), 300, 180, 300, 21)
    Local $Input6 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Programme", "Button6", ""), 300, 210, 300, 21)
    Local $Input7 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button1", ""), 16, 60, 150, 21)
    Local $Input8 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button2", ""), 16, 90, 150, 21)
    Local $Input9 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button3", ""), 16, 120, 150, 21)
    Local $Input10 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button4", ""), 16, 150, 150, 21)
    Local $Input11 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button5", ""), 16, 180, 150, 21)
    Local $Input12 = GUICtrlCreateInput(IniRead (@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button6", ""), 16, 210, 150, 21)
    Local $Speichern = GUICtrlCreateButton("Speichern", 16, 275, 150, 50, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Back = GUICtrlCreateButton("Zurück", 186, 275, 150, 50, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label3 = GUICtrlCreateLabel("Button1", 186, 60, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label4 = GUICtrlCreateLabel("Button2", 186, 90, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label5 = GUICtrlCreateLabel("Button3", 186, 120, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label6 = GUICtrlCreateLabel("Button4", 186, 150, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label7 = GUICtrlCreateLabel("Button5", 186, 180, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label8 = GUICtrlCreateLabel("Button6", 186, 210, 48, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label9 = GUICtrlCreateLabel("Programm1", 620, 60, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label10 = GUICtrlCreateLabel("Programm2", 620, 90, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label11 = GUICtrlCreateLabel("Programm3", 620, 120, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label12 = GUICtrlCreateLabel("Programm4", 620, 150, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label13 = GUICtrlCreateLabel("Programm5", 620, 180, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Local $Label14 = GUICtrlCreateLabel("Programm6", 620, 210, 74, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

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

    GUISetState(@SW_SHOW)
    while 1

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

    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exit
    case $Speichern

    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button1", GUICtrlRead($Input1))
    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button2", GUICtrlRead($Input2))
    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button3", GUICtrlRead($Input3))
    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button4", GUICtrlRead($Input4))
    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button5", GUICtrlRead($Input5))
    IniWrite(@ScriptDir & "\htpc.ini", "Programme", "Button6", GUICtrlRead($Input6))

    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button1", GUICtrlRead($Input7))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button2", GUICtrlRead($Input8))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button3", GUICtrlRead($Input9))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button4", GUICtrlRead($Input10))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button5", GUICtrlRead($Input11))
    IniWrite(@ScriptDir & "\htpc.ini", "Buttonbeschriftung", "Button6", GUICtrlRead($Input12))
    MsgBox(1, "", "Gespeichert")
    case $Back
    GUISetState(@SW_HIDE, $GUI3)
    GUISetState(@SW_SHOW, $GUI)
    ExitLoop
    EndSwitch
    Wend
    case $button4
    EndSwitch
    Wend

    [/autoit]

    Der 4 Punkt (Button) bereitet mir aber etwas Kopfzerbrechen.
    Ich möchte damit verschiedene Änderungen in der Registrierung automatisch vornehmen. Wie das funktioniert weiss ich schon (Regread, Redwrite usw.), allerdings hat meine bisherige Liste keinen Anspruch auf Vollständigkeit und unterscheidet sich auch von Betriebssystem zu Betriebssystem. Also würde ich das gerne Auslagern, auch um Einträge nachträglich ohne neu zu compilieren hinzufügen zu können.
    Bei einer Auslagerung auf eine .ini müsste ich aber ja für jeden Reg-tweak schonmal einen "Key" anlegen, ich kenne aber die genaue Anzahl der Reg-tweaks nicht und die Liste wird sich im Laufe der Zeit vermutlich auch erweitern.
    Soweit ich es verstanden habe, ist es auch nicht möglich eine fertige .exe zu verändern, d.h. ich kann dem Setup-Programm nachträgliche Einträge in der .ini nichtmehr mitteilen.

    So, ich hoffe von euch kennt jemand eine Lösung.

    Gruß nuts

  • Hintergrundbild bei GUI

    • nuts
    • 20. Oktober 2008 um 17:29

    ich verwende diese Funktion: GUICtrlCreatePic

  • Fragen zu Iniread (Defaultkey):

    • nuts
    • 18. Oktober 2008 um 18:52
    Zitat von Raupi

    Ich denke mal du willst bei der Ini das Hintergrundbild mit samt dem Pfad eintragen. Warum schreibst du dein defautbild also nicht gleich in die HTPC.INI?

    war auch mein erster gedanke - leider erscheint dann auch kein hintergrundbild.

    Code
    [Hintergrundbilder]
    HauptGUI = "@ScriptDir & "\htpc2.bmp""

    so müsste doch die setup.ini aussehen oder?

  • Fragen zu Iniread (Defaultkey):

    • nuts
    • 18. Oktober 2008 um 04:53

    Hm weiss noch nicht. Eigentlich wärs schön wenn man die setup.ini im netzwerk ablegen könnte (bzw. an einem frei verfügbaren pfad).
    Soweit bin ich aber noch lange nicht :D immerhin muss ich dann ja der compilierten exe irgendwie mitteilen wo sich die setup.ini befindet!

    Derzeit teste ich noch und hab die ini halt in den Skriptordner geworfen.

    Wenn ich im Beispiel die Funktion weglasse wird ist mein Defaultbild ähm eben kein Bild.
    edit \ weil der Key ja in der setup.ini vorhanden ist - allerdings ohne Wert!

    Nochmal zum Verständnis meine setup.ini

    Code
    [Hintergrundbilder]
    HauptGUI = ""

    Und dann soll nicht gar kein Bild sondern das Defaultbild im Ordner des Skriptes angezeigt werden.

  • Fragen zu Iniread (Defaultkey):

    • nuts
    • 18. Oktober 2008 um 04:22

    Hey,

    hab mal wieder eine kleine Frage:

    Ich möchte verschiedene Informationen in eine Setup.ini auslagern.

    Dabei sollen aber alle Sektions und Keys schon angelegt sein. Ich finde das so einfacher zum editieren, gerade auch für Anfänger.

    Beim Auslagern des Hintergrundbilds hätte ich gern ein Defaultbild, dass im Skriptordner liegt.
    Allerdings wird das Defaultbild nicht verwendet, da der jeweilige Key ja in der .ini angelgt ist!

    Hab jetzt etwas drum rumprogrammiert:

    [autoit]


    Global $VA = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Auflösung", "Vertikal", "720")
    Global $HA = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Auflösung", "Horizontal", "1280")
    Dim $DefaultBild = @ScriptDir & "\htpc2.bmp"
    Dim $Bild = IniRead('C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\HTPC\HTPC.ini', "Hintergrundbilder", "HauptGUI", "")
    _Iniread($Bild, $defaultbild)
    Global $HauptGUI = GUICreate("HTPC", $HA, $VA, -1, -1, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUICtrlCreatePic ($Bild,0 ,0, $HA, $VA)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    Func _Iniread($key, $default)
    IF $key = "" then
    $bild = $default
    Endif
    Endfunc

    [/autoit]

    Somit wird das hinterlegte Defaultbild angezeigt, wenn als Wert bei HauptGUI nichts eingegeben wird.
    Funktioniert im Prinzip - wollte mich trotzdem mal vergewissern wie ihr sowas löst, wahrscheinlich hab ich die einfachste Lösung nämlich wieder übersehen 8|

    Gruß nuts

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 15. Oktober 2008 um 17:31

    okay, großes Lob an Oscar.

    Ich denke mit der letzten Version kann ich leben.

    Wenn noch jemand was schlaues einfällt woher das Flackern kommen könnte: bitte melden!

    Ansonsten: [Gelöst}

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 14. Oktober 2008 um 19:54

    Hm jap - fast kein flackern mehr zu sehen.

    Leider kann ich der letzten nichtmehr folgen ;(
    Dabei wird der Button schon am anfang eingefärbt und die Funktion ändert den Button im Fokus und setzt den zuletzt im Fokus gewesenen Button zurück auf die Defaultfarbe?
    Darum flackerts höchstens ab und zu noch am "last_fokus" oder am "fokus" Button?

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 14. Oktober 2008 um 18:01

    stimmt! so ists schon besser.

    Hat jemand ne Idee woher das kommt?

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 14. Oktober 2008 um 17:41

    Hm wenn sich das bestättigt muss ich mir wohl was neues ausdenken.
    Jemand ne ahnung woran das liegen könnte? Möglicherweise eine Laufzeitsgrenze von autoit?

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 14. Oktober 2008 um 17:02

    Hm ich hab jetzt die Funktion mal so angepasst wie ich es haben wollte:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ;;;;;;;;;;;;;;;;;;;; Haupt-Menü Variablen
    Opt("GUICoordMode", 1)
    Global $last_focus = -1
    Global $Farbe = 0x00BFFF
    Global $HauptGUI = GUICreate("HTPC", 400, 800, -1, -1, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUISetBkColor(000000)

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

    ;;;;;;;;;;;;;;;;;;;;;;Buttons;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Dim $L = 100 ; Buttonleft
    Dim $W = 200 ; Buttonwidth
    Dim $H = 60; Buttonheight
    Dim $C = 4169E1 ;Hintergrundfarbe Button
    Dim $F = GUISetFont( 18, 800, 0, "MS Sans Serif") ;Schrift der Buttons

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

    Global $TV = GUICtrlCreateButton("TV", $L, 8, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $DVD = GUICtrlCreateButton("DVD", $L, 88, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Aufnahmen = GUICtrlCreateButton("Aufnahmen", $L, 168, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Internet = GUICtrlCreateButton("Internet", $L, 248, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Musik = GUICtrlCreateButton("Musik/Bilder", $L, 328, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Bluray = GUICtrlCreateButton("Bluray", $L, 408, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Einstellungen = GUICtrlCreateButton("Einstellungen", $L, 488, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Beenden = GUICtrlCreateButton("Beenden", $L, 568, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Exit = GUICtrlCreateButton("exit", $L, 648, $W, $H, -1, $WS_EX_STATICEDGE)

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

    GUISetState(@SW_SHOW, $HauptGUI)
    GUISetState(@SW_MAXIMIZE, $HauptGUI)
    While 1
    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exit
    Case $TV
    Case $DVD
    Case $Aufnahmen
    Case $Musik
    Case $Bluray
    Case $Einstellungen ;Aufruf Einstellungen
    Case $Beenden ;Aufruf Beenden
    Case $Exit
    exit
    EndSwitch

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

    _HauptReset(ControlGetFocus('',''))
    WEnd

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

    Func _HauptReset($Button) ;Grundfunktion von Oscar http://www.autoit.de
    If $Button <> $last_focus Then
    $last_focus = $Button
    Local $Farbe = 0x1E90FF, $Fokusfarbe = 0x00BFFF
    Local $aID = StringSplit('tv,dvd,aufnahmen,internet,musik,bluray,einstellungen,beenden,exit', ',')
    Local $aButton = StringSplit('button1,button2,button3,button4,button5,button6,button7,button8,button9', ',')
    For $i = 1 To $aID[0]
    GUICtrlSetBkColor(Eval($aID[$i]), $Farbe)
    Next
    For $i = 1 To $aID[0]
    If $aButton[$i] = $Button Then
    GUICtrlSetBkColor(Eval($aID[$i]), $Fokusfarbe)
    EndIf
    Next
    EndIf
    EndFunc

    [/autoit]

    Das Problem mit den flackernden Buttons bleibt aber leider :( (mit scharzen Hintergrund wie im Beispiel sieht mans ganz gut)
    Nach meinen Tests liegt das an der Resetfunktion. Ist wohl zu aufwendig alle Buttons gleichzeitig zurückzusetzen?
    Bin mir aber auch nicht sicher, ob es mit dem jeweiligen System und den Komponenten bzw. den Treibern zusammenhängt. Daher würde ich mich über ein paar Tester freuen.

    Ich verwende:
    amd x2 3800 ee
    onboard graka auf 690G basis
    WinXp inkl. sp2

    edit\ um das Flackern noch etwas zu beschreiben:
    Beim Bewegen der Markierung zeigt sich z.b. ein Strich in der Hintergrundfarbe bei den nicht aktiven Buttons.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 22:44

    Alles klar.

    Die Funktion ersetzt in meinem Skript ca. 300 Zeilen :D

    Nochmals vielen dank! :thumbup:

    edit \ hm mir fällt da was auf:
    Manchmal flackern die buttons wenn ich den Fokus über die Cursortasten ändere. Kann aber leider keine Regelmäßigkeit feststellen ?(
    Muss ich jetzt nochmal mit meiner Version gegenchecken.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 22:04
    Zitat von anno2008

    Ich glaube er will mit den Cursortasten seine Markierung bewegen können. Außerdem soll glaub ich immer der Button oben drüber und untendrunter eine andere Farbe habe, aber weis nicht ob ich dass 100% genau verstanden hab

    genau.
    Der Button drüber und drunter soll einfach nur die Ursprungsfarbe wiederbekommen (was dann zur folge hat das nur der im Fokus anders gefärbt ist).

    das skript von oscar funktioniert auch bzw. ändert noch die umliegenden Buttons wie von anno2008 angesprochen.
    und ändert sogar noch die button farbe onklick?
    Ist auf jeden Fall eine schönere Lösung als meine :thumbup:
    Was dagegen wenn ich die Funktionen so einfach abschreibe und anpasse?

    Den Hovereffekt kenn ich schon. Hier im Forum hat mal jemand eine vergleichbare und einfachere Lösung gepostet (Beispiel mit 2 buttons):

    Spoiler anzeigen
    [autoit]


    include <GUIConstants.au3>

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

    Opt("GUICoordMode", 1)
    $HauptGUI = GUICreate("HTPC", 400, 600, 1000, 0)
    GUISetBkColor(0x000000)
    $Button1 = GUICtrlCreateButton("TV", 100, 8, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button2 = GUICtrlCreateButton("DVD", 100, 88, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)

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

    GUISetState(@SW_SHOW)
    $Hover_Old = ""

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

    While 1
    $Cursor = GUIGetCursorInfo($HauptGUI)
    If $Cursor[4] <> $Hover_Old Then
    Normal($Hover_Old) ; reset the previous control
    Hover($Cursor[4]) ; set the new control hovered
    $Hover_Old = $Cursor[4]
    EndIf
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Endselect
    Wend

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

    Func Hover($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button2
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Endswitch
    Endfunc

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

    Func Normal($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button2
    GUICtrlSetBkColor($ID, 0x008080)
    Endswitch
    Endfunc

    [/autoit]

    Daran angelehnt war auch mein Ansatz. Hab aber auf den Fokus reagiert und nicht auf den Mauszeiger.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™