Leaderboard
Popular Content
Showing content with the highest reputation on 09/15/2015 in all areas
-
LAST VERSION - 1.0 07-Mar-10 This is my very simple and small UDF. Allows you to restart the script from any location with full restoration of the original command line parameters. I use this library in several of my programs, and I was not disappointed. I hope this UDF will be useful for many as for me. I will be glad to any feedback and suggestions. Restart UDF Library v1.0 Previous downloads: 943 Restart.au3 Example #NoTrayIcon #Include <Misc.au3> #Include <Restart.au3> _Singleton('MyProgram') If MsgBox(36, 'Restarting...', 'Press OK to restart this script.') = 6 Then _ScriptRestart() EndIf1 point
-
View the Project at GitHub: https://github.com/BetaLeaf/False-Positive-Reporter Download False Positive Reporter: https://github.com/BetaLeaf/False-Positive-Reporter/releases Wiki: https://github.com/BetaLeaf/False-Positive-Reporter/wiki Thanks Jos for your Example Script involving Emailing attachments. Thanks JohnOne for helping me figure out the Run as Non-Admin Issue. Thanks Chiron at http://www.techsupportalert.com/content/how-report-malware-or-false-positives-multiple-antivirus-vendors.htm for your wonderful post. Disclaimer: This script is meant for submitting false positives to AntiVirus Vendors so you can deploy your scripts faster. I am not responsible for your misuse of this script.1 point
-
I'm writing a set of PowerShell scripts/library for Windows 10 builds. One thing I often want to do is to browse to the location of a script that is part of a larger group of scripts and run it manually to do an install or make a one off change. So I like all my scripts to work well whether run from a task sequence or double-clicked in explorer. Most of my build scripts rely on having admin rights so I like to make them able to self-elevate if required - or at least give an error message. In PowerShell 4.0 (Windows 8.1) they added the #Requires -RunAsAdministrator statement but this won't do it for you - it just causes the script to abort if not admin. Below is a PowerShell script that does the following: Checks for admin rights using the Test-IsAdmin functionIf not admin:Get the full script path and working directory using the Get-UNCFromPath functionIf the paths are mapped drives then get the UNC version (drive mappings are lost when elevating from user to admin in most configurations)Execute PowerShell.exe with the UNC path of the script and the RunAs verb to trigger elevation. ExecutionPolicy is also set to Bypass on the command line. The working directory is also set to the UNC path version.Waits for the new process to finish, and captures its return codeExits using the same return codeScript is as follows: # Test if admin function Test-IsAdmin() { # Get the current ID and its security principal $windowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent() $windowsPrincipal = new-object System.Security.Principal.WindowsPrincipal($windowsID) # Get the Admin role security principal $adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator # Are we an admin role? if ($windowsPrincipal.IsInRole($adminRole)) { $true } else { $false } } # Get UNC path from mapped drive function Get-UNCFromPath { Param( [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)] [String] $Path) if ($Path.Contains([io.path]::VolumeSeparatorChar)) { $psdrive = Get-PSDrive -Name $Path.Substring(0, 1) -PSProvider 'FileSystem' # Is it a mapped drive? if ($psdrive.DisplayRoot) { $Path = $Path.Replace($psdrive.Name + [io.path]::VolumeSeparatorChar, $psdrive.DisplayRoot) } } return $Path } # Relaunch the script if not admin function Invoke-RequireAdmin { Param( [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)] [System.Management.Automation.InvocationInfo] $MyInvocation) if (-not (Test-IsAdmin)) { # Get the script path $scriptPath = $MyInvocation.MyCommand.Path $scriptPath = Get-UNCFromPath -Path $scriptPath # Need to quote the paths in case of spaces $scriptPath = '"' + $scriptPath + '"' # Build base arguments for powershell.exe [string[]]$argList = @('-NoLogo -NoProfile', '-ExecutionPolicy Bypass', '-File', $scriptPath) # Add $argList += $MyInvocation.BoundParameters.GetEnumerator() | Foreach {"-$($_.Key)", "$($_.Value)"} $argList += $MyInvocation.UnboundArguments try { $process = Start-Process PowerShell.exe -PassThru -Verb Runas -Wait -WorkingDirectory $pwd -ArgumentList $argList exit $process.ExitCode } catch {} # Generic failure code exit 1 } } # Relaunch if not admin Invoke-RequireAdmin $script:MyInvocation # Running as admin if here $wshell = New-Object -ComObject Wscript.Shell $wshell.Popup("Script is running as admin", 0, "Done", 0x1) | Out-Null1 point
-
Display Commandline results
DigDeep reacted to JLogan3o13 for a topic
Like this, maybe? #include <Constants.au3> $net = Run(@ComSpec & " /c wmic bios get serialnumber", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) $final = "" While 1 $line = StdoutRead($net) If @error Then ExitLoop If $line <> "" Then $final &= $line Wend MsgBox(0, "STDOUT read:", $final)1 point -
Yet another one RegExp request
mjolnirmarkiv reacted to jchd for a topic
This? Local $aTest = [ _ "...<tag>1</tag>...<tag>2</tag>...<tag>3</tag>...", _ "...<tag>1</tag>...<tag></tag>...<tag>3</tag>...", _ "...<mytag>""1""</mytag>...<yourtag></yourtag>...<ourtag>3</ourtag>...", _ "...nothing important here...", _ "...<tag>a</tag>...<tag>2</tag>...<tag>3</tag>..." _ ] For $s In $aTest ConsoleWrite($s & (StringRegExp($s, '<tag>\D*</tag>') ? ' fails' : ' matches') & @LF) Next1 point -
NoizeBit, Slight change to the UDF and it now sorts without having to swap the columns - the new files are in the UDF thread. #include <Array.au3> #include "ArrayMultiColSort.au3" Global $aArray[][] = [ _ ["Instrument", "Type", "Asset", "Order #", "Order Time", "Invested", "Target Price", "Expiry Price", "Expiry Time", "Return"], _ ["High / Low", "Low", "AUD/USD", "36007202", "02-09-15 17:51:06", "24.00", "0.70351", "0.70414", "02-09-15 18:30:00", "0.00"], _ ["High / Low", "Low", "AUD/USD", "36007200", "01-09-15 17:45:03", "24.00", "0.70350", "0.70411", "02-09-15 18:30:00", "0.00"], _ ["High / Low", "Low", "NZD/USD", "36004443", "02-09-15 16:53:52", "24.00", "0.63465", "0.63534", "02-09-15 17:30:00", "0.00"], _ ["High / Low", "Low", "AUD/USD", "36004413", "02-09-15 16:53:20", "24.00", "0.70238", "0.70347", "02-09-15 17:30:00", "0.00"]] _ArrayDisplay($aArray, "Original", Default, 8) ; Sort in the required order Local $aSortData[2][2] = [[8, 0], [4, 0]] _ArrayMultiColSort($aArray, $aSortData, 1) ; And here is the result _ArrayDisplay($aArray, "Sorted", Default, 8)M231 point
-
Is this a script or a compiled EXE? What version is your AutoIt with which this was compiled? Can you compile a 64 bit version? How does that respond?1 point
-
Surya, The above spurred me to take a look as well. Having either blocking functions, or calls to functions of unknown duration, within a message handler is incredibly bad coding practice - you are doing both: Func WM_COPYDATA($hWnd, $iMsg, $wParam, $lParam) [...] MsgBox ("","calls",$return) Call($dat, $return) [...] EndFunc ;==>WM_COPYDATAThe Help file says quite clearly: If you do not return ASAP you risk blocking the message flow and bringing the entire system down. I would strongly recommend recoding that handler. M231 point
-
Surya, I have briefly looked at your code. Did you just copy it from here or here?1 point
-
You use GUICtrlRead to get the contents of the control, the variable $inputbox here is just the control ID.1 point
-
@Melba23 Sure. It is nothing but a text expander. I am TV program translator by proffesssion. I need to type thousands of words per day. So i need use a good tex expander. I have Phrase Express but it won't support my native language. So i learned autoit and made one for me.1 point
-
Here another example: #include <GuiRichEdit.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $hGUI = GUICreate("", 1024, 512) Global $hRichEdit = _GUICtrlRichEdit_Create($hGUI, "", 0, 0, 1024, 512, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY)) Global $iRichEdit = _WinAPI_GetDlgCtrlID($hRichEdit) _GUICtrlRichEdit_SetLimitOnText($hRichEdit, 0x20000) _GUICtrlRichEdit_SetBkColor($hRichEdit, 0x383838) Global $tCharFormat = DllStructCreate($tagCHARFORMAT) $tCharFormat.dwMask = $CFM_COLOR $tCharFormat.cbSize = DllStructGetSize($tCharFormat) Global $iCP = 0 Global $iCPMax = 0xFFFF WinSetTrans($hGUI, "", 0xD8) GUISetState() _GUICtrlRichEdit_AppendTextEx($hRichEdit, "Introduction\line\line", 0x40, 0x40, 0xFF, 32, 1000) Global $aChars = StringSplit("AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.", "", 2), $i $iCP = _GUICtrlRichEdit_GetCharPosOfNextWord($hRichEdit, $iCPMax) For $i = 0 To UBound($aChars) - 1 _GUICtrlRichEdit_SetSel($hRichEdit, $iCP - 1, -1, True) $iColor = 0x60 + Int(($i + 1) / UBound($aChars) * (0xFF - 0x60)) _GUICtrlRichEdit_AppendTextEx($hRichEdit, $aChars[$i], 0xF0, 0x40, $iColor, 12, 10) Next _GUICtrlRichEdit_AppendTextEx($hRichEdit, "\line", 0xFF, 0xFF, 0xFF, 12, 750) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "It uses a combination of simulated keystrokes, mouse movement ", 0xFF, 0xFF, 0xFF, 12, 750) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "and window/control manipulation in order to automate tasks in a way not possible ", 0xFF, 0xFF, 0xFF, 12, 750) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, ", 0xFF, 0xFF, 0xFF, 12, 750) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "self-contained and will run on all versions of Windows out-of-the-box with no annoying 'runtimes' required!\line\line", 0xFF, 0xFF, 0xFF, 12, 1500) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "Progress: ", 0x38, 0xFF, 0x38, 12, 0) $iCP = _GUICtrlRichEdit_GetCharPosOfNextWord($hRichEdit, $iCPMax) For $i = 0x38 To 0xFF Step 2 _GUICtrlRichEdit_SetSel($hRichEdit, $iCP - 1, -1, True) _GUICtrlRichEdit_AppendTextEx($hRichEdit, Round($i / 0xFF * 100, 0) & " %", $i, $i, $i, 12 * $i / 0xFF, 10, 2) Next _GUICtrlRichEdit_AppendTextEx($hRichEdit, "\line\line", 0xFF, 0xFF, 0xFF, 8, 0) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "Have fun with it :-)\line", 0xFF, 0x40, 0x40, 25, 750) _GUICtrlRichEdit_AppendTextEx($hRichEdit, "\line\line Press ESC!", 0xFF, 0xFF, 0x00, 8, 0) Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch Until False Func _GUICtrlRichEdit_AppendTextEx($hRichEdit, $sText, $iRed, $iGreen, $iBlue, $iFontSize, $iSleep = 100, $iMode = 1, $sFontname = "Consolas") ;coded by UEZ 2014 $iRed = $iRed < 0 ? 0 : $iRed > 0xFF ? 0xFF : $iRed $iGreen = $iGreen < 0 ? 0 : $iGreen > 0xFF ? 0xFF : $iGreen $iBlue = $iBlue < 0 ? 0 : $iBlue > 0xFF ? 0xFF : $iBlue Switch $iMode Case 1 _GUICtrlRichEdit_AppendText($hRichEdit, "{\rtf1\utf8{\fonttbl{\f0\fnil\fcharset0 " & $sFontname & ";}}{\colortbl;\red" & $iRed & "\green" & $iGreen & "\blue" & $iBlue & ";}\cf1 {\fs" & $iFontSize * 2 & " {" & $sText & "}}\cf0}") Case 2 _GUICtrlRichEdit_SetFont($hRichEdit, $iFontSize * 2, $sFontname) $tCharFormat.crCharColor = 0x10000 * $iBlue + 0x100 * $iGreen + $iRed _SendMessage($hRichEdit, $EM_SETCHARFORMAT, $SCF_SELECTION, $tCharFormat, 0, "wparam", "struct*") _GUICtrlRichEdit_ReplaceText($hRichEdit, $sText, False) EndSwitch Return Sleep($iSleep) EndFunc ;==>_GUICtrlRichEdit_AppendTextEx Br, UEZ1 point
-
Something like this here? #include <GDIplus.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #region ### START Koda GUI section ### Form= $Form1 = GUICreate("[#] Form1 [#]", 633, 447, 192, 124, Default, $WS_EX_COMPOSITED) $Label1 = GUICtrlCreateLabel("Autoit team", 40, 112, 57, 17) $Progress1 = GUICtrlCreateProgress(104, 192, 177, 49, BitOR($PBS_SMOOTH, $PBS_VERTICAL)) GUICtrlSetData($Progress1, 50) GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### Global $iBGColor = _WinAPI_GetSysColor($COLOR_3DFACE) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iBGColor = ' & Hex($iBGColor) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console Global $iCounter = 0 GUIRegisterMsg(0x000F, "WM_PAINT") ;$WM_PAINT = 0x000F AdlibRegister("Counter", 250) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE AdlibUnRegister("Counter") GUIRegisterMsg(0x000F, "") Exit EndSwitch WEnd Func Counter() $iCounter += 1 _WinAPI_RedrawWindow($Form1, 0, 0, $RDW_INVALIDATE + $RDW_UPDATENOW) EndFunc ;==>Counter Func WM_PAINT() Display_Rotated_Text($Form1, "Autoit team " & $iCounter, 40, 300, 90, 400, 24, 0, $iBGColor) Return "GUI_RUNDEFMSG" EndFunc ;==>WM_PAINT Func Display_Rotated_Text($hGUI, $text, $px, $py, $angle = 90, $tw = 400, $th = 12, $tcolor = 0x000000, $bcolor = 0xF0F0F0, $font = 'Arial', $transparent = False) Local $tRect, $rotate, $RotateMe, $rFont, $hDC ; Create RECT-structure, fill data $tRect = DllStructCreate($tagRECT) DllStructSetData($tRect, 'Left', $px) DllStructSetData($tRect, 'Top', $py) ; Set rotation $rotate = $angle * 10 ; Create structure for rotate text, fill data $RotateMe = DllStructCreate($tagLOGFONT) DllStructSetData($RotateMe, 'Escapement', $rotate) DllStructSetData($RotateMe, 'Weight', $tw) DllStructSetData($RotateMe, 'Height', $th) DllStructSetData($RotateMe, 'FaceName', $font) DllStructSetData($RotateMe, 'Quality', 5) ; Creates a logical font that has specific characteristics $rFont = _WinAPI_CreateFontIndirect($RotateMe) ; Retrieves a handle of a display device context for the client area a window $hDC = _WinAPI_GetDC($hGUI) ; Set text- and back color _WinAPI_SetTextColor($hDC, $tcolor) _WinAPI_SetBkColor($hDC, $bcolor) If $transparent Then _WinAPI_SetBkMode($hDC, $transparent) ; Selects an object into the specified device context _WinAPI_SelectObject($hDC, $rFont) ; Draws formatted text in the specified rectangle _WinAPI_DrawText($hDC, $text, $tRect, $DT_NOCLIP + $DT_NOPREFIX) $tRect = 0 EndFunc ;==>Display_Rotated_Text Br, UEZ1 point
-
GUI design concepts.
DinFuv reacted to mesale0077 for a topic
maybe #include <WindowsConstants.au3> #include <GuiConstantsEx.au3> #include <GDIPlus.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> #include <ProgressConstants.au3> #include <EditConstants.au3> dim $Label1[100] $Form1 = GUICreate("forum ", 0, 0, -1, -1) GUISetBkColor(0x0000FF) GUISetState(@SW_SHOW) grow($Form1, 380, 380, 1, 5) local $iWinSize = WinGetClientSize($Form1 ) $Label1[1] = GUICtrlCreateLabel("autoit ı love you", 56+$iWinSize[0], 24+$iWinSize[1], 217, 17) GUICtrlSetTip(-1," by"& @CRLF&".@mesale0077.") GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFFFF) $Label1[2]= GUICtrlCreateLabel("autoit :", 16+$iWinSize[0] ,56+$iWinSize[1], 66, 17) GUICtrlSetTip(-1," by"& @CRLF&".@mesale0077.") GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFFFF) $Label1[3] = GUICtrlCreateLabel("autoit love :", 16+$iWinSize[0], 128+$iWinSize[1], 63, 17) GUICtrlSetTip(-1," by"& @CRLF&".@mesale0077.") GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0xFFFFFF) $Label1[4] = GUICtrlCreateInput("", 16+$iWinSize[0], 88+$iWinSize[1], 289, 21) $Label1[5] = GUICtrlCreateInput("", 16+$iWinSize[0], 160+$iWinSize[1], 289, 21) $Label1[6] = GUICtrlCreateButton("ok", 24+$iWinSize[0], 224+$iWinSize[1], 97, 33, $WS_GROUP) GUICtrlSetCursor (-1, 0) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label1[7]= GUICtrlCreateButton("exit", 200+$iWinSize[0], 224+$iWinSize[1], 97, 33, $WS_GROUP) GUICtrlSetCursor (-1, 0) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") for $66= 1 to 7 AnimateControl($Form1,$Label1[$66],4,1,5,1) next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE for $66= 1 to 7 AnimateControl($Form1,$Label1[$66],8,1,5,2) next grow($Form1, 0, 0, 3, 2) Exit Case $Label1[6] EndSwitch WEnd Func AnimateControl($hWnd, $iHandle, $iAnimate = 1, $iSpeed = 1,$hoz=1,$pp=1) if $pp=1 then local $iPos = ControlGetPos($hWnd, "", $iHandle) local $iWinSizee = WinGetClientSize($hWnd) $iPos[0]=$iPos[0]-$iWinSize[0] $iPos[1]=$iPos[1]-$iWinSize[1] else if $pp=2 then local $iPos = ControlGetPos($hWnd, "", $iHandle) local $iWinSizee = WinGetClientSize($hWnd) endif endif If $iAnimate = 1 Then For $i = -40 To $iPos[0] step $hoz GUICtrlSetPos($iHandle, $i, $iPos[1]) GUICtrlSetState(-1,@SW_show) Sleep($iSpeed) Next Return EndIf If $iAnimate = 2 Then For $i = $iWinSizee[0] To $iPos[0] Step -1*$hoz GUICtrlSetPos($iHandle, $i, $iPos[1]) GUICtrlSetState(-1,@SW_show) Sleep($iSpeed) Next Return EndIf If $iAnimate = 3 Then For $i = 0 To $iPos[1] step $hoz GUICtrlSetPos($iHandle, $iPos[0], $i) GUICtrlSetState(-1,@SW_show) Sleep($iSpeed) Next Return EndIf If $iAnimate = 4 Then For $i = $iWinSizee[1] + 30 To $iPos[1] Step -1*$hoz GUICtrlSetPos($iHandle, $iPos[0], $i) GUICtrlSetState(-1,@SW_show) Sleep($iSpeed) Next Return EndIf If $iAnimate = 5 Then For $i = $iPos[0] To -$iWinSizee[0] step -1*$hoz GUICtrlSetPos($iHandle, $i, $iPos[1]) Sleep($iSpeed) Next GUICtrlDelete( $iHandle) Return EndIf If $iAnimate = 6 Then For $i = $iPos[0] To $iWinSizee[0]Step 1*$hoz GUICtrlSetPos($iHandle, $i, $iPos[1]) Sleep($iSpeed) Next GUICtrlDelete( $iHandle) Return EndIf If $iAnimate = 7 Then For $i = $iPos[1] To -40 step -1*$hoz GUICtrlSetPos($iHandle, $iPos[0], $i) Sleep($iSpeed) Next GUICtrlDelete($iHandle) Return EndIf If $iAnimate = 8 Then For $i = $iPos[1] To $iWinSizee[1] + $iPos[1] Step 1*$hoz GUICtrlSetPos($iHandle, $iPos[0], $i) Sleep($iSpeed) Next GUICtrlDelete($iHandle) Return EndIf EndFunc Func grow($gui, $guix, $guiy, $type, $step) $size = WinGetClientSize($gui) If $type = 1 Then For $x = $size[0] To $guix Step $step/3 $size = WinGetClientSize($gui) $zx = (@DesktopWidth/2) - ($size[0]/2) $zy = (@DesktopHeight/2) - ($size[1]/2) WinMove($gui, '', $zx, $zy, $x + $step, 25) Next For $y = $size[1] To $guiy Step $step/2 $size = WinGetClientSize($gui) $zx = (@DesktopWidth/2) - ($size[0]/2) $zy = (@DesktopHeight/2) - ($size[1]/2) WinMove($gui, '', $zx, $zy, $x, $y + $step) Next endif If $type = 2 Then For $w = 0 To 102 Step $step/4 $size = WinGetClientSize($gui) $dw = (@DesktopWidth/2) - ($size[0]/2) $dh = (@DesktopHeight/2) - ($size[1]/2) WinMove($gui, '', $dw, $dh, ($guix/100)*$w, ($guiy/100)*$w) Next EndIf If $type = 3 Then local $aPos = WinGetClientSize($gui) local $gPos = WinGetPos($gui) for $aaa= 1 to $aPos[0]-28 step 2 WinMove($gui, "", $gPos[0], $gPos[1], $aPos[0], $aPos[1] - $aaa) next $Pos = WinGetPos($gui) for $mm= 1 to $aPos[1]+200 step 2 WinMove($gui, "", $gPos[0], $gPos[1], $aPos[0] - $mm, 28) next endif EndFunc1 point -
GUI design concepts.
mLipok reacted to lorenkinzel for a topic
This is an "exit splash". I stripped all the stuff from the GUI because they're boring work items. The point is: on exit. Livening-up work items needs to be subtle. #include <GUIConstantSex.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> #include <MenuConstants.au3> $gui = GUICreate("gui", 80, @DesktopHeight * .925, @DesktopWidth * .75, 10, -1, $WS_EX_COMPOSITED) WinSetOnTop("gui", "", 1) $movePatch = GUICtrlCreateLabel("", 1, @DesktopHeight * .925 * .5, 78, 40) GUICtrlSetBkColor($movePatch, 0x302030) GUICtrlSetTip($movePatch, "hold here to move") GUISetState() While 1 $nMsg = GUIGetMsg() Select Case $nMsg = $GUI_EVENT_CLOSE BlueAway() GetSkinny() ExitLoop Case $nMsg = $movePatch move_it() EndSelect WEnd Func move_it() _SendMessage($gui, $WM_SYSCOMMAND, ($SC_MOVE + $HTCAPTION), 0) EndFunc ;==>move_it Func BlueAway() GUISetBkColor(0x0000ff, $gui) For $i = 250 To 120 Step -1.5 WinSetTrans($gui, "", $i) Next EndFunc ;==>BlueAway Func GetSkinny() For $i = 80 To 4 Step -1 WinMove($gui, "", @DesktopWidth * .75, 10, $i, @DesktopHeight * .925) Next GetShort() EndFunc ;==>GetSkinny Func GetShort() For $i = @DesktopHeight * .925 To 4 Step -1 WinMove($gui, "", @DesktopWidth * .75, 10, 4, $i) Next EndFunc ;==>GetShort1 point