Bllee 0 Report post Posted November 21 salut, eu queria saber como chamar a pos x e y de algum objeto desse jeito (mouse.pox,mouse.posy) (pra deixar o codigo mais bonitim) uashdusad Share this post Link to post Share on other sites
carlano 0 Report post Posted November 21 Bom dia,: Você recebe as coordenadas usando a função MouseGetPos() que gera um array com dois dados no índice 0 esta o X e no índice 1 esta o Y exemplo a baixo: $pos = MouseGetPos() $x = $pos[0] $y = $pos[1] Share this post Link to post Share on other sites
Manimal (Adm) 165 Report post Posted November 21 Olá Bllee. Existem vários métodos para nomear variáveis, cada um utiliza o que mais gosta, mas isto é muito pessoal mesmo. Posso recomendar a nomenclatura oficial = https://www.autoitscript.com/wiki/Best_coding_practices#Names_of_Variables Eu normalmente sigo o modelo oficial porque depois para fins de depuração e manutenção, fica bem mais fácil. Em relação aos arrays (ou vetores ou matrizes), ainda prefiro utilizar o comando ENUM para facilitar a visualização do código e deixar mais prático de trabalhar. Até porque se precisar mudar as posições de lugar (inserir ou remover tbm) é mais ácil mudar a linha do ENUM do que mudar todo o código. Exemplo: Local Enum $eX_POS, $eY_POS Local $aPosicao = MouseGetPos() Local $nPontoX = $aPosicao[$eX_POS] Local $nPontoY = $aPosicao[$eY_POS] Outro exemplo: #include <Misc.au3> #include <MsgBoxConstants.au3> Local Enum $eKEY_CODE, $eKEY_DESCRIPTION Local $aKeyboard = [ [ "01", "Left mouse button" ], _ [ "02", "Right mouse button" ], _ [ "03", "Control-break processing" ], _ [ "04", "Middle mouse button (three-button mouse)" ], _ [ "05", "X1 mouse button" ], _ [ "06", "X2 mouse button" ], _ [ "08", "BACKSPACE key" ], _ [ "09", "TAB key" ] ] ... Local $nTecla = CHECK_KEYBOARD() For $nIndice = 0 to UBound($aKeyboard)-1 If $nTecla = $aKeyboard[$nIndice, $eKEY_CODE] Then MsgBox($MB_OK, "Info", "Vc pressionou: " & $aKeyboard[$nIndice, $eKEY_DESCRIPTION]) Next ... Ainda é possível também utilizar o conceito de ESTRUTURAS, mas é um pouquinho mais complexo, mas fica bem parecido com a tua intenção original. Veja um exemplo que o nosso colega Rogrigo Chaves Neto utilizou em um de seus scripts Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted November 27 (edited) Olá, Talvez este código te ajude #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Dim $tSTRUCTPOS = 'struct;int x[256];int y[256];endstruct' Dim $oMouse = DllStructCreate($tSTRUCTPOS) $hWnd_Main = GUICreate("Exemplo", 615, 437, -1, -1) $idBtn_Show = GUICtrlCreateButton('Show Position', 496, 376, 75, 25) GUISetState(@SW_SHOW) While 1 _GetMousePos() $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $idBtn_Show MsgBox(262144+0, 'Show', 'Mouse x = ' & $oMouse.x & @CRLF & 'Mouse y = ' & $oMouse.y) EndSwitch WEnd Func _GetMousePos() Local $_MouseGetPos = MouseGetPos() $oMouse.x = $_MouseGetPos[0] $oMouse.y = $_MouseGetPos[1] WinSetTitle($hWnd_Main, '', 'Exemplo: Mouse x = ' & $oMouse.x & ' - Mouse y = ' & $oMouse.y) EndFunc Edited November 27 by Rodrigo Chaves Neto A estrutura correta deve ser em inteiros Share this post Link to post Share on other sites
Rodrigo Chaves Neto 5 Report post Posted November 27 On 21/11/2019 at 9:27 AM, Manimal said: Olá Bllee. Existem vários métodos para nomear variáveis, cada um utiliza o que mais gosta, mas isto é muito pessoal mesmo. Posso recomendar a nomenclatura oficial = https://www.autoitscript.com/wiki/Best_coding_practices#Names_of_Variables Eu normalmente sigo o modelo oficial porque depois para fins de depuração e manutenção, fica bem mais fácil. Em relação aos arrays (ou vetores ou matrizes), ainda prefiro utilizar o comando ENUM para facilitar a visualização do código e deixar mais prático de trabalhar. Até porque se precisar mudar as posições de lugar (inserir ou remover tbm) é mais ácil mudar a linha do ENUM do que mudar todo o código. Exemplo: Local Enum $eX_POS, $eY_POS Local $aPosicao = MouseGetPos() Local $nPontoX = $aPosicao[$eX_POS] Local $nPontoY = $aPosicao[$eY_POS] Outro exemplo: #include <Misc.au3> #include <MsgBoxConstants.au3> Local Enum $eKEY_CODE, $eKEY_DESCRIPTION Local $aKeyboard = [ [ "01", "Left mouse button" ], _ [ "02", "Right mouse button" ], _ [ "03", "Control-break processing" ], _ [ "04", "Middle mouse button (three-button mouse)" ], _ [ "05", "X1 mouse button" ], _ [ "06", "X2 mouse button" ], _ [ "08", "BACKSPACE key" ], _ [ "09", "TAB key" ] ] ... Local $nTecla = CHECK_KEYBOARD() For $nIndice = 0 to UBound($aKeyboard)-1 If $nTecla = $aKeyboard[$nIndice, $eKEY_CODE] Then MsgBox($MB_OK, "Info", "Vc pressionou: " & $aKeyboard[$nIndice, $eKEY_DESCRIPTION]) Next ... Ainda é possível também utilizar o conceito de ESTRUTURAS, mas é um pouquinho mais complexo, mas fica bem parecido com a tua intenção original. Veja um exemplo que o nosso colega Rogrigo Chaves Neto utilizou em um de seus scripts Muito bom o comando Enum. A forma como o array $aKeyboard é construida lembra bastante a de criação de dicionario $oDictionary = ObjCreate("Scripting.Dictionary") $oDictionary.Add ("01", "Um" ) $oDictionary.Add ("02", "Dois") $oDictionary.Add ("03", "Três") $oDictionary.Add ("04", "Quatro") 1 Share this post Link to post Share on other sites