Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 6.10 KB | None | 0 0
  1. #include <assembleit.au3>
  2.  
  3. ;~ #include <ButtonConstants.au3>
  4. ;~ #include <EditConstants.au3>
  5. ;~ #include <GUIConstantsEx.au3>
  6. ;~ #include <StaticConstants.au3>
  7. ;~ #include <WindowsConstants.au3>
  8.  
  9. ;~ #include <winapi.au3>
  10. ;~ ;#include <Winapi_ex.au3>
  11.  
  12. ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  13. ;    _WinAPI_CreateWindowEx.au3
  14. ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  15. #include <WindowsConstants.au3>
  16. #include <GuiConstantsEx.au3>
  17. #include <ButtonConstants.au3>
  18. #include <EditConstants.au3>
  19. #include <StaticConstants.au3>
  20. #include <Constants.au3>
  21.  
  22. #include <Winapiex.au3>
  23. #include <WinAPI.au3>
  24.  
  25.  
  26.  
  27. Global Const $IDC_STATIC = -1
  28. Global Const $IDC_EDIT = 101
  29.  
  30. global $z=0
  31. ;Global $hInstance = _WinAPI_GetModuleHandle(0)
  32. Global $hwndMain = GUICreate( _
  33.         "- Demo", _               ; Titel des Fensters
  34.         400, 300, -1, -1, _             ; Grösse und Position des Fensters
  35.         BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPCHILDREN), _    ; Fensterstile
  36.         $WS_EX_WINDOWEDGE, _        ; Erweiterte Fensterstile
  37.         0 _                         ; Handle des Parent-Fensters
  38.         )
  39.  
  40. ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hwndMain = ' & $hwndMain & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
  41.  
  42. ; Eine einfache Schaltfläche erzeugen
  43. $hwndButton = GUICtrlCreateButton("Drücken für weiter!", 50, 50, 140, 40)
  44.  
  45. ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hwndButton = ' & $hwndButton & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
  46.  
  47.  
  48. GUISetState()
  49.  
  50.  
  51. While 1
  52.     $msg = GUIGetMsg()
  53.     Select
  54.         Case $msg = -3
  55.             Exit
  56.         Case $hwndButton
  57.             ExitLoop              ;$hwndButton then ExitLoop
  58.     EndSelect
  59. WEnd
  60.  
  61.  
  62. MsgBox(0, "weiter", "weiter gehts ins asm-prog")
  63.  
  64.  
  65. Func MyWM_COMMAND($hwnd, $message, $wParam, $lParam)
  66.     ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $wParam = ' & $wParam & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
  67.  
  68.     Local $sMessage
  69.     ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sMessage = ' & $sMessage & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
  70.  
  71.  
  72.     Switch (_WinAPI_LoWord($lParam))
  73.         Case $IDC_EDIT
  74.             ; Nachrichten des Eingabefeldes
  75.             Switch (_WinAPI_LoWord($wParam))
  76.  
  77.                 Case $EN_UPDATE
  78.                     ContinueCase
  79.                 Case $EN_CHANGE
  80.                     ConsoleWrite(_WinAPI_GetWindowText($lParam) & @CRLF)
  81.             EndSwitch
  82.  
  83.         Case $hwndButton
  84.             $sMessage = StringFormat("Die Schaltfläche mit der ID %d wurde gedrückt.", $hwndButton)
  85.             _WinAPI_MsgBox( _
  86.                     BitOR($MB_OK, $MB_ICONASTERISK), _
  87.                     "MyWM_COMMAND", _
  88.                     $sMessage _
  89.                     )
  90.     EndSwitch
  91.  
  92.     Return $GUI_RUNDEFMSG
  93.  
  94. EndFunc                           ;==>MyWM_COMMAND
  95.  
  96.  
  97. Global $DEBUGMODE = 0
  98. Enum $NODEBUG, $MANUALDEBUG, $STEPBYSTEP
  99.  
  100. ;Global $_DBG_Form1,$_DBG_Edit1,$_DBG_Edit2,$_DBG_Edit3,$_DBG_Button1,$_DBG_Label1,$_DBG_Label2,$_DBG_Label3
  101. Global $_DBG_CBREG[2]
  102. $_DBG_CBREG[0] = DllCallbackRegister("_DBG_REGS_AI", "dword", "");dword;dword;dword;dword;dword;dword;dword;dword")
  103. OnAutoItExitRegister("_dbg_exit")
  104.  
  105.  
  106.  
  107. $DEBUGMODE = $MANUALDEBUG         ;1
  108. ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $MANUALDEBUG = ' & $MANUALDEBUG & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
  109.  
  110. $return = _assembleit("ptr", "F2", "int", 100, "int", 200, "ptr", 0xFF00FF00)
  111. ;   DllCall($user32, "none", "CallWindowProcW", "ptr", DllStructGetPtr($__structformuster), "int", $w, "int", $h, "ptr", $ptr, "ptr", DllCallbackGetPtr($cb))
  112.  
  113. While (True)
  114.  
  115.     Switch (GUIGetMsg())
  116.         Case $GUI_EVENT_CLOSE
  117.             ExitLoop
  118.     EndSwitch
  119. WEnd
  120.  
  121. Func F2()
  122.     _("use32")
  123.     _("org " & FasmGetBasePtr($Fasm))
  124.     ;
  125.     _("mov eax,[esp+4]")          ;
  126.     _("mov [w],eax")              ;w
  127.     _("mov eax,[esp+8]")          ;
  128.     _("mov [h],eax")              ;h
  129.  
  130.     ;startadresse in ebx, dann muss ebx immer nur um 4 erhöht werden, um das nächste pixel zu schreiben
  131.     _("mov ebx,[esp+12]")         ;scan0
  132.     _("mov eax,[funcp]")
  133.     _ShowRegister()
  134.     _("mov eax,0xDEADBEEF")
  135.     _ShowRegister()
  136.  
  137.  
  138.     _("ret")                      ;Ende
  139.  
  140.     _("funcp dd 1.25")            ;Variable auf Funktionspointer
  141.     _("w dd 0")                   ;Speicher für Parameter reservieren
  142.     _("h dd 0")                   ;
  143. EndFunc                           ;==>F2
  144.  
  145. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  146. ;;;;;;ab hier kommt alles in die _assembleit.au3;;;;;;;;;;;;;;;;;;;;;;;;;;;
  147. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  148.  
  149. Func _DBG_REGS_AI()               ;$eax, $ebx, $ecx, $edx, $esi, $edi, $ebp, $esp)
  150.     ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $eax = ' & $eax & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  151.     ; If $DEBUGMODE=$NODEBUG Then Return 0
  152.     $z+=1
  153.     $a = GUICtrlSetData($hwndButton, "im Callback!  Z="&$z)
  154.   msgbox(0,"im callback","weiter...")
  155.    ; _WinAPI_RedrawWindow($hwndMain)
  156.  
  157.     ;    GUIDelete($_DBG_Form1)
  158.  
  159.     Return 0
  160. EndFunc                           ;==>_DBG_REGS_AI
  161.  
  162. Func _ShowRegister()
  163. ;~     _("pushad")
  164. ;~     _("push esp")
  165. ;~     _("push ebp")
  166. ;~     _("push edi")
  167. ;~     _("push esi")
  168. ;~     _("push edx")
  169. ;~     _("push ecx")
  170. ;~     _("push ebx")
  171. ;~     _("push eax")
  172.  
  173.     ;   _("add esp,32")
  174.     _("call " & DllCallbackGetPtr($_DBG_CBREG[0]))
  175.     ;   _("sub esp,32")
  176. ;~     _("popad")
  177. EndFunc                           ;==>_ShowRegister
  178.  
  179.  
  180.  
  181. Func _dbg_exit()
  182.     DllCallbackFree($_DBG_CBREG[0])
  183. ;~     DllCallbackFree($_DBG_CBREG[1])
  184.     ;   GUIDelete($_DBG_Form1)
  185. EndFunc                           ;==>_dbg_exit
  186.  
  187.  
  188. Func _DBG_GUI($title = "Debug", $button = "OK")
  189.  
  190. EndFunc                           ;==>_DBG_GUI
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement