Ir para conteúdo


Belini

Cadastrado: 24 Ago 2011
Offline Última atividade: Ontem, 08:57
*****

Tópicos que criei

Impedir que programa seja fechado!

13 junho 2017 - 08:26

Alguém sabe como abrir um programa como se fosse do sistem e que não aceitasse ser fechado a força? Queria que só fechasse se o comando fizesse parte dele tipo enviou ESC fecha mas se tentar fechar por outro meio não ter como!


Problema com mensagem usando GDIPlus

02 maio 2017 - 10:02

Peguei um exemplo que mostra uma imagem e um um texto usando GDIPlus mas encontrei 3 problemas e só consegui resolver um deles, o primeiro era limpar a mensagem anterior para mostrar a próxima e este eu resolvi ocultando e depois mostrando novamente a GUI filha porém o segundo que é trocar a cor da fonte e o 3º que é um serilhado branco em algumas letras também não consegui tirar, segue o script para teste!

  1.  
  2. #include <guiconstantsex.au3>
  3. #include <windowsconstants.au3>
  4. #include <gdiplus.au3>
  5.  
  6. Global $hGUI, $hImage, $hGraphic, $hImage, $conta
  7.  
  8. _GDIPlus_Startup()
  9. ; Load PNG image
  10. $hImage = _GDIPlus_ImageLoadFromFile(StringReplace(@AutoItExe, "autoit3.exe", "Examples\GUI\Torus.png"))
  11. $iWidth = _GDIPlus_ImageGetWidth($hImage)
  12. $iHeight = _GDIPlus_ImageGetHeight($hImage)
  13.  
  14. ; Create GUI
  15. $hGUI = GUICreate("Show PNG", $iWidth, $iHeight, -1, -1, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST)
  16. $hGUI_child = GUICreate("", $iWidth, $iHeight, 0, 0, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_TOPMOST + $WS_EX_MDICHILD, $hGUI)
  17. $hButton = GUICtrlCreateButton("Texto", $iWidth * 2 / 3, $iHeight * 2 / 3, 40, 40)
  18. GUISetBkColor(0xFFFFFF, $hGUI_child)
  19. GUISetState(@SW_SHOW, $hGUI)
  20. GUISetState(@SW_SHOW, $hGUI_child)
  21. SetTransparentBitmap($hGUI, $hImage)
  22. _WinAPI_SetLayeredWindowAttributes($hGUI_child, 0xFFFFFF, 0xFF)
  23.  
  24. $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI_child)
  25. _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
  26. _GDIPlus_GraphicsDrawString($hGraphic, "GDI+ Full Transparency", 0, $iHeight / 2 - 20, "Arial", 12)
  27.  
  28.  
  29. While 1
  30. $nMsg = GUIGetMsg()
  31. Switch $nMsg
  32. Case $GUI_EVENT_CLOSE
  33. _GDIPlus_ImageDispose($hImage)
  34. _GDIPlus_GraphicsDispose($hGraphic)
  35. _GDIPlus_Shutdown()
  36. Case $hButton
  37. ;GUISetState(@SW_HIDE, $hGUI_child); Oculta para limpar a mensagem anterior (retire o ponto e vírgulas para limpar)
  38. $conta += 1
  39. GUISetState(@SW_SHOW, $hGUI_child); Mostra novamente a mensagem
  40. _GDIPlus_GraphicsDrawString($hGraphic, "TESTANDO: " & $conta, 0, $iHeight / 2 - 20, "Arial Black", 16)
  41. EndSwitch
  42. WEnd
  43.  
  44. Func SetTransparentBitmap($hGUI, $hImage, $iOpacity = 0xFF)
  45. Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
  46. $hScrDC = _WinAPI_GetDC(0)
  47. $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
  48. $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
  49. $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
  50. $tSize = DllStructCreate($tagSIZE)
  51. $pSize = DllStructGetPtr($tSize)
  52. DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
  53. DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
  54. $tSource = DllStructCreate($tagPOINT)
  55. $pSource = DllStructGetPtr($tSource)
  56. $tBlend = DllStructCreate($tagBLENDFUNCTION)
  57. $pBlend = DllStructGetPtr($tBlend)
  58. DllStructSetData($tBlend, "Alpha", $iOpacity)
  59. DllStructSetData($tBlend, "Format", 1)
  60. _WinAPI_UpdateLayeredWindow($hGUI, $hMemDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
  61. _WinAPI_ReleaseDC(0, $hScrDC)
  62. _WinAPI_SelectObject($hMemDC, $hOld)
  63. _WinAPI_DeleteObject($hBitmap)
  64. _WinAPI_DeleteDC($hMemDC)
  65. EndFunc ;==>SetTransparentBitmap
  66.  

Obs: O serilhado ficou visível na letra "S, O" e no número "1"


Remapear teclas

27 abril 2017 - 08:34

Alguém sabe como alterar no registro para trocar uma letra por outra? Tipo apertei "P" e responde como se tivesse apertado "A" por exemplo!

 

OBS: Conheço dois programas que fazem isto o remapkey e o sharpkeys mas queria fazer em Autoit.


Autoit em tablet funciona?

13 março 2017 - 01:17

Alguém sabe dizer se os programas feitos em Autoit rodam em tablet que tem win 8 ou win10 instalado?

Alterar letra e ativar partição

05 outubro 2016 - 02:57

Preciso ativar uma partição e também trocar a letra dela, já faço isto indo no painél de controle e em gerenciamento de disco mas queria ver se dá prá fazer usando Autoit! Alguém sabe se é possível e como fazer isto?