Jump to content

Pedro Pinheiro

Membros
  • Content count

    266
  • Joined

  • Last visited

  • Days Won

    12

Pedro Pinheiro last won the day on July 4 2018

Pedro Pinheiro had the most liked content!

Community Reputation

44 Bom

2 Followers

About Pedro Pinheiro

  • Rank
    Membro Nível 2
  • Birthday 12/01/1991

Profile Information

  • Gender
    Male
  • Location
    Brazil

Recent Profile Visitors

1,528 profile views
  1. Abrir vídeo em tela cheia usando UDF Video.au3

    Como você usa o VLC, criando um objeto no form e exigindo que o programa esteja instalado no PC, ou usando só a DLL dele diretamente sem a necessidade de instalar nada externo?
  2. Abrir vídeo em tela cheia usando UDF Video.au3

    Fullscreen que você fala é usando o _Video_play com o valor 1 na segunda variável para abrir em tela cheia? E ao abrir em tela cheia ele completar as bordas? Eu não me lembro muito bem, muito tempo atrás eu tinha reparado que no windows xp o video não completava a tela, ficava com umas bordas preta, aí testando no windows 10 o video ficava esticado na tela toda. Acredito que mexendo nas configurações do decoder que eu instalei no PC, eu consegui esticar os vídeos no windows xp, aí depois eu nem mexi mais. Se não funcionar, tenta criar uma função nova na UDF com o '_mciSendString("put movie window at "...' para reposicionar o vídeo na janela. Foi em alguma dessas opões aq \/ Editado: Não tenho certeza, mas pode ser aqui. Aspect Ratio.
  3. Abrir vídeo em tela cheia usando UDF Video.au3

    Para ocupar a tela toda é na configuração do codec, já testei aqui quanto tava mexendo, sabe quando você abre o vídeo e la no task bar do windows aparece um icone? Lá vc configura se o vídeo vai esticar ou não. Isso se vc não definir o AspectRatio do vídeo na janela da execução.
  4. É porque na linha 89 você adiciona um valor sequencial sempre que é adicionado um novo elemento na tabela. " $id= $id + 1" e sempre que você adiciona um novo item, ele segue a referencia da variável $id, até aí tudo bem, mas na hora de deletar um item da tabela você simplesmente exclui um item selecionado sem remover o valor da variável e mesmo removendo o valor da variável, o item selecionado pode ser que não seja sequencial como está na variavel $id. Exemplo (linha 89): você adiciona 1 item novo $id=1 $id=2 $id=3 $id=4 Aí você resolve deletar o item 2, a variavel $id continuará somando o valor 1 . Ao invés de usar a variável $id eu coloquei o _GUICtrlListView_GetItemCount para ler quantas linhas tinham na ListView e adicionar +1 de acordo com a quantidade, então se você deletar uma linha, a função que eu citei ali vai ter um valor exato de itens na lista. #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <MsgBoxConstants.au3> #include <WinAPI.au3> #include <StringConstants.au3> #include <Array.au3> #include <GuiListBox.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 612, 480, 192, 154) $MenuItem1 = GUICtrlCreateMenu("&Arquivo") $MenuItem2 = GUICtrlCreateMenuItem("Salvar Ctrl+S", $MenuItem1, $SS_CENTER) $MenuItem4 = GUICtrlCreateMenuItem("Carregar Ctrl+O", $MenuItem1, $SS_CENTER) $MenuItem3 = GUICtrlCreateMenuItem("Salvar Como Shitft+Ctrl+S", $MenuItem1, $SS_CENTER) $Group1 = GUICtrlCreateGroup("", 21, 8, 569, 97, $SS_CENTER) $Input1 = GUICtrlCreateInput("ID COR", 122, 32, 97, 21, $SS_CENTER) $Input2 = GUICtrlCreateInput("REGIÃO", 138, 64, 249, 21, $SS_CENTER) $Input3 = GUICtrlCreateInput("Label", 264, 30, 121, 21, $SS_CENTER) $Label1 = GUICtrlCreateLabel("Label", 232, 32, 30, 17, $SS_CENTER) $Button1 = GUICtrlCreateButton("Capturar Cor", 42, 30, 75, 25, $SS_CENTER) $Button2 = GUICtrlCreateButton("Capturar Região", 42, 62, 91, 25, $SS_CENTER) $Button3 = GUICtrlCreateButton("ADD", 442, 24, 113, 33) $Button5 = GUICtrlCreateButton("Delet", 442, 64, 113, 33) $Group2 = GUICtrlCreateGroup("Editar ID selecionado", 8, 384, 601, 57, $SS_CENTER) $Input7 = GUICtrlCreateInput("ID", 10, 402, 40,21, $SS_CENTER) $Input4 = GUICtrlCreateInput("COR", 51, 402, 121, 21, $SS_CENTER) $Input5 = GUICtrlCreateInput("REGIÃO", 173, 402, 249, 21, $SS_CENTER) $Input6 = GUICtrlCreateInput("LABEL", 423, 402, 121, 21, $SS_CENTER) $Button4 = GUICtrlCreateButton("\/", 544, 400, 30, 25, $SS_CENTER) $Button6 = GUICtrlCreateButton("/\", 574, 400, 30, 25, $SS_CENTER) ; Add column ;~ Global $id = Int(0) $List1 = GUICtrlCreateListView("",5, 120, 601, 253, $SS_CENTER) _GUICtrlListView_AddColumn($List1, "ID",40) _GUICtrlListView_AddColumn($List1, "COR",100) _GUICtrlListView_AddColumn($List1, "COORDENADA",305) _GUICtrlListView_AddColumn($List1, "LABEL",150) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MenuItem2 MsgBox($MB_SYSTEMMODAL, "ctrl + s", "Nothing Here",1) Case $MenuItem3 MsgBox($MB_SYSTEMMODAL, "shift+ctrl s", "Nothing Here",1) Case $MenuItem4 MsgBox($MB_SYSTEMMODAL, "ctrl + o", "Nothing Here",1) Case $Button1 MsgBox($MB_SYSTEMMODAL, "Capturar cor", "Aperte espaço para capturar a cor") GUICtrlSetData($Input1,MouseColor()) Case $Button2 MsgBox($MB_SYSTEMMODAL, "capturar região", "Aperte espaço para capturar a posição inicial") local $mouse = MouseGetPos() $x_init = $mouse[0] $y_init = $mouse[1] MsgBox($MB_SYSTEMMODAL, "capturar região", "Aperte espaço para capturar a posição final") local $mouse = MouseGetPos() $x_end = $mouse[0] $y_end = $mouse[1] GUICtrlSetData($Input2,$x_init&','&$y_init&' ; '&$x_end&','&$y_end) Case $Button3 _GUICtrlListView_AddItem($List1, _GUICtrlListView_GetItemCount ( $List1 )+1, 1) ; id _GUICtrlListView_AddSubItem($List1, _GUICtrlListView_GetItemCount ( $List1 )-1, GUICtrlRead($Input1), 1, 1) ;cor _GUICtrlListView_AddSubItem($List1, _GUICtrlListView_GetItemCount ( $List1 )-1, GUICtrlRead($Input2), 2, 1) ;coordenada _GUICtrlListView_AddSubItem($List1, _GUICtrlListView_GetItemCount ( $List1 )-1, GUICtrlRead($Input3), 3, 1) ;label ;~ $id= $id + 1 Case $Button4 $Item = _GUICtrlListView_GetSelectedIndices($List1) $Sid = _GUICtrlListView_GetItem($List1, Number($Item),0) $Scor = _GUICtrlListView_GetItem($List1, Number($Item),1) $Scord = _GUICtrlListView_GetItem($List1, Number($Item),2) $Slabel = _GUICtrlListView_GetItem($List1, Number($Item),3) ; get info GUICtrlSetData($Input7,$Sid[3]) GUICtrlSetData($Input4,$Scor[3]) GUICtrlSetData($Input5,$Scord[3]) GUICtrlSetData($Input6,$Slabel[3]) Case $Button5 _GUICtrlListView_DeleteItemsSelected($List1) Case $Button6 ; give back inf if GUICtrlRead($Input7) <> "ID" Then _GUICtrlListView_SetItem($List1, GUICtrlRead($Input4), GUICtrlRead($Input7),1) ;cor _GUICtrlListView_SetItem($List1, GUICtrlRead($Input5), GUICtrlRead($Input7),2) ;coordenada _GUICtrlListView_SetItem($List1, GUICtrlRead($Input6), GUICtrlRead($Input7),3) ;coordenada EndIf EndSwitch WEnd Func MouseColor() local $mouse = MouseGetPos() Return Hex(PixelGetColor($mouse[0],$mouse[1]), 6) EndFunc
  5. Duvida Visualizador De Fotos

    _GUICtrlListView_GetSelectedIndices Procura no help aí _GDIPlus_BitmapCreateFromMemory. Não quer criar nada em GDI? procure por _GDIPlus_BitmapCreateFromFile e veja o ultimo exemplo de como você pode fazer tudo no GDI e jogar para o elemento. #include <GDIPlus.au3> #include <GUIConstantsEx.au3> Example() Func Example() _GDIPlus_Startup() ;initialize GDI+ Local Const $iWidth = 300, $iHeight = 300, $iBgColor = 0xFFE8FF ;$iBgColor format RRGGBB Local $hGUI = GUICreate("GDI+ Example (" & @ScriptName & ")", $iWidth, $iHeight) ;create a test GUI GUISetBkColor($iBgColor, $hGUI) ;set GUI background color GUISetState(@SW_SHOW) Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;create a graphics object from a window handle Local $hBitmap = _GDIPlus_BitmapCreateFromMemory(BinGIFImage()) ;load binary saved GIF image and convert it to GDI+ bitmap format Local $iW = _GDIPlus_ImageGetWidth($hBitmap), $iH = _GDIPlus_ImageGetHeight($hBitmap) _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, ($iWidth - $iW) / 2, ($iHeight - $iH) / 2) ;display image in GUI Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ;cleanup GDI+ resources _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_Shutdown() GUIDelete($hGUI) EndFunc ;==>Example Func BinGIFImage() ;test GIF image converted to a binary string Local $sBinGIFImage = '0x47494638396144004700F70000FFFFFF1831711C357D182D6D1C3982182D691C35791C3986CACACA1831751C3D9614246118316D14286914357D1835791C398A183575204192142D65C2C2C2BE9296142459203D92AEAAAEC69A9AB2B2B6BAB6B6CACACEBEAA41142D7520398A395D9618358614317DA29E9E1028751C3D8A0C2455797979A27D7918316941699ECEA2A23D4955101C4955595961656100041C86828214358E182861B6A23DEBEBEBBEBEBE142D71E7B2B220419EB28E8E10246D2D3959DFA6AA10245D8E8A8EA29641696969CAB241202D49082065C6C6CA0C1C516165556979927D61616186B2183179AAAAAAC6C6C2969296DBDBDF243D718A71712031591C3582DFAEAE8E7D86A2A6A6314579866969AA828214285D20316910246592928E1031860410353D5D92F3F3F328499A14399A14203D3539497D754986868E0C2059A28282E3E3E3081024AE9A3D967171454545355992494D61AE8A8E7175797D869ED7A2A26555554D4D51B69296DBD7D7394969928A4D555D65D7A6AA8A7D39142855CAA6AA203982EBCACE5D6569AE9A359E9E9E715959183161B6C2DF5186C22D4169928A55414965BABABE615971AE9E9E0C18394559755979AAEBE3DF31498A5179A22439694159A6313128A6964D9EAABEDFBABE314982514924081849495565A696396969610C287D4535352035719682867171557171694571A64D5D861C3D92D2BE41514141DBCACAEFB6BA49393D24459A315586394561082471C6B649614D55B6AA5D1C2D59BE969A3D49717D7959614949CAB2AE514139244186E3C6CAF3EFEB756935797965867D55595D4561758AFBBEC23D659A1C357161551CBAAA49413D456D798A7D8282617DA2141C35000C2820283D24418A79753DE3DFDB24395D9692695D6986283965B2B2B23559968A8279FBFBEF8692AEEFD74D516D96C6B6559A8E45353541A69E5D82615D967D79454531D2BE4D92864561869E14244D554D456D6555393D555D61613159A6B286867592B29E8A351C316DF7FBFBFFC6C665757D1C397D555D7DCECACA1C3979182D71BEC2CE4539206D611C866561FFFFFF21F904010000FF002C00000000440047000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710233E74674CA2C58B08C5E4B8900F16C68F1651697C152011C8930E977DD3A6F100CA970BC5C9C92166D92431307316540149C2AB1CDE64EA1CFA2FDA87483968CE01878E684E246A7E591A9369DBBE664E5F669254E357264BD3BAE2819715243C0A3FAA90DA45CF519518562894FDA8A451851E3DA8E0C0DBA34D3D25733156A0A32990AFC281FED02115F862333AACE6593A24F550183EB71A5BAC42C7579843785A1D7A52435306249A1F12BB1567452B568134E10864184706478C5333248645C70A3E545A151BDE8A' $sBinGIFImage &= '0F9F0C59C645D2BD70CE381D192A00C7419DCA0AE851A200669E905B1B1D59A264FFD171A7C29D3869B0544893663BF7834AD2E878A7AE1096FB5892D4D185FCC77B8555E8E0883AAEF0B2CA81AE8812C31F59CCF15F4255E013060241ACE2CA856E7451430DBBA0F6E0418CFC5243183570D0055C4F90D855261F1AC44D586AE0F1C4346AA8F1C41378C818A3832D0E840D1E1C144101214EFC10430C4E60C0880D08E063458F0229C10436D830614A21B75041051F59D47186154C6060857B1FCE51A413419CB0CB1F155470CB1F8EB473C20F3F10D2548F679C70423B31E0C301051B6CC008051CD810449A319C01A529EDB8C00C0708441A24A44D3212840B413003252EE198B2411191861AAA9056B4C303253D9E3204343130C108A8A246FF4A81065604F185212DBA13CB258F04E1043636C03A2A234CFCA0CC1A5FE4F3E03DB598334B1F6EC44008B0C2526003064E9832C4140494100D18DCF522432DDD74534D19A074C1C4061414E1AE0DD88C10831B054860EF0507BC919A0AD1C880CA37D598730509653033EDA0D6128BE6B6537C7081BD074CD258360294708135937821483B32D8F282BA1BD8400123D8101283324B8883CB14164B700104F69C52960A0F5C60732A1008E0413E071C50C60907DBB001B62E4C708F399E784080C33643207156BD9470EF070404208F008094F0801D203342EB093CC8608A397AA4B0440810A4F28A045364E3943153D82B412A5E3CD04002F6007240098604FF31ED06D83861C703105C318B10476CB1C726D5D4A3C0058038958FD46B07014A0A2CE0220001807C00010F3160808D152FC853C20121E4A20A382C60924C300AACDDF650F55CA1B602F5D4D2411FEB94620FE77B2F01C70818FCC043CF3D8B20CCEE8360E2F0BDBDE8D40C2EA9DC1B0D208B00B345289BEBBD770A273001C7143D0302880022E4314C1F1D4002814F1240103D4C9BBC7F2F014B7051C60D09189037F221488420187000F3018200F610C0120AE086580822040FB3D71440F01228340010AF78C5053E20007DF8410AFA08C0037EE73DADF9E0000448E10113688014A4C30709C89A4F2E20002D80EB24D780C11A5A6080541CC00033184201FF18C0800808200421F0DE01A7600F6EA590850C68413A182000089460028F58C31A6E884318E8900706F0C0AA0650800124E00182B84212CD470001B8F1776D34C00306E087474CE0015080C61A74C8459424E20BCEE045387CD0023F04A000050880084C910C35AED08D6E4CA1000C60802D68E11146B0052F44B10632F4112588384521508002657CA100FA2840031409095528220492A42424DD28823DB8800B8F20C328DB0087ACB4860A7480430306708D44DC2014B998C52C1E294B01E4037DA1D0830B88900E72E0E0388A220A12B290811564200EF220A6191251' $sBinGIFImage &= '8A0ECC2219BF73A32C45100C458002141D580711E0E0CD1554801CA81A0A12DE91FF810CD4E116A318C004A4C1860E744008C110813A2949497B2842151DA0011086D18834446105B7408153908002D69021035018400358400321084118906428431F600045449406D2684414D8B18238A0603943B1863FB2F38524E0A2003358C0223CE10903A4F4014865E812842104894A610FEC18421AFC5108A750A20E3B8506341800542D34C0032260E94A2380D40788E00542D0831ED8C0834E7CA10EE4488237B2428946D022099C40A416B45080049075AC11202B4BDBF182048C420F7048072D0AA18BB9CEC50EC0E0C43576E003BE06E0AF728C4002361BD80878C00309F040256231047570E21E8808CC30E2818C3E9881053E48A45FCBBAD900FF6CF6B6B5D5470386800C7E78642E8860413FFAF00970B821B60CB02D529790800038D7B9B7752E5787C08974FC762E9740C627CEB10534F035B99BBD022E3C10007DDCE0B9CF256201A4A08E4E5C372B60E0871DCC30081E547688B6F5401E30510912546211E7452F03C8A88572E432302A4807170A60063BA0C102654CAE7E69908B2300C11301962E570B5060673C2230C630C1041A90026A5800C22918803E46E10920B08106A5B80111931B00F572D80816480788455C8009CCC0027C2D803C4A01840EB0E1C87990F18C67ACD774580057733184052640E519F821C80CA8C41ECC70641A80A312FA604098990CD47418410B08DEEB0C66A0852B237269C0B258041BCE710433B840C9649E409BAFA002CDC0020A50D0420BA6FCE61BC0810D89D8C10EE4B1641B4FC0022A482D734E01060BC416913758443B1AA0CA05AC79060D6840507D9082147C48056F28B53C183D80141862132088B5AC63FD069941E9D6B84E484000003B' Return Binary($sBinGIFImage) EndFunc ;==>BinGIFImage
  6. Duvida Visualizador De Fotos

    Transformando em binário e lendo com _GDIPlus_BitmapCreateFromMemory ou usando o fileInstall e jogando para o diretório temporário "@temp"
  7. Duvida Visualizador De Fotos

    Aquele exemplo que eu te passei já tem isso tudo, é só você usar label ao invés de botão.
  8. _FileListToArray Dúvida.

    Da uma olhada aqui
  9. A lista pode ser criada com uma Array, você poderá criar quantas listas quiser e na imagem abaixo em "Informações" na linha Pasta Selecionada você pode selecionar as listas apertando F6 e F7. Eu detalhei as variáveis principais e dividi cada sistema em uma include diferente. Criei também um SubMenu que cria uma listagem em cima da atual, para abrir o subMenu é só pressionar F4 ou F8. Programei a lista principal para salvar o item selecionado caso você troque de item Ex: Seleciona o item 100 da "lista 1" e aperta F7 para ir na "lista 2", quando você apertar F6 para voltar na "lista 1" ela estará no item 100. Cada lista salva sua posição selecionada. - Preciso de dicas para interface gráfica (Sdl é bom, mas não achei nenhuma UDF eficaz que coloque Textos e Imagens na janela, se alguém souber). - Ao abrir o programa você terá de selecionar pelo menos uma pasta para criar uma lista. - Eu deixei o projeto aberto no GitHub para colaboradores. https://github.com/pedrowarlock/FrontEnd
  10. Multi-thread em autoit

    Ler as teclas não é problema (joystick), eu já faço isso direto no loop com a winmm.dll, o problema é reproduzir videos sem engasgar o loop principal, o adlib ajuda, mas essa divisão que o código faz causa travamento, o único modo que eu achei foi responsabilizando outros programas para reprodução de vídeos EX: Windows Media Player em um Object Internet Explorer no programa, mas isso de responsabilizar programas de terceiros da muito problema
  11. Capturar tela de vídeo

    O MciSendString deveria capturar frame de vídeo. Eu tentei aqui _mciSendString('capture mpegvideo as "C:\image.jpg" at destination'), mas nem funcionou, estranho.
  12. Multi-thread em autoit

    Acho que pode ser por causa da configuração da janela que o vídeo está sendo executado, eu tive esse problema quando fiquei testando várias estilos na janela. Olha o outro ali, aquele que usa directShow também, só que ele é todo em autoit ao invés de ser na DLL
  13. Multi-thread em autoit

    Eu fiz esse programa aqui (postei o vídeo ali em baixo). Basicamente ele abre um vídeo cada vez que eu seleciono um item novo, a média de tamanho do vídeo é de 1~3 megas, isso dá +- 200 milésimos usando HD. A unica opção que eu achei foi abrir o vídeo em um adlib, mas mesmo lá o programa da uma travadinha quando ele for carregar. a) Não posso pré carregar já que a seleção de reprodução é definido pelo usuário. b) Eu não consegui executar um arquivo de vídeo direto da memória, a quantidade de arquivos é gigantesca para jogar na memória. d) Re-renderização...a demora na execução é baseado na velocidade de leitura do HD, então se eu ler e renderizar, mais tempo perdido "Qual função que vc está usando para mostrar os vídeos?" Estou com 3 em teste: "DSEnginer.dll" feita por um usuário no forum americano. (usando essa por enquanto, não achei nenhum bug nela) DirectShow, que é básicamente a mesma coisa do DSEnginer, mas tem uns pequenos bugs de SO para SO. winmm.dll, a dll que reproduz vídeos.
  14. Multi-thread em autoit

    Capturas de teclas de joysticks sem delay para manter a precisão e reprodução de vídeo sem que a leitura do arquivo trave a execução do programa. No caso do vídeo eu uso o adlib, mas meio que o programa sofre um pouco ao ler o arquivo, isso mais pela velocidade de leitura do HD.
  15. Multi-thread em autoit

    Eu não manjo muito de multi-thread, mas alguém sabe se tem como fazer no autoit? Queria executar uma função que possui um delay de 1000ms, mas meu código não pode ter esse delay. Com o adlib eu meio que vou chamar a função toda hora sem necessidade.
×