Ir para conteúdo


Fábio iGames

Cadastrado: 10 Dez 2015
Offline Última atividade: Ago 17 2017 10:13
-----

Posts que fiz

No tópico: Manipulação de registro 32/64 bits em SO diferentes

24 julho 2017 - 07:33

Como era de se esperar, o nível dos participantes e complexidade das perguntas no fórum está evoluindo, isso é bom!

 

Até onde sei e li, essa é a primeira pergunta desse teor aqui no fórum, se estiver enganado, por favor, me corrijam.

 

E você já parou para pensar o que é desenvolver um script AutoIt para Windows?

Não é somente para a versão de Windows que está rodando na sua máquina, é para várias versões, que inclui:
Windows XP (maioria esmagadora de 32 bits, mas eu mesmo já trabalhei com a 64 bits);

Windows Vista (sei que a maioria é 32 bits, mas não ouso dizer quantos são 64 bits);

Windows Seven

Windows 8

Windows 8.1

WIndows 10

 

Mais versões veja aqui.

 

Aqui nesta página você tem uma ideia das estatísticas.

 

Interessante notar, que Windows 7 e Windows 10, de certa forma estão empatados, com aproximadamente trinta e alguma coisa porcento cada um, somados vão para sessenta e alguma coisa.

 

Isso é interessante, se você quer criar um "script popular", quais são as verões de Windows que mais ocupam fatia de mercado? Windows 7 e Windows 10.

 

No caso o Pedro diz que tem Windows 10, instale uma VM de Windows 7, e assim já tem representada mais da metade das máquinas!

 

Mas e o resto? E os outros sistemas da Microsoft?

Bem... Não quero dar uma resposta marota (não é pessoal, é para todos, inclusive pra mim), mas lá vai:

"Você já ganhou dinheiro suficiente com o seu script no Windows 7 e Windows 10 para pagar o seu tempo investido?

Será que vale a pena investir tempo nos outros sistemas, que já estão dentro da cova esperando que algum mísero humano jogue umas pás de terra em cima?

E talvez quem ainda esteja usando um Windows XP, Vista, seja porque não tem dinheiro para trocar de máquina, e você acha que ele vai gastar dinheiro comprando/alugando o seu script? E mesmo assim você quer desenvolver para um pão duro desses?

Se você respondeu sim, posso lhe pagar R$ 1,00 por hora para trabalhar pra mim?"

 

kkkkkkkkkkkkkk Luigi , pior que tem muita gente que usa Windows XP , no seguimento que Eu , Belini e Pedro desenvolvemos programinhas , praticamente o XP domina ,kkkkkkkkk

 

Se você aumentar um pouquinho esse pagamento pela hora , eu aceito uns trampos que a coisa está feia. rsrsrs

 

Mas brincadeiras a parte , o ideal é fazer o software para uma determinada versão de Windows e pronto , eu mesmo gosto é de testar nas versões e assim posso falar que funciona e pronto , mas isso acaba virando uma loucura , tem aquelas versões básicas tipo Windows 10 Starter , cara recentemente fiz um software que nesse windows simplesmente não funciona.

 

Você clica e nada acontece.... ????? Deve ser como o Manimal falou , falta de uma dll ou está em outro local ou mudou o nome , sei lá.

 

Tem que colocar uma macro e definir qual windows funcionará e colocar alguma mensagem pro usuário falando em qual versão de Windows funciona.

 

É isso , realmente os debates são muitos bons mesmos quando se tem uma galera que já passou por tal experiência , show de bola.


No tópico: Manipulação de registro 32/64 bits em SO diferentes

24 julho 2017 - 07:51

Pedro pode usar de boa que funciona , pelo menos comigo aqui funciona né , mas em todo caso vamos ver se os mais experientes tem uma explicação bem detalhada.

 

Em todo caso faça como eu , teste pelo menos nos Windows XP 32Bits , Windows 7 32/64 Bits , Windows 8 e 8.1 32/64 Bits e Windows 10 32/64 Bits. (O vista nem arrisco instalar kkkk , o 8 já não gosto mas ultimamente tive que testar e deu umas diferenças nele). 

 

Assim você pode tirar sua dúvida.

 

Dá trabalho , mas tenho um ditado bom pra isso , Apressado come cru.

 

-------------------------------

 

É o seguinte , se for sistema 64 Bits , ai pelo que eu já usei aqui , grava em  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node ...

 

Isso porque teoricamente compilei o software para 32 Bits , ou seja funciona em x86 (32 bits)  e x64 (64 Bits) , ai quando manda gravar na Chave e o Sistema Operacional for x64 , ai ele grava em Wow6432Node...

 

Agora se for x86 (32 bits) ai grava Normal sem usar Wow6432Node.


No tópico: WMI & AutoIt

20 julho 2017 - 07:15

Olá, compartilho alguns pequenos scripts de AutoIt coletando informações diversas através do WMI, veja mais em:
https://github.com/chechelaky/WMI

Alguns são bem simples, e fiz questão de colocar o link da página da Microsoft, para que você possa expandir seus conhecimentos.

O que você pode conseguir com esses scripts?
Coletar a velocidade do processador, quantos núcleos possui, quantos pentes de memória RAM há no PC e as vezes até o número de série do módulo de memória RAM (logicamente, quando o fabricante escreve tal informação, caso contrário é vazio mesmo), quantos monitores há no PC, qual a resolução de cada um, qual o número de série e data de fabricação do monitor, e por aí vai...

 

 

Man . você é demais . Cool , depois que você subiu de cargo o conhecimento está sendo difundido de uma forma gigantesca.

 

DEUS abençoe muito.

 

Precisa de alguma coisa que não está nos exemplos?

Então estude esta página: https://msdn.microso...8(v=vs.85).aspx

 

Ela possui uma grande quantidade de informação, adapte o que você precisa, ouse, erre, corrija e faça dar certo! 8D

 

 

Luigi , com certeza estudar é o caminho , entrou uma pessoa na minha vida que me fez perceber o quanto eu preciso estudar , e através dela descobri que estava numa vida Obscura e longe de DEUS.

 

Por muitas vezes me limitei por pensar que algo é muito difícil etc , e no dia de hoje DEUS está me abençoando muito pois ultrapassei os limites que eu pensava que não alcançaria.

 

--------------------------------------------------------------------------------------------------------------------------------------------------

Muitos são os planos no coração do homem, mas o que prevalece é o propósito do Senhor. - Provérbios 19:21

---------------------------------------------------------------------------------------------------------------------------------------------------

 

Mais uma vez #OBRIGADO Luigi e Manimal , vocês merecem estar onde estão hoje , compartilham conhecimento e ajudam demais a mim e aos membros desse fórum.

 

Estou em uma nova fase da minha vida e as vezes falamos de DEUS só pela boca e ficamos distantes das suas palavras.

A vida é passageira e a cada dia aprendo mais e vou estudar até o fim dos meus dias , e com essa  turma daqui isso fica muito confortável.

 

Com certeza DEUS coloca em nossas vidas todo tipo de pessoa , e hoje sei que é para o nosso bem, Amém.


No tópico: Mensagem na tela sem usar GDI

07 julho 2017 - 08:46

Experimenta assim.

 

Postei como anexo porque ao usar a tag CODE trava.

 

O Alexandre já tinha reclamado disso faz alguns dias.

 

Manimal esse exemplo ai que você postou com a função _API_SetLayeredWindowAttributes() , você já havia postado algum tempo atrás , só que foi usando para mostrar uma String com o nome  CAPS LOCK  quando se acionava a tecla lembra ?

 

Eu já até havia adaptando a muito tempo atrás para outras coisas aqui nuns projetos , e ficou Show Demais.  ;)


No tópico: Trabalhando com GDI+ exemplo

14 junho 2017 - 01:54

Eu fiz esse exemplo simples para mostrar um modo de trabalhar com GDI+. Eu colquei para o programa só redesenhar quando executar uma determinada função, assim evitando o consumo excessivo de memoria.

Eu upei a barra, mas não consegui upar o background (skin.png), mas vc pode colocar qualer imagem para ver o funcionamento.

 

  1.  
  2. #include <GDIPlus.au3>
  3. #include <WindowsConstants.au3>
  4. #include <Misc.au3>
  5. #include <File.au3>
  6.  
  7.  
  8. ;~ -ATENÃÃO-
  9. ;~ Coloquei uma lista de ROMS simples que mostra só a ROMS selecionada nas 10 colunas. (Motivo- manter o código pequeno para não complicar muito o exemplo)
  10.  
  11.  
  12. _GDIPlus_Startup()
  13.  
  14. Const $TAMANHO[2] = [800,600]
  15. Const $BARRA = "select.png" ;IMAGEM DA BARRA DE SELEÃÃO
  16. Const $BACKGROUND = "skin.png" ;IMAGEM DE FUNDO DO PROGRAMA
  17. Const $PATHROMS = "roms" ;ARQUIVOS ROMS - ZIP
  18. Const $ROMS = _FileListToArrayRec($PATHROMS, "*.zip", 1, $FLTAR_NORECUR, $FLTAR_SORT, $FLTAR_NOPATH)
  19. MsgBox("","ERRO!", 'Indique uma pasta com arquivos ".zip"')
  20.  
  21. ;BARRA DE SELEÃÃO
  22. Local $TOP_BAR = 115
  23. Const $LEFT_BAR = 28
  24. Const $W_BAR = 321
  25. Const $H_BAR = 49
  26.  
  27. Const $ESPACO_BAR = 41
  28. Const $CONST_BAR = $TOP_BAR
  29. Const $FINAL_BAR = 484
  30.  
  31. Local $POS_ITEM = 1
  32. Const $POS_ITEM_MAX = $ROMS[0]
  33. Const $MAX_ITENS = 10
  34.  
  35. ;LISTA DE JOGOS
  36. Local $TOP_LIST = 123
  37. Const $LEFT_LIST = 28
  38. Const $W_LIST = 321
  39. Const $H_LIST = 49
  40.  
  41. Const $ESPACO_LIST = 41
  42. Const $CONST_LIST = $TOP_LIST
  43. Const $FINAL_LIST = 484
  44. ;============>
  45. Global $GUI = GUICreate("Example", $TAMANHO[0], $TAMANHO[1],-1,-1,$WS_POPUP)
  46. ;============>
  47. Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($GUI)
  48. Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($TAMANHO[0],$TAMANHO[1] , $hGraphic)
  49. Global $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
  50. Global $hImageBg = _GDIPlus_ImageLoadFromFile($BACKGROUND)
  51. Global $hImageTop = _GDIPlus_ImageLoadFromFile($BARRA)
  52.  
  53. ;TEXTO
  54. Global $hFormat = _GDIPlus_StringFormatCreate()
  55. Global $hBrush_Branco = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
  56. Global $hFamily = _GDIPlus_FontFamilyCreate("impact")
  57. Global $hFont = _GDIPlus_FontCreate($hFamily, 18, 0)
  58. ;LAYOUT -0/100
  59. Global $tLayout = _GDIPlus_RectFCreate(740,25)
  60.  
  61.  
  62. Redraw()
  63. Case GUIGetMsg() = -3
  64. _exit()
  65. Case _IsPressed(26)
  66. If ($TOP_BAR > $CONST_BAR and $TOP_BAR <= $FINAL_BAR) Then $TOP_BAR-=$ESPACO_BAR ;CIMA
  67. if $POS_ITEM > 1 then $POS_ITEM-=1
  68. Redraw()
  69. Case _IsPressed(28)
  70. if ($TOP_BAR >=$CONST_BAR and $TOP_BAR < $FINAL_BAR) Then $TOP_BAR+=$ESPACO_BAR ;BAIXO
  71. if $POS_ITEM < $POS_ITEM_MAX Then $POS_ITEM+=1
  72. Redraw()
  73.  
  74.  
  75. Func Redraw()
  76. ;Limpa tudo
  77. _GDIPlus_GraphicsClear($hBuffer)
  78. ;Background
  79. _GDIPlus_GraphicsDrawImageRect($hBuffer, $hImageBg, 0, 0,$TAMANHO[0], $TAMANHO[1])
  80. ;Barra
  81. _GDIPlus_GraphicsDrawImageRect($hBuffer, $hImageTop, $LEFT_BAR, $TOP_BAR,$W_BAR,$H_BAR)
  82. ;Texto
  83. _GDIPlus_StringFormatSetAlign($hFormat, 2)
  84. _GDIPlus_GraphicsDrawStringEx($hBuffer,$POS_ITEM & "/" & $POS_ITEM_MAX , $hFont , $tLayout , $hFormat, $hBrush_Branco)
  85.  
  86.  
  87. ;LAYOUT LISTA
  88. _GDIPlus_StringFormatSetAlign($hFormat, 1)
  89. For $i=1 to $MAX_ITENS
  90. $tLayout_Lista = _GDIPlus_RectFCreate($LEFT_LIST,$TOP_LIST,$W_LIST,$H_LIST)
  91. _GDIPlus_GraphicsDrawStringEx($hBuffer,$ROMS[$POS_ITEM], $hFont , $tLayout_Lista , $hFormat, $hBrush_Branco)
  92. $TOP_LIST+=$ESPACO_LIST
  93. $TOP_LIST=$CONST_LIST
  94. ;Desenha o grafico
  95. _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
  96.  
  97. Func _exit()
  98. GUIDelete($GUI)
  99. _GDIPlus_ImageDispose($hImageBg)
  100. _GDIPlus_ImageDispose($hImageTop)
  101. _GDIPlus_Shutdown()

 

 

Parabéns Pedro  :up:  , ficou muito bom , você está pegando o jeito com GDI+.