Shake to Find Cursor是一款模仿mac系統(tǒng)搖晃鼠標來快速定位光標位置的軟件,現(xiàn)在也可以跟在Mac上一樣,只需簡單地扭動鼠標就可以了!內(nèi)附官方源碼,有需要的小伙伴歡迎來西西下載體驗。
軟件介紹:
近年來,蘋果公司做得比微軟更好的事情之一,是他們的方法快速找到你的鼠標光標。目前,在windows中,你必須啟用一個選項來點擊 "ctrl "來 "突出顯示 "他們的光標,但在Mac上,你只需簡單地扭動鼠標就可以了!所以,這里是我的版本,這個實用程序是我的版本。
另外,如果你將鼠標懸停在 "搖一搖尋找 "圖標上,你將會顯示出光標移動了多少英里!
使用說明:
1、下載好后解壓,運行EXE即可,軟件自動出現(xiàn)在消息欄中說明已經(jīng)運行
2、下次想要找鼠標,輕輕晃動鼠標,指針就會頓時變大
3、右鍵軟件圖標點擊Exit退出軟件
源碼展示:
#Region; ****由AutoIt3Wrapper_GUI創(chuàng)建的指令****
#AutoIt3Wrapper_Compression = 5;默認3
#AutoIt3Wrapper_UseUpx = n
#EndRegion; ****由AutoIt3Wrapper_GUI創(chuàng)建的指令****
#include <TrayConstants.au3>; $ TRAY_ICONSTATE_SHOW常量必需。
#include <WindowsConstants.au3>
#包括<WinAPI.au3>
#include <GDIPlus.au3>
$ gesture1 = “ 46464”
$ gesture2 = “ 19191”
$ gesture3 = “ 73737”
$ gesture4 = “ 28282”
$ gesture5 = “ 64646”
$ gesture6 = “ 91919”
$ gesture7 = “ 37373”
$ gesture8 = “ 82828”
全局常量$ AC_SRC_ALPHA = 1
全局$ oldMX,$ oldMY,$ curMx,$ curMY,$ distX,$ distY,$ distPix
全局$ DPI = 144 ; 我的筆記本電腦是144dpi
全局$ showing = 0
; HotKeySet (“ {END}” ,“ _Quit” ); 點擊“結(jié)束” 退出
$ avMousePos = MouseGetPos ()
$ win_mate = GUICreate ('測試' ,64 ,64 ,$ avMousePos [ 0 ] ,$ avMousePos [ 1 ] ,$ WS_POPUP,BITOR ($ WS_EX_LAYERED,$ WS_EX_TOOLWINDOW ))
WinSetOnTop ($ win_mate,`` ,1 )
_GDIPlus_Startup ()
$ g_hImage = _GDIPlus_BitmapCreateFromMemory (_Torus ())
GUISetState (@SW_SHOW )
_createTray ()
; 鼠標跟蹤計時器
全局$ TIMER = TimerInit ()
全局$ TIMEOUT = 100 ; 1 秒= 1000
全局$ animTIMER = TimerInit ()
全局$ animTIMEOUT = 10 ; 1 秒= 1000
全局$ MouseSizeX = 12
全局$ MouseSizeY = 19
全局$ direction = 0
全局$ oldDirection = 0
全局$ dirChangeCount = 0
全局$ xAxis
全局$ yAxis
全局$ xAxisOld
全局$ yAxisOld
全局$ shakeCount = 0
$ avMousePos = MouseGetPos ()
$ curMX = $ avMousePos [ 0 ]
$ curMY = $ avMousePos [ 1 ]
全局常量$ pi = 3.14159265358979
$ current = “”
$ direction = “”
全球$ pos_old
全球$ pos_new
$ debug =錯誤
雖然1
$ avMousePos = MouseGetPos ()
如果TimerDiff ($ animTIMER )> = $ animTIMEOUT然后
$ animTIMER = TimerInit ()
如果$ showing = 0,則
$ hWnd = WinGetHandle ($ win_mate )
DllCall (“ user32.dll” ,“ int” ,“ ShowCursor” ,“ int” ,True )
萬一
如果$ showing = 1 然后
WinMove ($ win_mate,“” ,$ avMousePos [ 0 ] ,$ avMousePos [ 1 ] )
; 隱藏指針圖像中的光標!
$ hWnd = WinGetHandle ($ win_mate )
DllCall (“ user32.dll” ,“ int” ,“ ShowCursor” ,“ int” ,F(xiàn)alse )
本地$ iCursor = MouseGetCursor ()
如果$ MouseSizeX> 12,則
$ MouseSizeX = $ MouseSizeX *。95
$ MouseSizeY = $ MouseSizeY *。95
;創(chuàng)建新圖像
$ GC = _GDIPlus_ImageGetGraphicsContext ($ g_hImage )
$ newBmp = _GDIPlus_BitmapCreateFromGraphics ($ MouseSizeX,$ MouseSizeY,$ GC )
$ newGC = _GDIPlus_ImageResize ($ g_hImage,$ MouseSizeX,$ MouseSizeY );調(diào)整圖像大小
;畫
_GDIPlus_GraphicsDrawImageRect ($ newGC,$ g_hImage,0 ,0 ,$ MouseSizeX,$ MouseSizeY )
SetBitmap ($ win_mate,$ newGC,255 ,$ MouseSizeX,$ MouseSizeY )
;克萊納普
_GDIPlus_GraphicsDispose ($ GC )
_GDIPlus_GraphicsDispose ($ newGC )
_GDIPlus_BitmapDispose ($ newBmp )
其他
SetBitmap ($ win_mate,$ g_hImage,0 ,12 ,19 )
$顯示= 0
萬一
萬一
萬一
如果TimerDiff ($ TIMER )> = $ TIMEOUT然后
$ TIMER = TimerInit ()
$ oldMX = $ curMX
$ oldMY = $ curMY
$ curMX = $ avMousePos [ 1 ]
$ curMY = $ avMousePos [ 0 ]
$ distX = abs ($ curMX-$ oldMX )* abs ($ curMX-$ oldMX )
$ distY = abs ($ curMY-$ oldMY )* abs ($ curMY-$ oldMY )
本地$ curDist = int (Sqrt ($ distX + $ distY ))
$ distPix = $ distPix + $ curDist
TraySetToolTip (圓(($ distPix / $ DPI )/ 63360 ,4 )&“里程” ); 托盤圖標工具提示
如果$ curDist> 150,則
$ a = GetAnglePO ($ curMY - $ oldMY,$ curMX - $ oldMX )* 57.2957795130823
選擇
情況$ a> = 337.5 或$ a < 22.5
$ direction = “ 6”
情況$ a> = 22.5 并且$ a < 67.5
$ direction = “ 3”
情況$ a> = 67.5 且$ a < 112.5
$ direction = “ 2”
情況$ a> = 112.5 并且$ a < 157.5
$ direction = “ 1”
情況$ a> = 157.5 和$ a < 202.5
$ direction = “ 4”
情況$ a> = 202.5 和$ a < 247.5
$ direction = “ 7”
情況$ a> = 247.5 并且$ a < 292.5
$ direction = “ 8”
情況$ a> = 292.5 和$ a < 337.5
$ direction = “ 9”
結(jié)束選擇
如果$ direction <> StringRight ($ current,1 )然后$ current&= $ direction
萬一
如果$ debug然后ToolTip (“當前:” &@TAB&$ current&@CRLF&“方向:” &@TAB&$ direction )
如果StringInStr ($ current,$ gesture1 )或StringInStr ($ current,$ gesture2 )或StringInStr ($ current,$ gesture3 )或StringInStr ($ current,$ gesture4 )或StringInStr ($ current,$ gesture5 )或StringInStr ($ current,$ current ,$ gesture6 )或StringInStr ($ current,$ gesture7 )或StringInStr ($ current,$ gesture8 )然后
$ MouseSizeX = 167
$ MouseSizeY = 251
SetBitmap ($ win_mate,$ g_hImage,255 ,$ MouseSizeX,$ MouseSizeY )
$顯示= 1
$ current = “”
萬一
; 如果$ curDist> 250 然后
; 如果($ xShake或$ yShake )和$ curDist> 250 然后
; $ MouseSizeX = 167
; $ MouseSizeY = 251
; SetBitmap ($ win_mate,$ g_hImage,255 ,$ MouseSizeX,$ MouseSizeY )
; $顯示= 1
; 萬一
萬一
切換TrayGetMsg ()
案例$ idWebLink; 跳轉(zhuǎn)到spinalcode.co.uk
ShellExecute (“ www.spinalcode.co.uk” )
案例$ idAbout; 顯示消息框
MsgBox ($ MB_SYSTEMMODAL,“ BigMouse” ,“ BigMouse” 和@CRLF和“按脊髓” 和@CRLF和“許多人認為在Socoder.net上的“ Dan”” 和@CRLF和“以及在UEP.com上的“ UEZ” / forum“ )
案例$ idExit; 退出循環(huán)。
出口環(huán)
_退出()
終端開關(guān)
結(jié)束
func _createTray ()
Opt (“ TrayMenuMode” ,3 ); 默認紙盤菜單項將不會顯示,并且在選擇時不會對其進行檢查。這些是TrayMenuMode的選項1 和2 。
全局$ idWebLink = TrayCreateItem (“ SpinalCode.co.uk” )
全局$ idAbout = TrayCreateItem (“ About” )
TrayCreateItem (“” ); 創(chuàng)建分隔線。
全局$ idExit = TrayCreateItem (“ Exit” )
TraySetState ($ TRAY_ICONSTATE_SHOW ); 顯示紙盤菜單。
TraySetToolTip (“ BigMouse” ); 托盤圖標工具提示
全局$ hBmp = _GDIPlus_BitmapCreateFromMemory (_AutoIt_Icon ());加載ico并將其轉(zhuǎn)換為GDI +位圖
;將位圖轉(zhuǎn)換為HIcon
全局$ hIcon = _GDIPlus_HICONCreateFromBitmap ($ hBmp )
_WinAPI_TraySetHIcon ($ hIcon )
EndFunc
FUNC _Quit ()
_GDIPlus_ShutDown ()
出口
EndFunc; ==> _ Quit
; ================================================== ================================================== ==========================
; SetBitMap
; ================================================== ================================================== ==========================
Func SetBitmap ($ hGUI,$ hImage,$ iOpacity,$ mx,$ my )
本地$ hScrDC,$ hMemDC,$ hBitmap,$ hOld,$ pSize,$ tSize,$ pSource,$ tSource,$ pBlend,$ tBlend
$ hScrDC = _WinAPI_GetDC (0 )
$ hMemDC = _WinAPI_CreateCompatibleDC ($ hScrDC )
$ hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap ($ hImage )
$ hOld = _WinAPI_SelectObject ($ hMemDC,$ hBitmap )
$ tSize = DllStructCreate ($ tagSIZE )
$ pSize = DllStructGetPtr ($ tSize )
DllStructSetData ($ tSize ,“ X” ,$ mx ); _GDIPlus_ImageGetWidth ($ hImage ))
DllStructSetData ($ tSize ,“ Y” ,$ my ); _GDIPlus_ImageGetHeight ($ hImage ))
$ tSource = DllStructCreate ($ tagPOINT )
$ pSource = DllStructGetPtr ($ tSource )
$ tBlend = DllStructCreate ($ tagBLENDFUNCTION )
$ pBlend = DllStructGetPtr ($ tBlend )
DllStructSetData ($ tBlend,“ Alpha” ,$ iOpacity )
DllStructSetData ($ tBlend,“ Format” ,$ AC_SRC_ALPHA )
_WinAPI_UpdateLayeredWindow ($ hGUI,$ hScrDC,0 ,$ pSize,$ hMemDC,$ pSource,0 ,$ pBlend,$ ULW_ALPHA )
_WinAPI_ReleaseDC (0 ,$ hScrDC )
_WinAPI_SelectObject ($ hMemDC,$ hOld )
_WinAPI_DeleteObject ($ hBitmap )
_WinAPI_DeleteDC ($ hMemDC )
EndFunc; ==> SetBitmap
; HTTPS ://www.autoitscript.com/forum/topic/134350-file-to-base64-string-code-generator-v120-build-2015-01-20-embed-your-files-easily/
Func _WinAPI_TraySetHIcon ($ hIcon );功能通過Mat
本地常量$ tagNOTIFYICONDATA = _
“ dword大;” &_
“擁有溫德;” &_
“ uint ID;” &_
“ uint標志;” &_
“ uint CallbackMessage;” &_
“ ptr圖標;” &_
“ wchar Tip [128];” &_
“雙字狀態(tài);” &_
“雙字StateMask;” &_
“ wchar Info [256];” &_
“ uint超時;” &_
“ wchar InfoTitle [64];” &_
“ dword InfoFlags;” &_
“ dword數(shù)據(jù)1; word數(shù)據(jù)2; word數(shù)據(jù)3;字節(jié)Data4 [8];” &_
“ ptr BalloonIcon”
本地CONST $ TRAY_ICON_GUI = WinGetHandle (AutoItWinGetTitle ()),$ NIM_ADD = 0 ,$ NIM_MODIFY = 1 ,$ NIF_MESSAGE = 1 ,$ NIF_ICON = 2 ,$ AUT_WM_NOTIFYICON = $ WM_USER + 1 ,$ AUT_NOTIFY_ICON_ID = 1
本地$ tNOTIFY = DllStructCreate ($ tagNOTIFYICONDATA )
DllStructSetData ($ tNOTIFY,“ Size” ,DllStructGetSize ($ tNOTIFY ))
DllStructSetData ($ tNOTIFY,“ Wnd” ,$ TRAY_ICON_GUI )
DllStructSetData ($ tNOTIFY,“ ID” ,$ AUT_NOTIFY_ICON_ID )
DllStructSetData ($ tNOTIFY,“ Icon” ,$ hIcon )
DllStructSetData ($ tNOTIFY,“ Flags” ,BitOR ($ NIF_ICON,$ NIF_MESSAGE ))
DllStructSetData ($ tNOTIFY,“ CallbackMessage” ,$ AUT_WM_NOTIFYICON )
本地$ aRet = DllCall (“ shell32.dll” ,“ int” ,“ Shell_NotifyIconW” ,“ dword” ,$ NIM_MODIFY,“ ptr” ,DllStructGetPtr ($ tNOTIFY ))
如果(@error )然后返回SETERROR (1 ,0 ,0 )
返回$ aRet [ 0 ] <> 0
EndFunc; ==> _ Tray_SetHIcon
Func _AutoIt_Icon ($ bSaveBinary = False,$ sSavePath = @ScriptDir )
本地$ AutoIt_Icon
$ AutoIt_Icon&= 'iVBORw0KGgoAAAANSUhEUgAAAPsAAAD7CAYAAACscuKmAAAALHRFWHRDcmVhdGlvbiBUaW1lAFRodSAxOCBKdWwgMjAxOSAxNzozNDoxNiAtMDAwMEZoKToAAAAHdElNRQfjBxQJOCb7HN3dAAAACXBIWXMAAArwAAAK8AFCrDSYAAAABGdBTUEAALGPC / xhBQAABrxJREFUeNrt3AlyFEkQRUEY4 / 5XZiZZBiGpu2vJLSLcD4BVV + bTlwDTly9xfF / 9ABDZP6sf4CTBw0XRYm8EDxdEjL0RPJwUNfZG8HBC5NgbwcNB0WNvBA8HZIi9ETy8kCX2RvDwRKbYG8HDA9libwQPn8gYeyN4eCdr7I3g4Y3MsTeCh1 + yx94IHr7UiL0RPOVVib0RPKVVir0RPGVVi70RPCVVjL0RPOVUjb0RPKVUjr0RPGVUj70RPCWkif3791vNCp700sTeCB4eSxV7I3j4XLrYG8HDRyljbwQPf0sbeyN4 + CN17I3g4af0sTeChyKxN4KnujKxN4KnslKxN4KnqnKxN4KnopKxN4KnmrKxN4KnktKxN4KnivKxN4KnArH / IniyE / sbgiczsb8jeLIS + ycET0Zif0DwZCP2JwRPJmJ / QfBkIfYDBE8GYj9I8EQn9hMET2RiP0nwRCX2CwRPRGK / SPBEI / YbBE8kYr9J8EQh9g4ETwRi70Tw7E7sHQmenYm9M8GzK7EPIHh2JPZBBM9uxD6Q4NmJ2AcTPLsQ + wSCZwdin0TwrCb2iQTPSmKfTPCsIvYFBM8KYl9E8Mwm9oUEz0xiX0zwzCL2DQieGcS + CcEzmtg3InhGEvtmBM8oYt + Q4BlB7JsSPL2JfWOCpyexb07w9CL2AARPD2IPQvDcJfZABM8dYg9G8Fwl9oAEzxViD0rwnCX2wATPGWIPTvAcJfYEBM8RYk9C8Lwi9kQEzzNiT0bwPCL2hATPZ8SelOB5T + yJCZ63xJ6c4PlN7AUInkbsRQgesRci + NrEXozg6xJ7QYKvSexFCb4esRcm + FrEXpzg6xA7gi9C7Pwg + PzEzv8En5vY + Yvg8xI7Hwg + J7HzKcHnI3YeEnwuYucpwechdl4SfA5i5xDBxyd2DhN8bGLnFMHHJXZOE3xMYucSwccjdi4TfCxi5xbBxyF2bhN8DGKnC8HvT + x0I / i9iZ2uBL8vsdOd4PckdoYQ / H7EzjCC34vYGUrw + xA7wwl + D2JnCsGvJ3amEfxaYmcqwa8jdqYT / BpiZwnBzyd2lhH8XGJnKcHPI3aWE / wcYmcLgh9P7GxD8GOJna0Ifhyxsx3BjyF2tiT4 / sTOtgTfl9jZmuD7ETvbE3wfYicEwd8ndsIQ / D1iJxTBXyd2whH8NWInJMGfJ3bCEvw5Yic0wR8ndsIT / DFiJwXBvyZ20hD8c2InFcE / JnbSEfznxE5Kgv9I7KQl + L + JndQE / 4fYSU / wP31b / QD08 / Xr19WPkFULPvzLtexwTPiFF3siN79d5bXQL1jscE7Y4MWejHWfIuRLFjtcEy54sW + MX9 + OW / dpQr1osW / EP52FFCb4SLfr6UuNvmbvQ + / + xeW5 8Yh0NzjAsm / AojOD2Bd7FPoGP7vH / laJD8S + kEVnJrEvciR0605PYl / AorOC2Cc7G7p1pxexT2TRWUnsk9wJ3brTg9gnsOjsQOyD9QrdunOX2Aey6OxE7IOMCN26c4fYB7Do7EjsnY0O3bpzldg7sujsTOydzAzdunOF2Duw6EQg9ptW / TYY685ZYr / Br30iErFf1DF0684UYr / AohOR2E8aFLp1Zzixn2DRiUzsB00I3bozlNgPsOhkIPYXJodu3RlG7E9YdDIR + wMLQ7fuDCH2T1h0MhL7O5uEbt3pTuxvbBI6DCH2XzYM3brTldi / bBk6dFc + 9s1Dt + 50Uzr2zUOHrsrGHih0604XJWMPFDp0Uy72oKFbd24rFXvQ0KGLMrEnCN26c0uJ2BOEDreljz1Z6Nady1LHnix0uCVt7IlDt + 5ckjL2xKHDZeliLxK6dee0VLEXCR0uiXTBRy5CpPfw1uV3cnOdf / DFNZZUy36RS0cJ1WOPHrqf3TmscuzRQ4dTqsaeKXTrziEVY88UOhxWLfasoVt3XqoUe9bQ4ZAqsVcI3brzVIXYK4QOL2WPvVro1p2HMsdeLXR4KlIQZ77yR / pcI0z / P / M9vjP4 / UcNeB / 859vqBxjAZZmoY + QMFumkjkxOpM8z2tB1Hxy5cxwg07K7IBNY8rgindyzuYn0OWbqtu4LInemnWVYdpdiIEueR6ST / GylIj3 / KTH + / dqZDhJ52V2KXJznYJFe8NuFivTcO9h53Z3lJBGX3eXIwTlOFumFfw / 2vLvZZd2d4SJefB2rY3fXFnMAtawI3h3bRMSf2YlB5JtxIPWMXnd3alOWnV5EvjkHVFPPdXeHgrDsXCXyYBxYXVfX3Z0JyrJzlMiDc4C1 + E0 / hVh2HhF5Mg6U9 + vuTiRl2flN5Mn9CxEq4KGERnxPAAAAAElFTkSuQmCC”
本地$ bString = 二進制(_WinAPI_Base64Decode ($ AutoIt_Icon ))
如果$ bSaveBinary然后
本地$ hFile = FileOpen ($ sSavePath&“ \ AutoIt.ico” ,18 )
FileWrite ($ hFile,$ bString )
FileClose ($ hFile )
萬一
返回$ bString
EndFunc; ==> _ AutoIt_Icon
Func _WinAPI_DisplayTransparentBitmapInGUI ($ hHBitmap,$ hGUI,$ iOpacity = 0xFF )
如果不BITAND (GUIGetStyle ($ HGUI )[ 1 ] ,$ WS_EX_LAYERED )= $ WS_EX_LAYERED然后返回SETERROR (1 ,0 ,0 )
本地常量$ hScrDC = _WinAPI_GetDC (0 ),$ hMemDC = _WinAPI_CreateCompatibleDC ($ hScrDC ),$ hOld = _WinAPI_SelectObject ($ hMemDC,$ hHBitmap )
本地$ tSize = DllStructCreate ($ tagSIZE )
$ tSize.X = $ iW
$ tSize.Y = $ iH
本地$ tSource = DllStructCreate ($ tagPOINT )
本地$ tBlend = DllStructCreate ($ tagBLENDFUNCTION )
$ tBlend.Alpha = $ iOpacity
$ tBlend.Format = 1
_WinAPI_UpdateLayeredWindow ($ hGUI,$ hScrDC,0 ,DllStructGetPtr ($ tSize ),$ hMemDC,DllStructGetPtr ($ tSource ),0 ,DllStructGetPtr ($ tBlend ),$ ULW_ALPHA )
_WinAPI_ReleaseDC (0 ,$ hScrDC )
_WinAPI_SelectObject ($ hMemDC,$ hOld )
_WinAPI_DeleteObject ($ hHBitmap )
_WinAPI_DeleteDC ($ hMemDC )
返回真
EndFunc
;代碼下面被產(chǎn)生的:“文件為Base64字符串” 碼發(fā)生器V1 0.19 生成2014 - 11 - 14
Func _Torus ($ bSaveBinary = False,$ sSavePath = @ScriptDir )
本地$ Pointer
$ Pointer&= 'iVBORw0KGgoAAAANSUhEUgAAAKcAAAD7CAYAAAAPWoRgAAAALHRFWHRDcmVhdGlvbiBUaW1lAFRodSAxOCBKdWwgMjAxOSAxNzozNDoxNiAtMDAwMEZoKToAAAAHdElNRQfjBxIQIy5qbVlWAAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGPC / xhBQAABntJREFUeNrt3e1SE0EQRuGQ8v5vGatRFEI2OzvTPf11nj8qVFnuzvEFklDcbrfb + w0I6P73VwJFOPcvvydQhHJ / + DOBIoz7k7cRKEK4H7ydQOHu / uJ9BApX95P3EyjcnMUpCBQuRuIUBIrtRuMUBIqtrsQpCBTbXI1TECi2mIlTECjMzcYpCBSmVuIUBAozq3EKAoUJjTgFgUKdVpyCQKFKM05BoFCjHacgUKiwiFMQKJZZxSkIFEtO43x / X2qMQDFtaDkJFB6GP6wTKHa79DkngWKny18QESh2mfpqnUCxw / RDSQQKa0uPcxIoLC0 / CE + gsKLyDBGBwoLa05cECm2qz60TKDSpv / CDQKHF5FVJBAoNZi + ZI1Cssnw9J4FiiWmcgkAxyzxOQaCYsSVOQaC4alucgkBxxdY4BYFi1PY4BYFihEucgkBxxi1OQaB4xTVOQaA44h6nIFA8EyJOQaB4FCZOQaD4KlScgkDxKVycgkAhQsYpCBRh4xQE2lvoOAWB9hU + TkGgPaWIUxBoP2niFATaS6o4BYH2kS5OQaA9pIxTEGh9aeMUBFpb6jgFgdaVPk5BoDWViFMQaD1l4hQEWkupOAWB1lEuTkGgNZSMUxBofmXjFASaW + k4BYHmVT5OQaA5tYhTEGg + beIUBJpLqzgFgebRLk5BoDm0jFMQaHxt4xQEGlvrOAWBxtU + TkGgMRHnXwQaD3F + QaCxEOcDAo2DOJ8g0BiI8wCB + iPOFwjUF3GeIFA / xDmAQH0Q5yAC3Y84LyDQvYjzIgLdhzgnEOgexDmJQO0R5wICtUWciwjUDnEqIFAbxKmEQPURpyIC1UWcyghUD3EaIFAdxGmEQNcRpyECXUOcxgh0HnFuQKBziHMTAr2OODci0GuIczMCHUecDgh0DHE6IdBzxOmIQF8jTmcEeow4AyDQ54gzCAL9iTgDIdDviDMYAv2POAMi0D + IMygCJc7QugdKnMF1DpQ4E + gaKHEm0TFQ4kykW6DEmUynQIkzoS6BEmdSHQIlzsSqB0qcyVUOlDgLqBoocRZRMVDiLKRaoMRZTKVAibOgKoESZ1EVAiXOwrIHSpzFZQ6UOBvIGihxNpExUOJsJFugxNlMpkCJs6EsgRJnUxkCJc7GogdKnM1FDpQ4ETZQ4sSHiIESJ / 6JFihx4ptIgRInfogSKHHiqQiBEicOeQdKnHjJM1DixCmvQIkTQzwCJU4M2x0oceKSnYESJy7bFShxYsqOQIkT06wD / eV9gRm8vb15 / xOqkkAPby7LCW + HC0qcAxY / fOHc0xtMnIjiR6DEOYj13OLbTSZORPMv0DZxanzFzXpu83GjW8TJQ0EpvcupvZyD7GvxGKbG9SzGzv + UQaWXk8XMrWycR2EG + Nwz94eijUrGyWLWUC7OkTBZzxxKxcli1lImzqthsp7xlYiTxawpfZwrYbKesaWOk8WsLW2cWmGynnGljJPF7CFdnBZhsp4xpYqTxewlTZzWYbKe8aSIk8XsKXycO8NkPWMJHSeL2VvYOL1ebc56xhEyTr4NAiJcnIphsp7JhYqTxcRXYeI0CpP1TCxEnCwmnnGPc0OYrGdSrnGymHjFLc7NYbKeCbnEyWJixPY4HcNkPZPZGieLiSu2xRkkTNYzkS1xBgkTyZjHGTBM1jMJ0zgDholEzOIMHibrmYBJnMHDRBLqcSYKk / UMTjXORGEiAbU4k4bJegamEmfSMBHccpwFwmQ9g1qKs0CYCGw6zmJhsp4BTcVZLEwEdTnOwmGynsFcirNwmAhoOM4mYbKegQzF2SRMBHP689YV / v6Mpu8JP89dj + XrOcvcJPiwijN7mHzuGYBFnNnDRBDacVYKk / V0phlnpTARgFacVcNkPR1pxFk1TDhbjbNDmKynk5U4O4QJR7NxdguT9XQwE2e3MOHk6nPr3cPc / py74o9YTHd2vypfXGb83M / x5eRO / We6nsZRpjrHkeVMdUFZsZQ / nS0nd + w5tfV0iDLNmb5azjQXkRFLee5oOblz57I9fpjuTJ8tZ7qLwEtpz / NxOdNeiJPI65n + LL8uZ / qLwYcy5 / i5nGUuyEGU9Sx3huUuyIF3nGXPsOyFbeYRaPmzu / LcOmIoH2W7C93Aej3bnRXLGV + 7KNtfuBHN9Wx / NixnPO2j / MSN0De7npzFA5bTH1Ee4MbY4LsLFLCc + xHlIG6Uncf15F5fxHLaI8pJvwEKweChpswmuQAAAABJRU5ErkJggg ==”
本地$ bString = 二進制(_WinAPI_Base64Decode ($ Pointer ))
如果$ bSaveBinary然后
本地$ hFile = FileOpen ($ sSavePath&“ \ Pointer.png” ,18 )
FileWrite ($ hFile,$ bString )
FileClose ($ hFile )
萬一
返回$ bString
EndFunc; ==> _ Torus
Func _WinAPI_Base64Decode ($ sB64String )
本地$ aCrypt = DllCall (“ Crypt32.dll” ,“ bool” ,“ CryptStringToBinaryA” ,“ str” ,$ sB64String,“ dword” ,0 ,“ dword” ,1 ,“ ptr” ,0 ,“ dword *” ,0 ,“ ptr” ,0 ,“ ptr” ,0 )
如果@error或不$ aCrypt [ 0 ] ,然后返回SETERROR (1 ,0 ,“” )
本地$ bBuffer = DllStructCreate (“ byte [” &$ aCrypt [ 5 ] &“]” )
$ aCrypt = DllCall (“ Crypt32.dll” ,“ bool” ,“ CryptStringToBinaryA” ,“ str” ,$ sB64String,“ dword” ,0 ,“ dword” ,1 ,“ struct *” ,$ bBuffer,“ dword *” ,$ aCrypt [ 5 ] ,“ ptr” ,0 ,“ ptr” ,0 )
如果@error或不$ aCrypt [ 0 ] ,然后返回SETERROR (2 ,0 ,“” )
返回DllStructGetData ($ bBuffer,1 )
EndFunc; ==> _ WinAPI_Base64Decode
Func GetAnglePO ($ x,$ y ) ; by布萊德維希
選擇
案例$ x> 0
如果$ y> = 0 那么
返回ATan ($ y / $ x )
其他
返回ATan ($ y / $ x )+ 2 * $ pi
萬一
情況$ x = 0
如果$ y = 0 那么
返回0
否則$ y> 0 然后
返回$ pi / 2
其他
回報3 * $ pi / 2
萬一
案例$ x < 0
返回ATan ($ y / $ x )+ $ pi
結(jié)束選擇
EndFunc