
rliiack
Active Members-
Posts
70 -
Joined
-
Last visited
Profile Information
-
Location
United States
-
Interests
Writing Programs
rliiack's Achievements

Wayfarer (2/7)
0
Reputation
-
ERROR: $WM_MOUSEMOVE previously declared as a 'Const' ERROR: $WM_LBUTTONUP previously declared as a 'Const' in the following code: #include <WindowsConstants.au3> #Include <GUIConstantsEx.au3> #include <ScreenCapture.au3> #include <GDIPlus.au3> If Not IsDeclared("WM_MOUSEMOVE") Then Global $WM_MOUSEMOVE = 0x0200 If Not IsDeclared("WM_LBUTTONDOWN") Then Global $WM_LBUTTONDOWN = 0x0201 If Not IsDeclared("WM_LBUTTONUP") Then Global Const $WM_LBUTTONUP = 0x0202 $picHolder = GUICreate("picHolder",100,100,-1,-1,$WS_POPUP,$WS_EX_TOPMOST) GUIRegisterMsg($WM_MOUSEMOVE, "WM_MOUSEMOVE") GUIRegisterMsg($WM_LBUTTONDOWN,"WM_LBUTTONDOWN") GUIRegisterMsg($WM_LBUTTONUP,"WM_LBUTTONUP") GUISetState(@SW_SHOW,$picHolder) $pic = GUICtrlCreatePic("L:\2009-10 Computer Science\AutoIt3\MyWork\smiley-face.jpg",0,0,100,100) while 1 WEnd Func WM_MOUSEMOVE() EndFunc Func WM_LBUTTONDOWN() $aiPrePos = MouseGetPos() ConsoleWrite($aiPrePos[0]) ConsoleWrite($aiPrePos[1]) EndFunc Func WM_LBUTTONUP() $aiPostPos = MouseGetPos() ConsoleWrite($aiPostPos[0]) ConsoleWrite($aiPostPos[1]) EndFunc Thanks for helping!
-
Can I tell the script to ignore the shift key?
rliiack replied to TouchToneDialing's topic in AutoIt General Help and Support
If you want to ignore the shift key, you can put If _isPressed(10) Then EndIf -
Very simple script, where to begin?
rliiack replied to f0xh4x0r's topic in AutoIt General Help and Support
Hello, here are most things: Pixel searching: PixelSearch Pressing Buttons: Send To keep track of the times you press a button look at _isPressed If isPressed(...) Then $iCounter+=1 EndIf Things like this. Hope this helps -
Game Creation Question
rliiack replied to InmortalStudios's topic in AutoIt General Help and Support
Hello To create a window with no symbols, set the style of GUI to $WS_POPUPwindow. Use TimerInit()and TimerDiff() for the time. -
I want to write a program that gives out how much memory each active programs are using. How do I measure that? Thanks in advance!
-
Try putting the drawing on a transparent window so it can be permanent.
-
-
Send("400")
-
Ok, this one is guaranteed to be better then the last one. It now speaks the icon's name, so turn on your volume! #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <SliderConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Array.au3> #include <GDIPlus.au3> #include <ScreenCapture.au3> #Include <WinAPI.au3> #Include <Misc.au3> HotKeySet("{ESC}","Quit") Global $finalDistance, $msg, $desktop, $iconNumber, $x, $y, $pos, $oPos, $iconPos, $iconPos2, $min, $minIndexPos, $hHandle, $save2, $input2, $checkBox2, $volume2, $iCounter = 0 Global $iFD = 0 Global $OS = @OSVersion If Not IsDeclared("WM_LBUTTONDOWN") Then Global Const $WM_LBUTTONDOWN = 0x0201 If Not IsDeclared("WM_LBUTTONDBLCLK") Then Global Const $WM_LBUTTONDBLCLK = 0x0203 If Not IsDeclared("WM_RBUTTONDOWN") Then Global Const $WM_RBUTTONDOWN = 0x0204 Global $fDblClk = False If $OS = "WIN_XP" Then Global $oZoomHeight=76 Global $oZoomWidth=76 Global $zoomHeight=152 Global $zoomWidth=152 ElseIf $OS = "WIN_VISTA" Then Global $oZoomHeight=86 Global $oZoomWidth=86 Global $zoomHeight=172 Global $zoomWidth=172 EndIf opt("GUIOnEventMode",1) $SI = GUICreate("Smart Icons", 802, 579, 224, 110) GUISetFont(20, 800, 0, "Australian Sunrise") $soundOptions = GUICtrlCreateGroup("Sound Options", 117, 21, 631, 111, -1, $WS_EX_TRANSPARENT) GUICtrlSetFont(-1, 30, 800, 0, "Australian Sunrise") $volume = GUICtrlCreateSlider(133, 77, 343, 64) GUICtrlSetData($volume,80) $checkBox = GUICtrlCreateCheckbox("", 512, 77, 22, 33) $mute = GUICtrlCreateLabel("Mute", 536, 69, 86, 45) GUICtrlSetFont(-1, 27, 800, 0, "Times New Roman") $magnifyingSize = GUICtrlCreateGroup("Magnifying Size", 117, 304, 631, 161) GUICtrlSetFont(-1, 30, 800, 0, "Australian Sunrise") $input = GUICtrlCreateInput("", 168, 368, 182, 81) GUICtrlSetFont(-1, 60, 800, 0, "Australian Sunrise") GUICtrlSetData($input,2) $xLabel = GUICtrlCreateLabel("X", 360, 405, 31, 45) GUICtrlSetFont(-1, 27, 800, 0, "Times New Roman") $Save = GUICtrlCreateButton("Save", 448, 357, 204, 87, $WS_GROUP) GUICtrlSetFont(-1, 33, 800, 0, "Australian Sunrise") GUICtrlCreateGroup("", -99, -99, 1, 1) $Quit = GUICtrlCreateButton("Quit", 288, 475, 273, 92, $WS_GROUP) GUICtrlSetFont(-1, 47, 800, 0, "Australian Sunrise") $transparentOptions = GUICtrlCreateGroup("Transparent Options", 112, 152, 625, 145) GUICtrlSetFont(-1, 30, 800, 0, "Australian Sunrise") $transparency = GUICtrlCreateSlider(128, 224, 337, 41) GUICtrlSetData($transparency,80) $checkBox2 = GUICtrlCreateCheckbox("Checkbox1", 488, 232, 17, 17) $trans = GUICtrlCreateLabel("Transparent", 512, 216, 220, 48) GUICtrlSetFont(-1, 28, 800, 0, "Australian Sunrise") GUISetState(@SW_SHOW) GUICtrlSetOnEvent($Quit, "Quit") _GDIPlus_Startup() While 1 $input2=GUICtrlRead($input) $newCheckBox=GUICtrlRead($checkBox) $volume2=GUICtrlRead($volume) $newCheckBox2=GUICtrlRead($checkBox2) SoundSetWaveVolume($volume2) GUICtrlSetOnEvent($Save, "save") getMousePosition() getIconPositions() Global $distance[$iconNumber] Global $distance2[$iconNumber] For $i=0 To UBound($iconPos) -1 $distance[$i]=((($iconPos2[$i][0]-$x)*($iconPos2[$i][0]-$x))+(($iconPos2[$i][1]-$y)*($iconPos2[$i][1]-$y)))^(1/2) Next For $i=0 To UBound($distance) -1 If $distance[$i]<=100 Then $distance2[$i]=$distance[$i] EndIf Next Local $hit=_GUICtrlListView_HitTest($desktop,-1,-1) accessArrayData() If ($finalDistance[$minIndexPos][0]<300 And $finalDistance[$minIndexPos][0]>0) Or $hit[2]=True Then If $oPos <> $finalDistance[$minIndexPos][1] Then If $iCounter>0 Then GUISetState(@SW_HIDE,$Test) EndIf ; $minIndexPos is an integer ; $finalDistance is a 2D array ;$iconPos is a 2D array $iFD = $finalDistance[$minIndexPos][1] $iSC_X1 = $iconPos[$iFD][0] $iSC_Y1 = $iconPos[$iFD][1] $iDT_X2 = $iconPos[$iFD][0] + $oZoomHeight $iDT_Y2 = $iconPos[$iFD][1] + $oZoomHeight Sleep(25) $hbitmap = _ScreenCapture_Capture("", $iSC_X1, $iSC_Y1, $iDT_X2, $iDT_Y2, False) $Test = GUICreate("Smart Icons",$zoomWidth, $zoomHeight, $iSC_X1, $iSC_Y1, $WS_POPUPWINDOW, $WS_EX_TOPMOST) GUIRegisterMsg($WM_LBUTTONDBLCLK, "_WM_LBUTTONDBLCLK") GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN") GUIRegisterMsg($WM_RBUTTONDOWN, "_WM_RBUTTONDOWN") GUISetState(@SW_SHOW) If($newCheckBox2 = $GUI_CHECKED) Then WinSetTrans($Test,"",GUICtrlRead($transparency)*2.5) EndIf $hHandle = ControlGetHandle("Smart Icons","",$Test) $graphics=_GDIPlus_GraphicsCreateFromHWND($hHandle) EndIf $oPos=$iFD $bitmap=_GDIPlus_BitmapCreateFromHBITMAP($hbitmap) $height=_GDIPlus_ImageGetHeight($bitmap) $width=_GDIPlus_ImageGetWidth($bitmap) _GDIPlus_GraphicsDrawImageRectRect($graphics,$bitmap,0,0,$width,$height,0,0,$zoomWidth,$zoomHeight) If $newCheckBox=$GUI_UNCHECKED Then _Talk($iconPos[$iFD][2]) EndIf _WinAPI_DeleteObject($hbitmap) _WinAPI_DeleteObject($bitmap) $iCounter=1 EndIf If $iCounter>0 Then Local $maxA = $iconPos[0][0] for $i=1 To UBound($iconPos)-1 If $iconPos[$i][0]>$maxA Then $maxA = $iconPos[$i][0] EndIf Next If $x>$maxA+$oZoomWidth Then GUISetState(@SW_HIDE,$Test) EndIf EndIf WEnd _GDIPlus_Shutdown() Func getMousePosition() $pos=MouseGetPos() $x=$pos[0] $y=$pos[1] EndFunc Func getIconPositions() $desktop=ControlGetHandle("[CLASS:Progman]","","[CLASS:SysListView32;INSTANCE:1]") $iconNumber=_GUICtrlListView_GetItemCount($desktop) If $iconNumber>0 Then Global $iconPos[$iconNumber][3] Global $iconPos2[$iconNumber][2] For $i=0 To UBound($iconPos) -1 $iconPos[$i][2]=_GUICtrlListView_GetItemText($desktop, $i) If $OS = "WIN_XP" Then $iconPos[$i][0]=_GUICtrlListView_GetItemPositionX($desktop, $i)-19 Else $iconPos[$i][0]=_GUICtrlListView_GetItemPositionX($desktop, $i) EndIf $iconPos[$i][1]=_GUICtrlListView_GetItemPositionY($desktop, $i) $iconPos2[$i][0]=_GUICtrlListView_GetItemPositionX($desktop, $i)+$oZoomWidth/2 $iconPos2[$i][1]=_GUICtrlListView_GetItemPositionY($desktop, $i)+$oZoomHeight/2 Next Else MsgBox(64,"Error","No icons on desktop.", 3) Exit EndIf EndFunc Func Quit() Exit EndFunc Func accessArrayData() Local $counter=0 Global $finalDistance[UBound($distance2)][2] for $i=0 To UBound($distance2) -1 If $distance2[$i]>0 Then $finalDistance[$i][0]=$distance2[$i] $finalDistance[$i][1]=$i EndIf Next _ArraySort($finalDistance,1,0,0,0) If $finalDistance[0][0]=0 Then $counter=0 Else for $i=0 To UBound($finalDistance) -1 If $finalDistance[$i][0]>0 Then $counter+=1 EndIf Next $counter-=1 EndIf $min=$finalDistance[$counter][0] $minIndexPos=_ArraySearch($finalDistance,$min) EndFunc Func save() If $input2=1 Then $zoomHeight=$oZoomHeight $zoomWidth=$oZoomWidth Else $zoomHeight=$oZoomHeight*$input2 $zoomWidth=$oZoomWidth*$input2 EndIf EndFunc Func _Talk($s_text) Local $o_speech $o_speech = ObjCreate("SAPI.SpVoice") $o_speech.Speak($s_text) EndFunc Func _WM_LBUTTONDBLCLK($hWnd, $iMsg, $iwParam, $ilParam) $fDblClk = True getMousePosition() If $x>=$iSC_X1 And $x<=$iSC_X1+$zoomWidth And $y>=$iSC_Y1 And $y<=$iSC_Y1+$zoomHeight Then ControlClick("[CLASS:Progman]","","[CLASS:SysListView32;INSTANCE:1]","left",2,$iconPos2[$iFD][0],$iconPos2[$iFD][1]) EndIf Return $GUI_RUNDEFMSG EndFunc Func _WM_LBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam) If $fDblClk Then $fDblClk = False Return 0 EndIf getMousePosition() If $x>=$iSC_X1 And $x<=$iSC_X1+$zoomWidth And $y>=$iSC_Y1 And $y<=$iSC_Y1+$zoomHeight Then ControlClick("[CLASS:Progman]","","[CLASS:SysListView32;INSTANCE:1]","left",1,$iconPos2[$iFD][0],$iconPos2[$iFD][1]) EndIf Return $GUI_RUNDEFMSG EndFunc Func _WM_RBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam) $fDblClk = True getMousePosition() If $x>=$iSC_X1 And $x<=$iSC_X1+$zoomWidth And $y>=$iSC_Y1 And $y<=$iSC_Y1+$zoomHeight Then ControlClick("[CLASS:Progman]","","[CLASS:SysListView32;INSTANCE:1]","right",1,$iconPos2[$iFD][0],$iconPos2[$iFD][1]) EndIf Return $GUI_RUNDEFMSG EndFunc BUGS: When you click or double click on a icon, the computer sends the message to the icon on the top left corner or the first icon. I don't know why... If anyone finds out, please tell me. Thanks!
-
For example your mouse is on top of two windows. Is it possible to click on the window that is on the bottom? Thanks in Advance
-
Thanks to both of you!
-
Sorry, I think I told you to use the wrong function. I don't think you can set the progress bar to a different value other than 1 to 100.
-
hmmm... why do you set the minimum to 100? By setting it from 100 to 999, you cannot set data if your $i starts on 1, since the minimum is 100.
-
Set the limit of progress bar to a higher number.GUICtrlSetLimit(controlID, max [, min] )
-
I want to learn how to monitor mouse event and I had found a example script by JRowe: #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> ;These constants found in the helpfile under Windows Message Codes ;Global Const $WM_MOUSEMOVE = 0x0200 ;mouse move Global Const $WM_MOUSEWHEEL = 0x020A ;wheel up/down Global Const $WM_LBUTTONDOWN = 0x0201 ;Global Const $WM_LBUTTONUP = 0x0202 Global Const $WM_RBUTTONDOWN = 0x0204 Global Const $WM_RBUTTONUP = 0x0205 Global Const $WM_MBUTTONDOWN = 0x0207 Global Const $WM_MBUTTONUP = 0x0208 Global Const $MSLLHOOKSTRUCT = $tagPOINT & ";dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo" Global $currentEvent[2] Global $iLBUTTONDOWN = 0 Global $iRBUTTONDOWN = 0 Global $iMBUTTONDOWN = 0 Global $LRClickStatus = 0 Global $RLClickStatus = 0 Global $LRDrag = 0 Global $RLDrag = 0 Global $LMDrag = 0 Global $RMDrag = 0 Global $doubleClickTime = 400 #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, 192, 124) $Label1 = GUICtrlCreateLabel("Label1", 200, 8, 228, 49) GUISetState(@SW_SHOW) ;Register callback $hKey_Proc = DllCallbackRegister("_Mouse_Proc", "int", "int;ptr;ptr") $hM_Module = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0) $hM_Hook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", "int", $WH_MOUSE_LL, "ptr", DllCallbackGetPtr($hKey_Proc), "hwnd", $hM_Module[0], "dword", 0) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE OnAutoItExit() Exit EndSwitch WEnd Func _Mouse_Proc($nCode, $wParam, $lParam) Local $info, $mouseData, $time, $timeDiff If $nCode < 0 Then $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hM_Hook[0], _ "int", $nCode, "ptr", $wParam, "ptr", $lParam) Return $ret[0] EndIf $info = DllStructCreate($MSLLHOOKSTRUCT, $lParam) $mouseData = DllStructGetData($info, 3) $time = DllStructGetData($info, 5) $timeDiff = $time - $currentEvent[1] Select Case $wParam = $WM_MOUSEMOVE ;Test for Drag in here If $currentEvent[0] <> "LDrag" Or $currentEvent[0] <> "LRDrag" Or $currentEvent[0] <> "LMDrag" Then If $iLBUTTONDOWN = 1 Then $currentEvent[0] = "LDrag" If $iRBUTTONDOWN = 1 Then $currentEvent[0] = "LRDrag" $LRDrag = 2 EndIf EndIf EndIf If $currentEvent[0] <> "RDrag" Or $currentEvent[0] <> "RMDrag" Or $currentEvent[0] <> "LRDrag" Then If $iRBUTTONDOWN = 1 Then $currentEvent[0] = "RDrag" EndIf EndIf If $currentEvent[0] <> "MDrag" Then If $iMBUTTONDOWN = 1 Then $currentEvent[0] = "MDrag" $currentEvent[1] = $time EndIf EndIf If $iRBUTTONDOWN = 1 And $iMBUTTONDOWN = 1 And $currentEvent[0] <> "RMDrag" Then $RMDrag = 2 $currentEvent[0] = "RMDrag" $currentEvent[1] = $time EndIf If $iLBUTTONDOWN = 1 And $iMBUTTONDOWN = 1 And $currentEvent[0] <> "LMDrag" Then $LMDrag = 2 $currentEvent[0] = "LMDrag" $currentEvent[1] = $time EndIf Case $wParam = $WM_MOUSEWHEEL If _WinAPI_HiWord($mouseData) > 0 Then ;Wheel Up $currentEvent[0] = "WheelUp" $currentEvent[1] = $time Else ;Wheel Down $currentEvent[0] = "WheelDown" $currentEvent[1] = $time EndIf Case $wParam = $WM_LBUTTONDOWN ;Register Button Down, check for Right/Left If $currentEvent[0] = "RClick" Then $LRClickStatus = 1 EndIf $iLBUTTONDOWN = 1 Case $wParam = $WM_LBUTTONUP ;Update $iLBUTTONDOWN $iLBUTTONDOWN = 0 ;Test for Right/Left Click If $RLClickStatus = 1 And ($timeDiff) < $doubleClickTime Then $currentEvent[0] = "RLClick" $currentEvent[1] = $time EndIf If $currentEvent[0] = "LClick" And ($timeDiff) < $doubleClickTime Then $currentEvent[0] = "LDClick" $currentEvent[1] = $time EndIf ;Test for Drops If $currentEvent[0] = "LDrag" Then $currentEvent[0] = "LDrop" $currentEvent[1] = $time EndIf If $LRDrag = 2 And $iRBUTTONDOWN = 1 Then $LRDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up EndIf If $LRDrag = 1 And $iRBUTTONDOWN = 0 Then $currentEvent[0] = "LRDrop" $currentEvent[1] = $time $LRDrag = 0 EndIf If $LMDrag = 2 And $iMBUTTONDOWN = 1 Then $LMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up EndIf If $LMDrag = 1 And $iMBUTTONDOWN = 0 Then $currentEvent[0] = "LMDrop" $currentEvent[1] = $time $LMDrag = 0 EndIf ;Set LClick if other events haven't fired If $currentEvent[1] <> $time Then $currentEvent[0] = "LClick" $currentEvent[1] = $time EndIf ;Negate $LRClickStatus $RLClickStatus = 0 Case $wParam = $WM_RBUTTONDOWN ;Register Button Down If $currentEvent[0] = "LClick" Then $RLClickStatus = 1 EndIf $iRBUTTONDOWN = 1 Case $wParam = $WM_RBUTTONUP ;Test for Left, Right, and Right Doubleclick here ;Update $iRBUTTONDOWN $iRBUTTONDOWN = 0 ;Test for Right/Left Click If $LRClickStatus = 1 And ($timeDiff) < $doubleClickTime Then $currentEvent[0] = "LRClick" $currentEvent[1] = $time EndIf If $currentEvent[0] = "RClick" And ($timeDiff) < $doubleClickTime Then $currentEvent[0] = "RDClick" $currentEvent[1] = $time EndIf ;Test for Drops If $currentEvent[0] = "RDrag" Then $currentEvent[0] = "RDrop" $currentEvent[1] = $time EndIf If $LRDrag = 2 And $iLBUTTONDOWN = 1 Then $LRDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up EndIf If $LRDrag = 1 And $iLBUTTONDOWN = 0 Then $currentEvent[0] = "LRDrop" $currentEvent[1] = $time $LRDrag = 0 EndIf If $RMDrag = 2 And $iMBUTTONDOWN = 1 Then $RMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up EndIf If $RMDrag = 1 And $iMBUTTONDOWN = 0 Then $currentEvent[0] = "RMDrop" $currentEvent[1] = $time $RMDrag = 0 EndIf ;Set LClick if other events haven't fired If $currentEvent[1] <> $time Then $currentEvent[0] = "RClick" $currentEvent[1] = $time EndIf ;Negate $LRClickStatus $LRClickStatus = 0 Case $wParam = $WM_MBUTTONDOWN ;Register Button Down $iMBUTTONDOWN = 1 Case $wParam = $WM_MBUTTONUP ;Test for Middle Double Click here ;Update $iRBUTTONDOWN $iMBUTTONDOWN = 0 ;Test for Right/Left Click If $currentEvent[0] = "MClick" And ($timeDiff) < $doubleClickTime Then $currentEvent[0] = "MDClick" $currentEvent[1] = $time EndIf ;Test for Drops If $currentEvent[0] = "MDrag" Then $currentEvent[0] = "MDrop" $currentEvent[1] = $time EndIf If $LMDrag = 2 And $iLBUTTONDOWN = 1 Then $LMDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up EndIf If $LMDrag = 1 And $iLBUTTONDOWN = 0 Then $currentEvent[0] = "LMDrop" $currentEvent[1] = $time $LMDrag = 0 EndIf If $RMDrag = 2 And $iRBUTTONDOWN = 1 Then $RMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up EndIf If $RMDrag = 1 And $iRBUTTONDOWN = 0 Then $currentEvent[0] = "RMDrop" $currentEvent[1] = $time $RMDrag = 0 EndIf ;Set MClick if other events haven't fired If $currentEvent[1] <> $time Then $currentEvent[0] = "MClick" $currentEvent[1] = $time EndIf EndSelect GUICtrlSetData($Label1, $currentEvent[0] & @CRLF & $currentEvent[1]) $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hM_Hook[0], _ "int", $nCode, "ptr", $wParam, "ptr", $lParam) Return $ret[0] EndFunc ;==>_Mouse_Proc Func OnAutoItExit() DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hM_Hook[0]) $hM_Hook[0] = 0 DllCallbackFree($hKey_Proc) $hKey_Proc = 0 EndFunc ;==>OnAutoItExit Can somebody explain to me what does all the Dll, user32, kernel32, etc. do and how to use them?