Jump to content

Belini

Administradores (Adm)
  • Content count

    2,067
  • Joined

  • Last visited

  • Days Won

    105

Belini last won the day on December 19 2019

Belini had the most liked content!

Community Reputation

239 Excelente!

About Belini

  • Rank
    Administrador
  • Birthday 08/25/1968

Profile Information

  • Gender
    Male
  • Location
    Minas Gerais

Recent Profile Visitors

11,588 profile views
  1. @Luigi e @Manimal Com as alterações que fiz na minha Gif pude usar a UDF que vc's indicaram e agora não dá mais oscilações na tela, obrigado pela indição da UDF que deram.
  2. @Luigi fui ver aqui e usando este exemplo que postei mesmo colocando o redimensionamento não vai servir pois precisa estar em loop ou usar um adilib para funcionar, vc tem alguma indicação de UDF que dê para determinar o tamanho que a gif vai ficar na GUI e que dê para controlar a velocidade de troca dos quadros?
  3. _diskGetSerialDll()

    Que bom que deu certo aí prá vc, depois vou fazer testes aqui com o windows congelado também.
  4. O script que eu queria modificar peguei aqui https://www.autoitscript.com/forum/topic/81490-func-afying-gif-animation/ e o original dele além de poder controlar a velocidade da gif também se move na tela, seria bem interessante se conseguisse adicionar a função de redimensionamento para poder usar ele também. Script + gif de exemplo Gif.rar
  5. _diskGetSerialDll()

    Qual parte dele vc alterou para conseguir retornar o serial de HD com deepfreeze instalado?
  6. Acaba que desmembrei a gif e editei os quadros daí deu prá fazer a animação com .bmp mesmo. #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $hGUI, $pic_img, $conta = 1 $hGUI = GUICreate("Animation", 378, 200, -1, -1, $WS_POPUP, $WS_EX_TOPMOST) GUISetBkColor(0xffffff) GUISetState() $pic_img = GUICtrlCreatePic(@ScriptDir & "\image_1.bmp", 0, 0, 378, 200, $SS_CENTERIMAGE) AdlibRegister("Img_animate", 100) HotKeySet("{Esc}", "Sair") While 1 Sleep(1000) WEnd Func Img_animate() $conta += 1 If $conta > 3 Then $conta = 0 GUICtrlSetImage($pic_img, @ScriptDir & "\image_" & $conta & ".bmp") EndFunc ;==>Img_animate Func sair() Exit EndFunc ;==>sair Animation.rar
  7. No seu include do Gdiplus a variável que armazena o endereço da dll deve ter outro nome, no meu aqui abre normal usando a variável $ghGDIPDLL Esta a cada 100 ms pois a função é chamada a cada 20ms mas só muda quando o contador está em 100 na verdade dá prá alterar chamando a cada 100ms e só mudando o estado do contador de 1 para 0 AdlibRegister("Gif_animate", 100) Func Gif_animate() If $count = 1 Then $i += 1 $count = 0 Else $count = 1 If $i = $GFC Then $i = 0 GifDrawFrame($i) EndIf EndFunc ;==>Gif_animate Sim mas neste exemplo que postei não faz diferença se a GUI for 0 x 0 ou 1000 x 1000 a gif sempre será mostrada no tamanho dela que é 300 x 300 justamente o que preciso alterar para poder usar este exemplo que postei, preciso redimensionar a gif para ajustar em GUIS de tamanhos variados Se a minha GUI abrisse sempre com a mesma resolução eu iria mesmo redimensionar a gif para ajustar nela mas esta gui irá abrir de acordo com a resolução de um segundo monitor que pode ser 1280 x 720, 1080 x 1920 ou até mesmo em telão que a resolução pode ser maior ainda.
  8. Tenho várias inclusive esta que vc postou mas todas dão flickers na tela com a imagem que preciso usar, apenas uma deu certo e nela tem como controlar até a velocidade porém não consegui redimensionar para o tamanho que quero colocar na gui, vou postar ela aqui prá ver se tem como adicionar o recurso de redimensionamento que falta ou talvez vc saiba de alguma outra que não dê estas oscilações na tela. #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> #include <WinAPI.au3> Global $hImage, $hBitmap, $hScrDC, $hMemDC, $tSize, $pSize, $tSource, $pSource, $tBlend, $pBlend Global $Gif, $GFC, $GFDC, $pDimensionIDs, $tDL, $count = 0, $i = 0 $hGUI = GUICreate("Gif Animation", 100, 100, 100, 100, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW, $WS_EX_TOPMOST)) GUISetState() $Gif = @ScriptDir & "\Image.gif" GifInit() AdlibRegister("Gif_animate", 20) HotKeySet("{Esc}", "Quit") While 1 sleep(1000) WEnd func Gif_animate() $count +=1 if $count >= 5 then $i += 1 $count = 0 else If $i = $GFC Then $i = 0 GifDrawFrame($i) endif endfunc Func Quit() _GDIPlus_ImageDispose($hImage) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) _GDIPlus_Shutdown() HotKeySet("{Esc}") Exit EndFunc Func GifDrawFrame($i) DllCall($ghGDIPDll, "int", "GdipImageSelectActiveFrame", "ptr", $hImage, "ptr", $pDimensionIDs, "int", $i) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) EndFunc Func GifInit() _GDIPlus_Startup() $hImage = _GDIPlus_ImageLoadFromFile($Gif) $ApW = _GDIPlus_ImageGetWidth($hImage) $ApH = _GDIPlus_ImageGetHeight($hImage) $hScrDC = _WinAPI_GetDC($hGUI) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $tSize = DllStructCreate($tagSIZE) DllStructSetData($tSize, "X", $ApW) DllStructSetData($tSize, "Y", $ApH) $pSize = DllStructGetPtr($tSize) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) DllStructSetData($tBlend, "Alpha", 255) DllStructSetData($tBlend, "Format", 1) $pBlend = DllStructGetPtr($tBlend) $tDL = DllStructCreate($tagGUID) $pDimensionIDs = DllStructGetPtr($tDL) $GFDC = DllCall($ghGDIPDll, "int", "GdipImageGetFrameDimensionsCount", "ptr", $hImage, "int*", 0) DllCall($ghGDIPDll, "int", "GdipImageGetFrameDimensionsList", "ptr", $hImage, "ptr", $pDimensionIDs, "int", $GFDC[2]) $GFC = DllCall($ghGDIPDll, "int", "GdipImageGetFrameCount", "int", $hImage, "ptr", $pDimensionIDs, "int*", 0) $GFC = $GFC[3] EndFunc Gif_Animation.rar
  9. Estou precisando de uma UDF simples mas que funcione bem para colocar gif numa gui, sugestões favor postar aqui.
  10. São códigos usados para identificar a cartela e quantas rodadas vai ter, S são 6 e Q são 4
  11. @Manimal testei usano o comando "VACUUM INTO" e melhorou demais a velcidade para criar o banco de dados, obrigado mais uma vez!
  12. Fiz testes usando a primeira opção e foi super rápido depois abri o banco de dados original no DB Browser for SQLite.exe e realmente ele permaneceu inalterado ou seja funcionou usando a cópia na memória e muitas vezes mais rápido que antes, agora preciso apenas melhorar a velocidade de criação do banco de dados quando os números são sorteados, estou gravando linha por linha vc tem alguma sugestão de como armazenar e gravar várias de uma vez só ou outra solução para diminuir o tempo de criação do banco de dados?
  13. @manimal o que eu preciso é clonar o banco de dados para memória e fazer alterações nele apenas na memória também, não preciso gravar mais nada fisicamente depois que ele estiver carregado na memória porém preciso substituir os números sorteados em todo banco de dados que estiver na memória o outro bd será aberto físicamente quando precisar fazer alterações e o que fizer será salvo nos 2 fisicamente mas isto é fora da hora do sorteio, quando inicia o sorteio os 2 serão fechados com todas alterações que foram feitas e será carregada uma cópia do banco 2 apenas para conferencia dos números sorteados, ou seja terei 2 banco de dados sendo que um contém os dados das cartelas que não vendeu e o outro dados das vendidas aí quando vou cadastrar cartelas abro os dois fisicamente e faço alterações neles, quando inicia o sorteio os dois são fechados e preciso carregar as informações do banco 2 na memória para conferir os números que forem sendo sorteados sendo que preciso substituir o número sorteado por " | " de todo banco de dados mas apenas na memória, vc pode postar um exemplo de como usa o seu banco de dados na memória?
  14. @manimal eu gero as cartelas para serem vendidas antecipadamente e uso os dados que gravei em arquivo ini ou no caso agora no banco de dados para fazer a conferência de todas que foram vendidas e desta forma ninguém passa batido e nem precisa estar presente para concorrer por isto preciso já ter o banco de dados pronto sendo que no primeiro estarão as que não formam vendidas pois apaga a linha dele toda vez que uma cartela é cadastrada e nos outros dois tem todas que estão concorrendo sendoa número 2 usada para conferir os números que sairam e a 3 apenas para consulta, eu sei que se eu não indicar um banco de dados ele será criado na memória só que não quero criar e sim carregar um que já tenho salvo no disco e depois usar ele na memória sem salavar nada no disco. EDITADO: PM-S e PM-Q é a identificação da cartela "S" é quando tem 6 sorteios na mesma cartela e Q" é quando tem apenas 4 sorteios o que vem depois é número daquela cartela e usando este código tenho aceso a todos números contidos naquela cartela para poder fazer a conferência dela.
  15. Como seria para carregar na memória um arquivo .bd do disco e depois fazer todas alterações necessárias durante o tempo que estiver usando sem salvar no disco. #include <SQLite.au3> #include <array.au3> Global $hQuery, $aRow, $sMsg, $sSql, $dados_linha Global $BASE_DB, $cod_cartela, $sorteado, $retarr _SQLite_Startup(@ScriptDir & "\sqlite3.dll") If Not FileExists("database.db") Then $dbn = _SQLite_Open("database.db") _SQLite_Exec($dbn, "CREATE TABLE Dados (Numeros);") For $i = 1 To 10 $dados = "PM-S" & $i & "=02 05 06 08 15 20 23 26 28 30 35 36 38 43 45 47 52 54 55 56 66 68 71 74 75 PM-Q" & $i & " 10" $sql = "INSERT INTO Dados VALUES('" & $dados & "');" ;_Base_Execute($sql) _SQLite_Exec($dbn, $sql) Next Else $dbn = _SQLite_Open("database.db") EndIf $cod_cartela = ' PM-S2002 ' $aResult = _SearchDatabase($cod_cartela); Procurando linha que tem o código da cartela (mostra apenas a linha que tem o código da cartela) If UBound($aResult) > 1 Then $dados_linha = $aResult[1][0]; guardar para gravar nas outras duas _SQLite_Exec($dbn, "DELETE FROM Dados WHERE Numeros= " & "'" & $aResult[1][2] & "'" & ";"); apaga a linha que tem o código da cartela _ArrayDisplay($aResult) Else MsgBox(4096, 'Sem informações', "Nenhuma informação foi encontrada!") EndIf $sorteado = Random(1, 75, 1) If $sorteado <= 9 Then $sorteado = " 0" & $sorteado & " " Else $sorteado = " " & $sorteado & " " EndIf _SQLite_Exec($dbn, "UPDATE Dados set Numeros= replace(numeros, '" & $sorteado & "', ' | ') where Numeros like '%" & $sorteado & "%'"); troca todos números por " | " $aResult = _SearchDatabase(" | "); Procurando linha que tem " | " (mostra todas as linha que tiveram os dados trocados) If UBound($aResult) > 1 Then _ArrayDisplay($aResult) _SQLite_Close() _SQLite_Shutdown() Func _SearchDatabase($sString) Local $sql, $sSql, $aTables, $aResult, $iState Local $tmp1, $tmp2 $sql = "SELECT Numeros, ""Dados"" AS ""table"", rowid FROM ""Dados""" $sSql = "SELECT * FROM (" & $sql & ") WHERE Numeros LIKE '%" & $sString & "%';" $iState = _SQLite_GetTable2d($dbn, $sSql, $aResult, $tmp1, $tmp2) If $iState <> $SQLITE_OK Then Return SetError(@error, 0, $iState) Else Return $aResult EndIf EndFunc ;==>_SearchDatabase
×