Jump to content

Leaderboard


Popular Content

Showing most liked content since 11/22/2018 in all areas

  1. 2 points
    Olá, Compartilhando um script de efeitos de entrada e saída de GUI utilizando a função _WinAPI_AnimateWindow Deve ser usado junto com GUISetState() #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.5 Author: Rodrigo Chaves Script Function: Animate Window 07/2019 Base de pesquisa https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-animatewindow #ce ---------------------------------------------------------------------------- #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPIDiag.au3> ;Variaveis de efeitos Dim Const $tSTRUCT = 'struct;char fadeIn[128];char fadeOut[128];char Slide_In_Left[128];char Slide_Out_Left[128];char Slide_In_Right[128];char Slide_Out_Right[128];char Slide_In_Top[128];char Slide_Out_Top[128];' & _ 'char Slide_In_Bottom[128];char Slide_Out_Bottom[128];char DiagSlide_In_TopLeft[128];char DiagSlide_Out_TopLeft[128];char DiagSlide_In_TopRight[128];char DiagSlide_Out_TopRight[128];' & _ 'char DiagSlide_In_BottomLeft[128];char DiagSlide_Out_BottomLeft[128];char DiagSlide_In_BottomRight[128];char DiagSlide_Out_BottomRight[128];char explode[128];char implode[128];endstruct' Dim $oAW = DllStructCreate($tSTRUCT) $oAW.fadeIn = 0x00080000 $oAW.fadeOut = 0x00090000 $oAW.slide_In_Left = 0x00040001 $oAW.slide_Out_Left = 0x00050002 $oAW.slide_In_Top = 0x00040004 $oAW.slide_Out_Top = 0x00050008 $oAW.slide_In_Right = 0x00040002 $oAW.slide_Out_Right = 0x00050001 $oAW.slide_In_Bottom = 0x00040008 $oAW.slide_Out_Bottom = 0x00050004 $oAW.diagSlide_In_TopLeft = 0x00040005 $oAW.diagSlide_Out_TopLeft = 0x0005000a $oAW.diagSlide_In_TopRight = 0x00040006 $oAW.diagSlide_Out_TopRight = 0x00050009 $oAW.diagSlide_In_BottomLeft = 0x00040009 $oAW.diagSlide_Out_BottomLeft = 0x00050006 $oAW.diagSlide_In_BottomRight = 0x0004000a $oAW.diagSlide_Out_BottomRight = 0x00050005 $oAW.explode = 0x00040010 $oAW.implode = 0x00050010 ;Verificar a estrutura da variavel ;~ _WinAPI_DisplayStruct($oAW, $tSTRUCT) ;Variaveis de cores Dim Const $tagSTRUCT = 'struct;char white[8];char black[8];char dark[8];char light[8];char darkLight[8];char aqua[8];char alpha[2];endstruct' Dim $oColor = DllStructCreate($tagSTRUCT) $oColor.white = 0xFFFFFF $oColor.black = 0x000000 $oColor.dark = 0x202020 $oColor.light = 0xf5f6f7 $oColor.darkLight = 0x323232 $oColor.aqua = 0x00f2ff $oColor.alpha = -2 ;Verificar a estrutura da variavel ;~ _WinAPI_DisplayStruct($oColor, $tagSTRUCT) ;Texto de exemplo Dim $sSampleText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor ' & _ 'incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud ' & _ 'exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure ' & _ 'dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur ' & _ 'sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.' $hWnd_Main = GUICreate("", 615, 437, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOPMOST) GUISetBkColor($oColor.dark) $aGetPos = WinGetPos($hWnd_Main) $sLabel_Title = GUICtrlCreateLabel(" Exemplo de janela animada", 0, 0, $aGetPos[2] - 2, 17, $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG) GUICtrlSetFont(-1, 10, 400, 0, "Segoe UI") GUICtrlSetBkColor(-1, $oColor.darkLight) GUICtrlSetColor(-1, $oColor.white) $Label2 = GUICtrlCreateLabel($sSampleText, 35, 40, 546, 337) GUICtrlSetFont(-1, 11, 400, 0, "Segoe UI") GUICtrlSetColor(-1, $oColor.white) $idBtn_Run = GUICtrlCreateButton("Run Effect", 430, 385, 75, 25) $idBtn_Exit = GUICtrlCreateButton("Exit", 510, 385, 75, 25) GUISetState(@SW_SHOW) ;Cria um sublinhado na barra de titulo $lineGraphic = GUICtrlCreateGraphic(0, 18, $aGetPos[2] - 1, 1) GUICtrlSetBkColor(-1, $oColor.aqua) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $idBtn_Exit Exit Case $idBtn_Run GUICtrlSetState($idBtn_Run, $GUI_HIDE) GUISetState(@SW_HIDE, $hWnd_Main) Sleep(1500) For $i = 1 To 20 ;Coleta o valor da variavel da estrutura $oAW $getAW = DllStructGetData($oAW, $i) ;Aplica o efeito _WinAPI_AnimateWindow($hWnd_Main, $getAW, 300) Sleep(200) Next ;Aplica o efeito de entrada fade-in com tempo de entrada de 1s (1000ms) _WinAPI_AnimateWindow($hWnd_Main, $oAW.fadeIn, 1000) ;Recolore o sublinhado GUICtrlSetBkColor($lineGraphic, $oColor.aqua) GUISetState(@SW_SHOW) GUICtrlSetState($idBtn_Run, $GUI_SHOW) EndSwitch WEnd
  2. 1 point
    Bom trabalho @Pedro Pinheiro, achei bem legal ter usado IrrLicht e compartilhar no GitHub!
  3. 1 point
    Um frontend totalmente igual ao pandorabox 3. Fiz em 15 dias para brincar um pouco, mas acabei abandonando. O projeto está aberto no github para download e contribuições com ajudas e ideias. Caso alguém queira atualizações do projeto, vou deixar meu link de doações em aberto, dependendo das doações, o frontend ficará 100% igual ao Pandorabox 3 e terá sistema de skins para o gosto da pessoa. https://github.com/pedrowarlock/FrontEnd_listbox https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=pedro_15boy%40hotmail.com&currency_code=BRL&source=url
  4. 1 point
    A udf que uso é a video.au3 mesmo e ela só não é perfeita porque não tem como mostrar os vídeos em tela cheia independente da resolução mas o resto funciona tudo perfeitamente, achei uma UDF que coloca os videos em tela cheia mas ela depende de uma dll feita pelo criador e nos testes deu alguns bug's que impossibitou de usar. #include-once ; #CURRENT# =============================================================================================== ; _Video_Close ; _Video_Dimension ; _Video_FrameRate ; _Video_Length ; _Video_Mute ; _Video_Open ; _Video_Pause ; _Video_Play ; _Video_Resume ; _Video_Seek ; _Video_Status ; _Video_Step ; _Video_Stop ; _Video_TimePos ; _Video_Volume ; _RandomStr ; _MSToHMS ; _mciDeviceExists ; _mciListDevices ; _mciSendString ;========================================================================================================== ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Close ; Description....: Close a video. ; Syntax.........: _Video_Close($sAlias) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; Return values .: Success - Return 1 and sets Alias name to "". ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = MCI failed to close video ; Author ........: smashly ; ========================================================================================================= Func _Video_Close(ByRef $sAlias) If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If _mciSendString("close " & $sAlias) = 0 Then $sAlias = "" Return SetError(0, 0, 1) Else Return SetError(2, 0, 0) EndIf EndFunc ;==>_Video_Close ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Dimension ; Description....: Retrieves the Width and Height of the source video. ; Syntax.........: _Video_Dimension($sFile) ; Parameters ....: $sFile - The full path to video file. ; Return values .: Success - Returns an array. array[0] = Width, array[1] = Height ; Failure - Return 0 and @error 1~3 ; @error 1 = File doesn't exist. ; @error 2 = MCI failed to open the video file. ; @error 3 = MCI failed to get the source video dimensions. ; Author ........: smashly ; ========================================================================================================= Func _Video_Dimension($sFile) Local $iRet, $sVID, $aTmp If Not FileExists($sFile) Then Return SetError(1, 0, 0) $sVID = _RandomStr() $iRet = _mciSendString("open " & FileGetShortName($sFile) & " alias " & $sVID) If $iRet <> 0 Then Return SetError(2, 0, 0) $iRet = _mciSendString("where " & $sVID & " source", 255) If $iRet = "" Then _mciSendString("close " & $sVID) Return SetError(3, 0, 0) EndIf _mciSendString("close " & $sVID) $aTmp = StringSplit($iRet, Chr(32)) $aTmp[1] = $aTmp[$aTmp[0]] $aTmp[0] = $aTmp[$aTmp[0] - 1] ReDim $aTmp[2] Return $aTmp EndFunc ;==>_Video_Dimension ; #FUNCTION# ============================================================================================== ; Name...........: _Video_FrameRate ; Description....: Close a video. ; Syntax.........: _Video_FrameRate($sAlias) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; Return values .: Success - Returns the Frames Per Second of the video. ; Failure - Return 0 and @error 1 ; @error 1 = Invalid Alias ; Author ........: smashly ; ========================================================================================================= Func _Video_FrameRate($sAlias) If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) Return _mciSendString("status " & $sAlias & " nominal frame rate", 255) / 1000 EndFunc ;==>_Video_FrameRate ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Length ; Description....: Get the time length of a video in Milliseconds or Hours, Minutes, Seconds (HH:MM:SS) ; Syntax.........: _Video_Length($sAlias[, $iTime = 0]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open ; $iTime - 0 Return time lenth in Hours, Minutes, Seconds (HH:MM:SS) ; - 1 Return time lenth in Milliseconds. ; Return values .: Success - Return time length in Milliseconds or Hours, Minutes, Seconds (HH:MM:SS) ; Failure - Return 0 and @error 1 ; @error 1 = Invalid Alias ; Author ........: smashly ; ========================================================================================================= Func _Video_Length($sAlias, $iTime = 0) Local $iMS If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) _mciSendString("set " & $sAlias & " time format ms") $iMS = _mciSendString("status " & $sAlias & " length", 255) If Not $iTime Then Return _MSToHMS($iMS) If $iTime Then Return $iMS EndFunc ;==>_Video_Length ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Mute ; Description....: Turn off/on the audio in a video. ; Syntax.........: _Video_Mute($sAlias[, $iMute = 0]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; $iAudio - 0 = Audio On, 1 = Audio Off ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = MCI failed to turn the video audio off/on ; Author ........: smashly ; ========================================================================================================= Func _Video_Mute($sAlias, $iMute = 0) Local $iRet, $iAM = "on" If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If $iMute Then $iAM = "off" $iRet = _mciSendString("set " & $sAlias & " audio all " & $iAM) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(2, 0, 0) EndIf EndFunc ;==>_Video_Mute ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Open ; Description ...: Opens a Video file ready for use with other _Video_xxxx functions. ; Syntax.........: _Video_Open($sFile, $hWnd, $iX, $iY, $iW, $iH[, $sDevice = ""]) ; Parameters ....: $sFile - The full path to video file. ; $hWnd - Handle to a window or control that the video will be displayed on ; $iX - Left position of the video. ; $iY - Top position of the video. ; $iW - Width of the video. ; $iH - Height of the video. ; $sDevice - MCI Device type to play video with. (See Remarks for more info) ; Return values .: Success - Return an Alias name for use with other _Video_xxxx functions. ; Failure - Return an empty String "" and @error 1~5 ; @error 1 = File doesn't exist ; @error 2 = Window or Control handle not valid. ; @error 3 = Invalid MCI Device type specified. ; @error 4 = MCI failed to open video file ; @error 5 = MCI failed window for video. ; @error 5 = MCI failed to put video at the deignated location. ; Author ........: smashly ; Remarks .......: If your having trouble with avi playback (eg; playing fast, slow, choppy or no audio) ; or a video won't play but it plays fine in any other player ... ; Then set the $sDevice parameter to "MPEGVideo" ; If the $sDevice parameter is left blank then windows will decide which MCI Device type ; to use. ; Most current day avi/wmv/mp4 formats dont play properly or at all when windows selects ; the mci device type to use. ; Windows would default use "AVIVideo" MCI Device type to play avi with mci. ; When you specify "MPEGVideo" for an avi and mci fails it then uses the windows native ; chain of codecs that would be used by any other player not using mci ;) ; Because of this behaviour you can usually play almost any type of video that normally ; fails when using mci just by specifying "MPEGVideo" mci device type. ; For playing video on an autoit gui then be sure to add the $WS_CLIPCHILDREN style ; to your Gui. This will keep the Video dislpayed on your Gui all the time. ; ========================================================================================================= Func _Video_Open($sFile, $hWnd, $iX, $iY, $iH, $iW, $sDevice = "") Local $sVID, $gId, $iRet, $sDT = "" If Not FileExists($sFile) Then Return SetError(1, 0, "") If Not IsHWnd($hWnd) Then Return SetError(2, 0, "") If $sDevice <> "" Then If Not _mciDeviceExists($sDevice) Then Return SetError(3, 0, "") $sDT = " type " & $sDevice EndIf $gId = Dec(StringTrimLeft($hWnd, 2)) $sVID = _RandomStr() $iRet = _mciSendString("open " & FileGetShortName($sFile) & " alias " & $sVID & $sDT) If $iRet <> 0 Then Return SetError(4, 0, "") $iRet = _mciSendString("window " & $sVID & " handle " & $gId) If $iRet <> 0 Then _mciSendString("close " & $sVID) Return SetError(5, 0, "") EndIf $iRet = _mciSendString("put " & $sVID & " destination at " & $iX & " " & $iY & " " & $iH & " " & $iW) If $iRet <> 0 Then _mciSendString("close " & $sVID) Return SetError(6, 0, "") EndIf Return SetError(0, 0, $sVID) EndFunc ;==>_Video_Open ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Pause ; Description....: Pause a Video at the current playing position. ; Syntax.........: _Video_Pause($sAlias) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = Failed to pause video. ; Author ........: smashly ; ========================================================================================================= Func _Video_Pause($sAlias) Local $iRet If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) $iRet = _mciSendString("pause " & $sAlias) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(2, 0, 0) EndIf EndFunc ;==>_Video_Pause ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Play ; Description....: Plays a Video from the current position. ; Syntax.........: _Video_Play($sAlias[, $iMode = 0]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; $iMode - 0 play video on the window or control as specified in _Video_Open ; - 1 play video in Fullscreen mode. ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = MCI failed to play video. ; Author ........: smashly ; ========================================================================================================= Func _Video_Play($sAlias, $iMode = 0) Local $iRet If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If _Video_TimePos($sAlias, 1) = _Video_Length($sAlias, 1) Then _Video_Seek($sAlias, "start") If $iMode Then $vRet = _mciSendString("play " & $sAlias & " fullscreen") Else $iRet = _mciSendString("play " & $sAlias) EndIf If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(1, 0, 0) EndIf EndFunc ;==>_Video_Play ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Resume ; Description....: Resume playing a video after pausing. ; Syntax.........: _Video_Resume($sAlias) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = MCI failed to resume video. ; Author ........: smashly ; ========================================================================================================= Func _Video_Resume($sAlias) Local $iRet If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) $iRet = _mciSendString("resume " & $sAlias) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(2, 0, 0) EndIf EndFunc ;==>_Video_Resume ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Seek ; Description....: Seek a video to the specified time position. ; Syntax.........: _Video_Seek($sAlias, $iTime) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; $iTime - Time to Seek. Can be Millisecons or HH:MM:SS or "start" or "end" ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~3 ; @error 1 = Invalid Alias ; @error 2 = Invalid time format. ; @error 3 = MCI Seek error ; Author ........: smashly ; ========================================================================================================= Func _Video_Seek($sAlias, $iTime) Local $iMS, $aTime, $iRet If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If StringInStr($iTime, ":") Then $aTime = StringSplit($iTime, ":") If $aTime[0] <> 3 Then Return SetError(2, 0, 0) $iMS = 1000 * ((3600 * $aTime[1]) + (60 * $aTime[2]) + $aTime[3]) ElseIf StringIsInt($iTime) Or $iTime = "start" Or $iTime = "end" Then $iMS = $iTime Else Return SetError(2, 0, 0) EndIf _mciSendString("set " & $sAlias & " time format ms") $iRet = _mciSendString("seek " & $sAlias & " to " & $iMS) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(3, 0, 0) EndIf EndFunc ;==>_Video_Seek ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Status ; Description....: Get a status status message from a video device. ; Syntax.........: _Video_Status($sAlias[, $sQuery = "mode"]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open ; $sQuery - What to get the status of: ; "audio" - returns the "on" or "off" ; "mode" - returns "paused", "playing" and "stopped" ; Return values .: Success - Returns a Status message from the video device. ; Failure - Return 0 and @error 1 ; @error 1 = Invalid Alias ; @error 2 = Invalid query (To be implemented) ; Author ........: smashly ; ========================================================================================================= Func _Video_Status($sAlias, $sQuery = "mode") If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) ;; error check for the $sQuery goes here Return _mciSendString("status " & $sAlias & " " & $sQuery, 255) EndFunc ;==>_Video_Status ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Step ; Description....: Step a video forwards or backwards by a number of frames. ; Syntax.........: _Video_Step($sAlias, $iFrames) ; Parameters ....: $sAlias - Alias name returned by _Video_Open ; $iFrames - The number of frames to step, use negative numbers to step backwards. ; Return values .: Success - Returns 1 and @error 0 ; Failure - Return 0 and @error 1~3 ; @error 1 = Invalid Alias ; @error 2 = Invalid frames ; @error 3 = MCI Step error ; Author ........: smashly ; ========================================================================================================= Func _Video_Step($sAlias, $iFrames) Local $iRet If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If StringRegExp(StringReplace($iFrames, "-", ""), '\D', 0) Then Return SetError(2, 0, 0) $iRet = _mciSendString("step " & $sAlias & " by " & $iFrames) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(3, 0, 0) EndIf EndFunc ;==>_Video_Step ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Stop ; Description....: Stop a Video playing. (seeks video to start) ; Syntax.........: _Video_Stop($sAlias) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = Failed to stop or seek ; Author ........: smashly ;========================================================================================================== Func _Video_Stop($sAlias) Local $iRet, $iRet2 If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) $iRet = _Video_Seek($sAlias, "start") $iRet2 = _mciSendString("stop " & $sAlias) If $iRet = 0 And $iRet2 = 0 Then Return SetError(0, 0, 1) Else Return SetError(2, 0, 0) EndIf EndFunc ;==>_Video_Stop ; #FUNCTION# ============================================================================================== ; Name...........: _Video_TimePos ; Description....: Get the time poition of a video in Milliseconds or Hours, Minutes, Seconds (HH:MM:SS) ; Syntax.........: _Video_TimePos($sAlias[, $iTime = 0]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; $iTime - 0 Return time lenth in Hours, Minutes, Seconds (HH:MM:SS) ; - 1 Return time lenth in Milliseconds. ; Return values .: Success - Return time position in Milliseconds or Hours, Minutes, Seconds (HH:MM:SS) ; Failure - Return 0 and @error 1 ; @error 1 = Invalid Alias ; Author ........: smashly ; ========================================================================================================= Func _Video_TimePos($sAlias, $iTime = 0) Local $iMS If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) _mciSendString("set " & $sAlias & " time format ms") $iMS = _mciSendString("status " & $sAlias & " position", 255) If Not $iTime Then Return _MSToHMS($iMS) If $iTime Then Return $iMS EndFunc ;==>_Video_TimePos ; #FUNCTION# ============================================================================================== ; Name...........: _Video_Volume ; Description....: Turn the video audio volume up or down. ; Syntax.........: _Video_AudioVolume($sAlias[, $iVolume = 100]) ; Parameters ....: $sAlias - Alias name returned by _Video_Open. ; $iVolume - 0 = Min, 100 = Max ; Return values .: Success - Return 1 and @error 0 ; Failure - Return 0 and @error 1~2 ; @error 1 = Invalid Alias ; @error 2 = Invalid Volume ; @error 3 = MCI failed to set volume ; Author ........: smashly ; ========================================================================================================= Func _Video_Volume($sAlias, $iVolume = 100) Local $iRet, $iVol If $sAlias = "" Or StringRegExp($sAlias, "\W|_", 0) Then Return SetError(1, 0, 0) If StringRegExp($iVolume, '\D', 0) Then Return SetError(2, 0, 0) If $iVolume >= 100 Then $iVol = 1000 ElseIf $iVolume <= 0 Then $iVol = 0 ElseIf $iVolume > 0 And $iVolume < 100 Then $iVol = $iVolume * 10 EndIf $iRet = _mciSendString("setaudio " & $sAlias & " volume to " & $iVol) If $iRet = 0 Then Return SetError(0, 0, 1) Else Return SetError(3, 0, 0) EndIf EndFunc ;==>_Video_Volume ;========================================================================================================== ; Internal use functions beyond this point ;========================================================================================================== ; #FUNCTION# ============================================================================================== ; Name...........: _MSToHMS ; Description....: Converts Milliseconds to Hours, Minutes, Seconds ; Syntax.........: _MSToHMS($iMS) ; Parameters ....: $iMS - Milliseconds to convert ; Return values .: Success - Returns Hours, Minutes, Seconds (HH:MM:SS) ; Author ........: smashly ; ========================================================================================================= Func _MSToHMS($iMS) Local $iHours = 0, $iMins = 0, $iSecs = 0 If Number($iMS) > 0 Then $iMS = Round($iMS / 1000) $iHours = Int($iMS / 3600) $iTicks = Mod($iMS, 3600) $iMins = Int($iMS / 60) $iSecs = Round(Mod($iMS, 60)) Return StringFormat("%02i:%02i:%02i", $iHours, $iMins, $iSecs) EndIf Return StringFormat("%02i:%02i:%02i", $iHours, $iMins, $iSecs) EndFunc ;==>_MSToHMS ; #FUNCTION# ============================================================================================== ; Name...........: _RandomStr ; Description....: Creates a random string ; Syntax.........: _RandomStr([$iLen = 10]) ; Parameters ....: $iLen - Length of string to return ; Return values .: Success - Returns a string of random letters (a~z) ; Author ........: RazerM ; ========================================================================================================= Func _RandomStr($iLen = 10) Local $sTmp = '' For $i = 1 To $iLen $sTmp &= Chr(Random(97, 122, 1)) Next Return $sTmp EndFunc ;==>_RandomStr ; #FUNCTION# ============================================================================================== ; Name...........: _mciDeviceExists ; Description....: Check if a MCI Device type exists ; Syntax.........: _mciDeviceExists($sDevice) ; Parameters ....: $sDevice - Name of MCI Device type to check for ; Return values .: Success - Return 1 if MCI Device type exists and @error 0 ; Failure - Return 0 if MCI Device type does not exist and @error 1~2 ; @error 1 = No matching MCI Device type found. ; @error 2 = Failed to list any MCI Device types ; Author ........: smashly ; ========================================================================================================= Func _mciDeviceExists($sDevice) Local $aDT = _mciListDevices() If @error Then Return SetError(2, 0, 0) For $idx = 1 To $aDT[0] If $sDevice = $aDT[$idx] Then Return SetError(0, 0, 1) Next Return SetError(1, 0, 0) EndFunc ;==>_mciDeviceExists ; #FUNCTION# ============================================================================================== ; Name...........: _mciListDevices ; Description....: List all found MCI Device types in an array ; Syntax.........: _mciListDevices() ; Parameters ....: None ; Return values .: Success - Return 1D array of found MCI Device types and @error 0 ; array[0] Number of MCI Device types found ; array[n] MCI Device type name ; Failure - Return empty 1D array and @error 1 ; Author ........: smashly ; ========================================================================================================= Func _mciListDevices() Local $iMD, $sTmp $iMD = _mciSendString("sysinfo all quantity", 255) If StringIsInt($iMD) Then For $idx = 1 To $iMD $sTmp &= _mciSendString("sysinfo all name " & $idx, 255) & Chr(0) Next Return SetError(0, 0, StringSplit(StringTrimRight($sTmp, 1), Chr(0))) EndIf Return SetError(1, 0, StringSplit($sTmp, Chr(0))) EndFunc ;==>_mciListDevices ; #FUNCTION# ============================================================================================== ; Name...........: _mciSendString ; Description....: ; Syntax.........: _mciSendString($string[, $iLen = 0]) ; Parameters ....: $string ; $iLen ; Return values .: ; Author ........: RazerM ; ========================================================================================================= Func _mciSendString($string, $iLen = 0) Local $iRet $iRet = DllCall("winmm.dll", "int", "mciSendStringA", "str", $string, "str", "", "long", $iLen, "long", 0) If Not @error Then Return $iRet[2] EndFunc ;==>_mciSendString
  5. 1 point
    estou reformulando um script que fecha um programa e abre outro mas quero fazer o seguinte escolher a tecla para fechar um e abrir outro e fechar o script em um arquivo.ini ou seja escolher no .ini as teclas que vou usar no programa,mas fiquei sem ideias alguém pode ajudar? CORRIGINDO CONSEGUI FAZER FUNCIONAR APENAS MUDEI PARA Const $read_comand2 = IniRead("MUSICBOX.ini", "PARAMETRO", "TECLA_TROCA", "") Const $read_comand3 = IniRead("MUSICBOX.ini", "PARAMETRO", "SAIR", "") SÓ LEMBRANDO O BELINI POSTOU ESSE SCRIPT HA UM TEMPO ATRÁS NO ARCADEBR EU SÓ DEI UMA MELHORADA NELE FileChangeDir(@ScriptDir) If Not FileExists("MUSICBOX.ini") Then;cria o ini caso não tenha ini     IniWrite("MUSICBOX.ini", "EXECUTAVEL1", "NOME", "");cria alocação boot e numero     IniWrite("MUSICBOX.ini", "EXECUTAVEL2", "NOME", "");cria alocação boot e numero     IniWrite("MUSICBOX.ini", "PARAMETRO", "PASTA", "");cria alocação boot e numero     IniWrite("MUSICBOX.ini", "PARAMETRO", "TECLA_TROCA", "");cria alocação boot e numero     IniWrite("MUSICBOX.ini", "PARAMETRO", "SAIR", "");cria alocação boot e numero endif CONST $read_comand2 = IniRead("MUSICBOX.ini", "PARAMETRO", "TECLA_TROCA", "") CONST $read_comand3 = IniRead("MUSICBOX.ini", "PARAMETRO", "SAIR", "") global $read_comand4 = IniRead("MUSICBOX.ini", "EXECUTAVEL1", "NOME", "") global $read_comand5 = IniRead("MUSICBOX.ini", "EXECUTAVEL2", "NOME", "") global $read_comand6 = IniRead("MUSICBOX.ini", "PARAMETRO", "PASTA", "") HotKeySet($read_comand2 ,"close_open"); instala a hotkey usando no .ini HotKeySet($read_comand3 ,"fecha_script"); instala a hotkey usando a tecla "F" ShellExecute($read_comand5, "", $read_comand6); mude o nome do programa e o endereço caso necessário ; rotina de loop que mantém o script aberto. While 1 sleep(200); dá um intervalo de 200 milisegundos wend func close_open(); troca o programa quando a tecla "X" for pressionada if ProcessExists($read_comand4) Then; verifica se o advmame esta aberto ProcessClose($read_comand4); fecha 1 e abre o 2 ShellExecute($read_comand5, "", $read_comand6); mude o nome do programa e o endereço caso necessário else ProcessClose($read_comand5); fecha o 2 e abre o 1 ShellExecute($read_comand4, "", $read_comand6); mude o nome do programa e o endereço caso necessário endif endfunc func fecha_script(); fecha o script  HotKeySet($read_comand2 ,"close_open"); remove a hotkey usando no .ini HotKeySet($read_comand3 ,"fecha_script"); remove a hotkey usando no .ini Exit; encerra o script endfunc
  6. 1 point
    Olá, Compartilhando um script de efeitos com direct3D9 usando a biblioteca au3Irrlicht2.au3 #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Res_Description=Background Sample #AutoIt3Wrapper_Res_Fileversion=1.0.0.0 #AutoIt3Wrapper_Res_ProductVersion=1.0.0.0 #AutoIt3Wrapper_Res_LegalCopyright=rcneto #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.5 Author: Rodrigo Chaves Script Function: Background Sample 07/2019 #ce ---------------------------------------------------------------------------- #include "au3Irrlicht2.au3" Opt("MustDeclareVars", True) HotKeySet("{ESC}", "_exit") Dim $camera Dim $cameraNode Dim $cloudTexture Dim $cloudNode Dim $aVector3Df[3] SplashTextOn('Background Sample', 'Por favor aguarde - Iniciando audio', 350, 110, -1, -1, 32) SoundPlay(@ScriptDir & '\Media\audio.mp3') Sleep(3000) SplashOff() _irrStart($irr_Edt_Direct3D9, 1024, 768, $irr_Bits_Per_Pixel_32, $irr_Windowed, $irr_Shadows, $irr_Ignore_Events, $irr_Vertical_Sync_On) _irrSetResizableWindow($irr_on) _irrSetWindowCaption("Background Sample / Pressione Esc para fechar") $cloudTexture = _irrGetTexture("media/cloud1.bmp") $cloudNode = _irrAddClouds($cloudTexture, 1, 1000, 3100) _irrSetNodeMaterialFlag($cloudNode, $irr_Emf_Fog_Enable, $irr_On) _irrSetNodePosition($cloudNode, 4000, 100, 4000) _irrAddRotationAnimator($cloudNode, 0.05, 0.08, 0.05) $camera = _irrAddCamera(0, 0, 0, 0, 0, 0) $cameraNode = $camera _irrSetNodePosition($cameraNode, 4000, 2000.7, 20000.9) _irrSetCameraFov($cameraNode, 1.55) _irrSetCameraClipDistance($camera, 12000) _irrSetAmbientLight(0.1, 0.1, 0.1) While _irrRunning() _irrBeginScene(130, 130, 255) $aVector3Df = _irrGetNodePosition($cameraNode) _irrDrawScene() _irrEndScene() WEnd _irrStop() Func _exit() _irrstop() Exit EndFunc https://www.youtube.com/watch?v=lo03F6CpXXc&feature=youtu.be O código fonte, biblioteca e arquivos de mídia estão no link abaixo https://1drv.ms/u/s!AnsPM67Cyv4XjJF_gnMKVuSCQdpdig?e=QM0aa8
  7. 1 point
    A explicação do @Manimal é completa. Apenas a título de curiosidade, existe uma mega-power-ultra-fodástica ferramenta, CyberArk, que atua no seguimento de segurança corporativo, fazendo a troca de senhas e muitas outras coisas... E a linguagem que faz todas as automações por trás do CyberArk é... Tharám... A-U-T-O-I-T! @Fui...
  8. 1 point
    Olá AleCruz. Esse acontecimento não é de agora. Esta discussão ocorre faz muitos anos e já rendeu muito "pano pra manga". Existe inclusive um tópico "eterno" no fórum americano sobre isso. Pode acessar aqui: Meus arquivos estão realmente infectados? = https://www.autoitscript.com/forum/topic/34658-are-my-autoit-exes-really-infected/ O que acontece é que o AutoIt é uma ferramenta fantástica e muito poderosa. Tão poderosa que vários criadores de vírus utilizaram (e ainda a utilizam) para criar malwares. Porém a maioria dos programadores em AutoIt, utilizam para fins corretos e funcionais. Mas como sempre, uma pequena quantidade de óleo, suja uma grande quantidade de água! Portanto, junte isso com a "preguiça" da indústria de antivírus de reconhecer este problema, gerou uma situação que estamos vivenciando. Para a indústria de antivirus, todo e qualquer executável de AutoIt é automaticamente marcado como malware. Alguns AVs são mais rigorosos, outros nem tanto. Na prática, nosso produtos decorrentes da compilação dos nosso scripts, são basicamente taxados de vírus! E não tem como resolver isto! Eu pessoalmente, trabalho profissionalmente com AutoIt fazem vários anos, inclusive com várias ferramentas e aplicativos no mercado e todo santo dia, é um pepino para explicar que meu programas não são vírus ou não estão infectados! Ainda mais que um dos meus mercados é o setor público, que fica difícil de achar alguém preparado. Outra ferramenta minha, de segurança digital, que previne e reconhece várias tentativas de acesso de vírus e malwares, sofre muito com o reconhecimento dela mesma como se fosse um malware. Fica muito difícil vc vender uma ferramenta de proteção que os próprios AVs identificam como vírus. Parece que quero enganar todo mundo! E dê-lhe explicação... E isto não ocorre apenas com o AutoIt, vários produtores menores de software (como eu), sofrem constantemente com o "falso positivo". Estes dias, li um post no site Sordum, que possui várias ferramentas interessantes, que a reclamação deles tbm existe. Outro exemplo é a RineSoft onde eles fazem o mesmo questionamento = https://www.rizonesoft.com/is-rizonesoft-software-safe/ Tem vários lugares para vc informar as empresas de AV que seu software é seguro, mas a resposta é lenta e na maioria, não resolve nada. Já tive vários chats e trocas de e-mail com empresas como Avast sobre isso, e a prepotência e arrogância deles é incrível. Outra estupidez é a própria M$ (Microsoft) com seu filtro "SmartScreen", desenvolvido para Windows 10, outra ferramenta além do Windows Defender. Para que seu software seja reconhecido como confiável, basta pagar! E assim por diante... Uma sugestão muito apreciada é vc assinar o seu software com um certificado digital confiável, e enviar uma cópia deste certificado para as empresas de AV para que os mesmos reconheçam seu sotware como seguro. Problemas: não garante nada depende do fabricante do AV em considerar sua empresa como idônea E é caro adquirir um certificado deste modelo aqui no Brasil. Lá fora é super-barato, cerca de U$ 90 por 3 anos. Aqui custa milhares de reais por 1 ano. Dependendo da empresa, isto é inviável. Neste último link da Rizone Software tbm tem uma lista de onde enviar seus softwares para análise dos AVs
  9. 1 point
    Olha um exemplo do _IsPressed. Talvez te ajude #include <Misc.au3> #include <MsgBoxConstants.au3> Local $hDLL = DllOpen("user32.dll"), $pressed = False While 1 Select Case _IsPressed("1B", $hDLL) ExitLoop Case _IsPressed("10", $hDLL) if Not $pressed Then ConsoleWrite("Shift pressionado!" & @CRLF) $pressed = True case Else $pressed = False EndSelect WEnd DllClose($hDLL)
  10. 1 point
    #include <MsgBoxConstants.au3> HotKeySet("a", "ShowMessage") While Sleep(100) Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd Func ShowMessage() HotKeySet("a") ;Remove a Hotkey durante a execução da função MsgBox($MB_SYSTEMMODAL, "", "Testando.") ;Executa qualquer coisa Sleep(1000) HotKeySet("a", "ShowMessage") ;Adiciona novamente a hotkey EndFunc
  11. 1 point
    Foi sim e eu bem achando que eram os pulsos rápidos que estavam travando o programa e na verdade era o reboot do relé que travava o teclado e por isto ficava indicando que estava pressionado o tempo todo.
  12. 1 point
    Ahhh entendi.... (bost* nenhuma kkkk)
  13. 1 point
    Enfim resolvi o problema e não vai acreditar o que era, faltava o diodo IN4007 prá evitar reboot no relé e não tinha visto pois a placa do teclado e o relé ficam dentro de uma caixinha preta pensei que fosse o programa porque o noteiro que está nela é um BV20 que manda pulsos bem mais rápido que o BL700 e por mandar mais rápido os reboots são quase juntos por isto acontecia nele e não acontecia com o BL700.
  14. 1 point
    Legal Belini. Não me toquei da linguagem, estou tão acostumado com inglês que as vezes tenho que me policiar quando indico algo. Obrigado pela lembrança. E que bom que vc achou um outro site/app, que aliás parece muito bom. Comentei do Lotto Sorcerer, pois quando brinquei com análise combinatória uns tempos atrás, eu utilizei ele como base para conferência dos meus scripts. E achei bem legal o que ele fazia, porém era ainda na versão 6. Já está na 9.2. Deve ter mudado um monte! Muttley, eu acredito que ninguém conheça toda a potencialidade de nenhuma linguagem, até porque são muitos comandos e funções. E no AutoIt então? Sem falar nas trocentas funções de terceiros que existem aqui (fora outros locais): https://www.autoitscript.com/wiki/User_Defined_Functions
  15. 1 point
    @manimal achei complicado este derador que vc indicou e também não tem opção de linguagem nele prá colocar em português aí pesquisando encontrei um site que faz o que eu quero mas na versão gartuita gera no máximo 99 combinações prá gerar mais que isto tem que ser assinante veja: https://www.mestredaloteria.com/megasena/gerador.php
  16. 1 point
    _ArrayPermute, _ArrayCombinations... cada vez me surpreendo mais com autoit, quando acho que sei 0,5% da linguagem vcs veem com mais funções. kkkkkk
  17. 1 point
    Olá Everton. Como assim "definida formalmente"? O nome da linguagem é AutoIt, simples assim.
  18. 1 point
    Olá Manimal, poxa uma pena mesmo.. uma compilação efetiva com AutoIT seria o ideial, resolveria a questão da velocidade e dos decompiladores, mais infelizmente com certeza isso não irá acontecer.
  19. 1 point
    Manimal faço das suas palavras as minhas! o AutoIT hoje em dia é sem duvida uma excepcional ferramenta seja pra automação, criação de pequenos e complexos programas.. mas o que na minha opinião poderia ser melhorado é a velocidade te interpretação do código, ou a utilização de Multithreading que já resolveria esta questão também..
  20. 1 point
    Olá Odaylton. Realmente o AutoIt Debugger é muito interessante. Os conceitos de projeto, trabalhar com vários fontes, um debugger integrado à IDE fazem parte da maioria dos ambientes de programação de linguagens mais conhecidas por aí. O fato de ter sido descontinuado não é problema, pois ainda funciona perfeitamente na atual versão do AutoIt. Futuramente? Vamos ver... Minha opinião pessoal é que apesar dos recursos, não me adaptei com ele, mas isto é uma questão de gosto mesmo. Fico um pouco chateado com os desenvolvedores originais, que são fantásticos, mas tem uma visão incorreta de sua própria criação! O AutoIt já foi uma mera ferramenta de automação ou de produção de pequenos scripts e tal, mas hoje sua complexidade e abundância de recursos exige um tratamento bem mais profissional, com uma IDE apropriada, compilação efetiva (para eliminar os problemas de direitos autorais), uma interface para produção de janelas e relatórios, etc... Hoje o AutoIt é uma linguagem madura, sem nada a dever para as outras, mas está sendo mantida em segundo plano por conta desta visão tacanha. É uma pena.
×