Big Problem ...

  • Big Problem ...

    Hi
    Ich habe folgendes Problem ich möchte ein "Tool" machen , wo man eine Auswahl am anfang hat z.B "firefox öffnen" und wenn man dadrauf klickt sich eine neue form öffnet ...
    nur wie mache ich das ?? ich möchte es ca mit 5-10 Buttons nachermachen , der code von den Functionen bzw GUI ist atm über 2000 Zeilen lang - deswegen poste ich nicht ^^
    Ich habe es nur hinbekommen das wenn ich auf Button1 drücke er , eine sache öfffnet , mache ich es aber so wie bei button 1 , bei button 2 kommt nix

    Bin im netz auf etwas gestoßen hab es geändert könnte mir jemand erklären wie ich diesen Code

    C-Quellcode

    1. #include <ButtonConstants.au3>
    2. #include <GUIConstantsEx.au3>
    3. #include <WindowsConstants.au3>
    4. $Form1 = GUICreate("Form1", 351, 187, 194, 125)
    5. $Form2 = GUICreate("Form2", 351, 187, 194, 125)
    6. $Button1 = GUICtrlCreateButton("Open Form 2", 48, 32, 75, 25, 0)
    7. GUISetState(@SW_SHOW)
    8. While 1
    9. $nMsg = GUIGetMsg()
    10. Switch $nMsg
    11. Case $GUI_EVENT_CLOSE
    12. Exit
    13. Case $Button1
    14. $Form2 = GUICreate("Form2", 275, 213, 263, 266)
    15. $Label1 = GUICtrlCreateLabel("Fenster 2", 56, 64, 169, 52)
    16. GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    17. GUISetState(@SW_SHOW)
    18. EndSwitch
    19. WEnd
    Alles anzeigen


    Für meine 5-10 Forms anpasse ?

    lg Fuyo hoffe könnt mir helfen
  • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

  • Das hab ich ja getan blos , wenn ich
    Case $Button2 z.B mache und dann nacherdrauf klicke , dann passiert nichts ...
    ich könnte dir den code per icq schickn oder posten ,
    ist nur ein bisschen lang , das GM TOOL ^^ das eingebaut werden soll halt aber sonst ...
    würd ich das rauslassen komm ich auf 500 pls schnell antworten

    lg Fuyo
  • [FONT="Century Gothic"][COLOR="White"]also mit

    Quellcode

    1. GuiSetState()

    kann man guis darstellen, und wenn du es nicht direkt machst dann wird das gui nicht angezeigt =)

    hier ein sample damit du weißt wie ich es meine :

    Quellcode

    1. ;; ein paar variablen
    2. $GUI2_state = false
    3. $GUI3_state = false
    4. ; erst einmal das Main GUI, dass dann auch angezeigt wird
    5. $hGui_1 = GuiCreate("GUI 1 ( MAIN GUI )",200,200,0,0)
    6. $Action_GUI2 = GuiCtrlCreateButton("Öffne GUI 2",50,50)
    7. $Exit = GuiCtrlCreateButton("Beenden",100,100)
    8. GuiSetState()
    9. ; dann das 2te GUI, dass durch den Button angezeigt wird
    10. $hGUI_2 = GuiCreate("GUI 2 ( SECOND GUI )",200,200,210,210)
    11. $Action_GUI3 = GuiCtrlCreateButton("Öffne GUI 3",50,50)
    12. ;jetzt kein "GuiSetState()"
    13. ;und das dritte Gui
    14. $hGUI_3 = GuiCreate("GUI 3 ( LAST GUI )",200,200,410,410)
    15. $info_box = GuiCtrlCreateButton("Öffne Msgbox",50,50)
    16. ;und jetzt auch kein "GuiSetState()"
    17. ; dann die normale schleife
    18. while 1
    19. $msg = GuiGetMsg()
    20. switch $msg
    21. case $Action_GUI2
    22. if $GUI2_state = false then
    23. GuiSetState(@SW_SHOW,$hGUI_2) ; hier wird es angezeigt
    24. GuiCtrlSetData($Action_GUI2,"Schließe GUI 2")
    25. $GUI2_state = true
    26. else
    27. GuiSetState(@SW_HIDE,$hGUI_2) ; hier wird es wieder weggeblendet
    28. GuiCtrlSetData($Action_GUI2,"Öffne GUI 2")
    29. endif
    30. case $Action_GUI3
    31. if $GUI3_state = false then
    32. GuiSetState(@SW_SHOW,$hGUI_3) ; hier wird es angezeigt
    33. GuiCtrlSetData($Action_GUI3,"Schließe GUI 3")
    34. $GUI3_state = true
    35. else
    36. GuiSetState(@SW_HIDE,$hGUI_3) ; hier wird es wieder weggeblendet
    37. GuiCtrlSetData($Action_GUI3,"Öffne GUI 3")
    38. endif
    39. case $info_box
    40. msgbox(0x40,"[INFO]","so gehts x)"&@CR&@CR&"gez :: *electriZer*",20)
    41. endswitch
    42. wend
    Alles anzeigen


    probiers erstmal, ob es das ist was du suchst und dann ließ dir gründlich die source durch, denn ohne es zu testen, weißt du nicht was da abläuft, dann könnte dich das ein wenig verwirren ^^

    gez :: *electriZer*[/COLOR][/FONT]

    EDIT : hab den spoiler entfernt ^^
  • Ich verstehe die Source nicht ganz ...
    Wäre es nicht mölglich z.B

    Quellcode

    1. ; Main GUI
    2. ; irgendeine GUI
    3. ; Wile 1
    4. While 1
    5. $nMsg = GUIGetMsg()
    6. Switch $nMsg
    7. Case $GUI_EVENT_CLOSE
    8. Exit
    9. Case $Button1
    10. ; und hier den GUI von der Form einbaut (hab ich so gemacht, klappt super bei 1 Form^^ )
    11. ; wenn ich aber Case $Button2
    12. ;dann die Form und die Funcs etc einbaue passiert nix
    13. EndSwitch
    14. WEnd
    Alles anzeigen


    Also ich hoffe ihr habt mein problem jetzt genau verstanden^^
  • [COLOR="White"]also ^^
    das was ich gemacht hab is eigentlich dass was du brauchst =)
    bei autoit läuft das so ab :

    GuiCreate() ; das gui wird nicht angezeigt, der compiler erzeugt dann einfach zB. ein neues array oder einen neuen eintrag in einem speziellen 2D/3D array, dort werden dann alle eigenschaften des guis eingetragen.

    dann kann man ja noch controls erstellen/ zuweisen
    zB.
    GUICtrlCreateButton() ; dann wird in das als letztes erzeugtem array eintrag in der 2ten dimension ein neuer eintrag erstellt und dort wird dann eingetargen was für ein control es ist und die ganzen eigenschaften des controls =)

    erst mit
    GUISetState()
    wird entweder das als letztes eingetragene GUI angezeigt oder wie in meinem beispiel, ein angegbenes gui, angezeigt oder was man auch immer angibt^^

    [aber es könnte auch sien dass es nicht in einem array sondern in Structs gespeichert wird (Also die informationen über das gui), weswegen auch ein pointer von den GUI's zurückgegeben wird ]

    um es in au3 da zu stellen :

    Quellcode

    1. Dim $GUI_ARR[100][6000][20]
    2. ;1ste dimensoin für alle GUI's
    3. ;2te Dimension für alle Controls je GUI
    4. ;3te Dimension für eigenschaften
    5. $GUI_ARR[0][0] = 0
    6. ; bei $GUI_ARR[0][0] werden die anzahl der guis registriert =)
    7. func _GUI_Create($sTitle, $iWidth, $iHeight, $iPosX, $iPosY, $iStyle, $iStyle_EX)
    8. $GUI_ARR[0][0][0] = $GUI_ARR[0][0][0] + 1
    9. ; ein neues GUI registrieren
    10. $i = $GUI_ARR[0][0][0]
    11. ;nummer des neuen GUI's
    12. $GUI_ARR[$i][0][0] = 0
    13. ;anzahl aller controls, hier werden sie auch registriert
    14. $GUI_ARR[$i][0][1] = $sTitle
    15. $GUI_ARR[$i][0][2] = $iWidth
    16. $GUI_ARR[$i][0][3] = $iHeight
    17. $GUI_ARR[$i][0][4] = $iPosX
    18. $GUI_ARR[$i][0][5] = $iPosY
    19. $GUI_ARR[$i][0][6] = $iStyle
    20. $GUI_ARR[$i][0][7] = $iStyle_EX
    21. ;dann werden alle eigenschaften des GUI'S eingetragen
    22. endfunc
    Alles anzeigen


    so, dass war jetzt ma da um zu veranschaulichen was da so abläuft, mit dem wissen kann man dann halt viel besser mit au3 umgehen =)

    also insegsamt :

    erst alle deine guis machen und dann nur dein main gui anzeigen lassen,
    die anderren GUI's kannst du dann einfach mit @SW_SHOW anzeigen und mit @SW_HIDE wieder wegblenden wo aber alle getroffenen einstellungen erhalten bleiben =)

    hoffe du hast es verstanden und alle anderen auch ^^

    gez :: *electriZer*[/COLOR]
  • Ok , das verstehe ich shcon mehr hab aber immer noch ein paar fragen^^ und zwar
    Dim $GUI_ARR[[COLOR="Red"]100[/COLOR]][[COLOR="Yellow"]6000[/COLOR]][[COLOR="Cyan"]20[/COLOR]]
    Wofür stehen die Zahlen ... für
    ;1ste dimensoin für alle GUI's
    ;2te Dimension für alle Controls je GUI
    ;3te Dimension für eigenschaften

    oder was , was meinste damt ?? (sry bin noch nit lange in autoit aktiv?)
    oder was meinst du mit ?

    $GUI_ARR[$i][0][0] = 0
    ;anzahl aller controls, hier werden sie auch registriert
    $GUI_ARR[$i][0][1] = $sTitle
    $GUI_ARR[$i][0][2] = $iWidth
    $GUI_ARR[$i][0][3] = $iHeight
    $GUI_ARR[$i][0][4] = $iPosX
    $GUI_ARR[$i][0][5] = $iPosY
    $GUI_ARR[$i][0][6] = $iStyle
    $GUI_ARR[$i][0][7] = $iStyle_EX

    z.B $iSTyle ist doch nur eine Varibale oder ?? oder ist eine Funcitons oder was ...

    $i = $GUI_ARR[0][0][0]
    ;nummer des neuen GUI's

    Was muss in die klammern ?

    Thx haste , da ich ein totaler autoit noob bin^^ , hoffe du hilfst den kleinem noob^^

    lg FUyo

    /Edit:
    Geht das vllt nicht ein bisschen einfacher ???
  • [FONT="Century Gothic"][COLOR="White"]^^
    also
    x)
    ich glaube ich sollte dazu ein guide schreiben xD
    ich dachte du kennst dich damit schon ein wenig mehr aus ^^

    ich versuche es mal knapp zu fassen

    also

    $Variable = "inhalt"


    das ist eine normale variable mit einem normalen inhalt
    aber ein array ist wie eine Daten Bank

    Dim $Array[100]
    dann gibt es

    $Array[0]
    $Array[1]
    ..

    und denen können ganz unterschiedliche inhalte zugeordnet werden

    das wäre dann wie
    $Array_1
    $Array_2

    nur das es in einer Variable zusammengefasst und unterteilt ist =)

    um das mal etwas mehr zu veranschaulichen :

    eine normale Variable mit inhalt ist wie ein 1 Familiean Haus und der inhalt is halt die Familie und deren kram ^^

    und ein Array is dazu im gegensatz zB. ein Hochaus oder ein Mehrfamilien Haus

    $Array[100] is dann ein Hochaus mit 100 Wohnungen mit jeweils für jede wohnung eine familie ^^

    und
    $Array[100][3] wäre dann zB. ein Hochaus mit 100 Stockwärken und jeweil 3 wohnungen pro Stockwerk, deren Inhalt dann eine Familie is odr sonst was ^^

    Eine Dimension ist halt ein so ne "[x]"
    ^^
    $Array[100]
    ha tnur eine Dimension
    $Array2[100][3]
    hat 2 Dimensionen =)
    man kann aber nie so was machen :

    Quellcode

    1. $2D_Arr[100][3]
    2. $2D_Arr[1] = "Familie Maier"

    das geht nicht, man muss immer den vollen Dimenisonswert angeben
    also

    Quellcode

    1. $2D_Arr[100][3]
    2. $2D_Arr[1][1] = "Familie Maier"


    gez :: *electriZer*.[/COLOR][/FONT]
  • Ok ich werde jetzt versuchen mein Tool fertigzustellen ^^
    Ich habe es jetzt nach einem anderen Prinzip gemacht undzwar sieht mein Code so aus :

    C-Quellcode

    1. #include <ButtonConstants.au3>
    2. #include <GUIConstantsEx.au3>
    3. #include <StaticConstants.au3>
    4. #include <WindowsConstants.au3>
    5. ;Main Form - übersicht
    6. #Region ### START Koda GUI section ### Form=
    7. $Form1 = GUICreate("Tools by Fuyo - www.godlikerz.de", 339, 334, 819, 188)
    8. $Group1 = GUICtrlCreateGroup("Flyybot", 16, 8, 137, 81)
    9. $Button1 = GUICtrlCreateButton("Flyff Pickup Bot", 32, 32, 91, 41, 0)
    10. GUICtrlCreateGroup("", -99, -99, 1, 1)
    11. $Group2 = GUICtrlCreateGroup("Tools ", 16, 112, 161, 217)
    12. $Button2 = GUICtrlCreateButton("Afk Upgrader", 48, 136, 99, 33, 0)
    13. $Button3 = GUICtrlCreateButton("GM Tool", 48, 176, 99, 33, 0)
    14. $Button4 = GUICtrlCreateButton("Postbox Glitcher", 48, 248, 99, 33, 0)
    15. $Label1 = GUICtrlCreateLabel("by Fuyo (c)", 48, 288, 56, 17)
    16. $Label2 = GUICtrlCreateLabel("Autoit Version:", 48, 224, 72, 17)
    17. GUICtrlCreateGroup("", -99, -99, 1, 1)
    18. $Group3 = GUICtrlCreateGroup("Junk", 192, 16, 129, 169)
    19. $Button5 = GUICtrlCreateButton("Firefox Starter", 208, 40, 83, 25, 0)
    20. $Button6 = GUICtrlCreateButton("Creditz", 208, 72, 83, 25, 0)
    21. $Button7 = GUICtrlCreateButton("Close Me", 208, 120, 83, 25, 0)
    22. GUICtrlCreateGroup("", -99, -99, 1, 1)
    23. $Label3 = GUICtrlCreateLabel("Vorschläge für Tools?", 200, 200, 107, 17)
    24. $Label4 = GUICtrlCreateLabel("PM me pls", 200, 224, 53, 17)
    25. $Label5 = GUICtrlCreateLabel("www.Godlikerz.de", 200, 248, 90, 17)
    26. GUISetState(@SW_SHOW)
    27. #EndRegion ### END Koda GUI section ###
    28. ;Main Form - übersicht Ende
    29. While 1
    30. $nMsg = GUIGetMsg()
    31. Switch $nMsg
    32. Case $GUI_EVENT_CLOSE
    33. Exit
    34. Case $Button1
    35. _Flyffpickupbot ()
    36. _Exit1 ()
    37. _suchen1 ()
    38. EndSwitch
    39. WEnd
    40. While 2
    41. $nMsg = GUIGetMsg()
    42. Switch $nMsg
    43. Case $GUI_EVENT_CLOSE
    44. Exit
    45. Case $Starte
    46. _Exit1 ()
    47. Case $Stoppe
    48. _suchen1 ()
    49. Case $Creditz ()
    50. Msgbox (0, "Creditz!" , "made by Fuyo for Godlikerz - Have Fun - damit alles klappt muss pick up button (aus Flyff) auf F12 liegen " , 0 )
    51. EndSwitch
    52. WEnd
    53. Func _Flyffpickupbot ()
    54. #include <ButtonConstants.au3>
    55. #include <EditConstants.au3>
    56. #include <GUIConstantsEx.au3>
    57. #include <StaticConstants.au3>
    58. #include <WindowsConstants.au3>
    59. #Region ### START Koda GUI section ### Form=
    60. $Form2 = GUICreate("Pickup Bot Flyff", 318, 229, 354, 167)
    61. $Starte = GUICtrlCreateButton("Starten", 24, 72, 97, 41, 0)
    62. $Stoppe= GUICtrlCreateButton("Stoppn", 152, 72, 99, 41, 0)
    63. $Creditz = GUICtrlCreateButton("Creditz", 64, 120, 155, 33, 0)
    64. $Label1 = GUICtrlCreateLabel("(c) Fuyo - Godlikerz", 96, 160, 95, 17)
    65. $Label2 = GUICtrlCreateLabel("Auflösung :", 24, 8, 57, 17)
    66. $Input1 = GUICtrlCreateInput("x", 24, 32, 105, 21)
    67. $Input2 = GUICtrlCreateInput("y", 152, 32, 105, 21)
    68. $Label3 = GUICtrlCreateLabel("erst unter o im Flyff aufheben oder so auf F9 legen", 16, 184, 256, 17)
    69. $Label4 = GUICtrlCreateLabel("Zum starten einfg und beenden Esc ! ", 16, 208, 192, 17)
    70. GUISetState(@SW_SHOW)
    71. #EndRegion ### END Koda GUI section ###
    72. Endfunc
    73. HotKeySet("{insert}", "_suchen")
    74. HotKeySet("{ESC}", "_Exit")
    75. Func _suchen1 ()
    76. WinWaitActive ( "FLYFF" )
    77. $pos = Pixelsearch ( 0, 0, GUICtrlRead($input1) ,GUICtrlRead($input2), 0xFFF2FF, 120 )
    78. If IsArray ( $pos ) Then
    79. Send ("{F9}")
    80. Send ("{F9}")
    81. Send ("{F9}")
    82. Send ("{F9}")
    83. Send ("{F9}")
    84. ElseIf
    85. Sleep ( 2000 )
    86. EndIf
    87. Endfunc
    88. Func _Exit1 ()
    89. Exit
    90. EndFunc
    Alles anzeigen


    Klicke ich nun auf den ersten Button dann beendet sich einfach alles , lasse ich aber die functionen von dem neuen GUI weg dann öffnet er sich ohne probleme aber ich kann nix machen