Jump to content

chrispbr

Membros
  • Content count

    28
  • Joined

  • Last visited

  • Days Won

    1

chrispbr last won the day on August 21 2017

chrispbr had the most liked content!

Community Reputation

3 Neutro

About chrispbr

  • Rank
    Membro

Profile Information

  • Location
    Curitiba Parana
  1. Software comercial em autoit.

    Bom primeiramente gostaria de agradecer imensamente as respostas que alem de uma aula completa foram bem esclarecedoras... Sempre que postei minhas duvidas aqui fui prontamente atendido e espero aumentar o meu conhecimento para poder retribuir a toda comunidade... Com essas respostas ja posso traçar um planejamento de forma mais clara, independente de fazer só em autoit ou misturar linguagens vejo que ainda tenho muito a aprender, até para poder implantar as devidas proteções. Desejo a todos um bom final de semana, obrigado. Chris Patterson
  2. Software comercial em autoit.

    Obrigado por sua atenção, vou ler atentamente.
  3. Ola Pessoal, tudo certo? Estou com uma duvida e gostaria da ajuda de vcs... Ja faz algum tempo que estou trabalhando em um programa escrito em autoit... Esta chegando na versão final e pretendo comercializar ano que vem, trata-se de um programa de apoio para quem joga poker online... Minhas dividas são: E seguro comercializar um software em autoit ? Ele não é mais vulnerável a decompiladores? Seria mais fácil para alguém crackear meu programa se ele estiver escrito em autoit? Pensando nisso comecei a estudar C/C++, porem ainda vai demorar um bom tempo para que eu consiga fazer em C/C++ o que faço em autoit Seria viável e interessante reescrever todo o programa em C/C++? Ou a pessoa que tiver a capacidade de bular meu programa vai burlar tanto em autoit como C/C++? Agradeço a todos que puderem opinar Abraço. Chris Patterson.
  4. Valeu a dica Luigi, vou seguir seus conselhos, tenho varias pequenas funções em relação a pixels e arrays que fui adaptando para minhas necessidades, com tempo vou postando aqui minhas soluções, vai que serve pra alguém também, rsrs, vlw, abs.
  5. Fala Pessoal, consegui resolver meu problema com reconhecimento de caracteres, eu faço o reconhecimento de cada numero comparo com um array que serve como mapa de caracteres e a função me retorna o valor em fichas, dai converto as fichas para blinds e mando para um popup, como meu nivel de programação e bem baixo meu código ficou bem simples, se tiverem sugestão para melhorar agradeço, segue o código. agradeço a todos que dedicaram seu tempo para me responder #include <WinAPIGdi.au3> #include <Array.au3> #include <File.au3> Local $chartsArray _FileReadToArray(@ScriptDir & "\Charts\Chart", $chartsArray, $FRTA_NOCOUNT, ",") Func Charts( $x, $y, $w, $h, $handle, $fontColor ) $hDC = _WinAPI_GetWindowDC($handle) Local $nc = 0, $chart Local $baseChartarray[0] Local $chartArray = $baseChartarray Local $result = "" For $i = $x To $w $yy = $y For $pt = 1 To $h - $y $px = _WinAPI_GetPixel($hDC, $x, $yy) If $px = $fontColor Then $nc +=1 $yy +=1 Next If $nc = 0 Then If $chart <> "" Then _ArrayAdd($chartArray, $chart) $chart = "" EndIf ElseIf $nc > 0 Then $chart = $chart & $nc & "." $nc = 0 EndIf $x +=1 Next For $a = 0 To UBound($chartArray) - 1 $idx = _ArraySearch($chartsArray, $chartArray[$a], 0, 0, 0, 0, 1, 1) If $idx >= 0 Then $result = $result & $chartsArray[$idx][0] EndIf Next Return $result EndFunc
  6. Vlw Luigi obrigado pela atenção.
  7. Passei o dia quebrando a cabeça, e acabei pensando em uma solução que talvez seja mais fácil de vcs me ajudarem... no lugar de eu converter as fichas como faz o Table optimizer eu criar popups com as Fichas convertidas veja o exemplo da imagem abaixo Para isso eu teria que extrair os valores enviar para uma variável, converter essa variável e depois passar essa variável para o popup, pois bem nesse chat do lado inferior esquerdo correm todas as informações sobre as ações tomadas e a quantidade de fichas de cada jogador... eu consigo identificar o handle, id, instance do chat "[CLASS:PokerStarsChatClass; INSTANCE:1]", porem não consigo extrair o conteudo... Tentei o $sText = ControlGetText(WinGetTitle("[CLASS:PokerStarsTableFrameClass]"), "", "[CLASS:PokerStarsChatClass; INSTANCE:1]") mas não me retorna nada tive alguns problemas com "WinMove" por exemplo e consegui contornar com "_WinAPI_SetWindowPos", vcs conhecem algo em WinAPI que possa retornar o texto do controle? Se eu conseguir "Ler" esse chat dai fica simples, converto e passo para popup e problema resolvido. Obrigado novamente pela atenção de todos.
  8. Desculpe Luigi, acabei não respondendo sua pergunta "voce esta tentando automatizar um software web graficamente? coletando informacoes de botoes, combos, etc" O Table Optimizer é um software que eu uso e pago por esse uso que converte automaticamente os valores de fichas para blinds Eu quero conseguir fazer a mesma conversão, podendo assim deixar de utilizar o Table Optimizer e usar o meu software, consegui fazer isso com o stackantile hoje uso minha versão escrita totalmente em autoit, para fazer isso enfrentei uma serie de limitações e tive que automatizar o movimento das telas baseado em comparação de pixels, uso uma função que criei em cima de alguns retalhos de codigos: Win Get Pixel Color = _WGPC(posição x, Posição y, Handle da Janela, 0 = Reverente a WinArea ou 1 = Referente a ClientArea) ele retorna o pixel mesmo que a janela esteja sobreposta, repare pelo codigo que sou bem amador no assunto, rsrs #include <WinAPI.au3> Func _WGPC($x, $y, $handle, $cw = 0) If $cw = 1 Then $clientArea = WinGetClientSize(HWnd(String($handle))) $winsize = WinGetPos(HWnd(String($handle))) $border = ($winsize[2] - $clientArea[0]) / 2 $titleBar = ($winsize[3] - $clientArea[1] - $border) $x = $x + $border $y = $y + $titleBar EndIf Local $hDC Local $iColor Local $sColor $hDC = _WinAPI_GetWindowDC($handle) $iColor = DllCall("gdi32.dll", "int", "GetPixel", "int", $hDC, "int", $x, "int", $y) $sColor = Hex($iColor[0], 6) _WinAPI_ReleaseDC($handle, $hDC) $color = Hex("0x" & StringRight($sColor, 2) & StringMid($sColor, 3, 2) & StringLeft($sColor, 2)) Return "0x" & StringRight($color, 6) EndFunc
  9. Muito agradecido por sua resposta e fico feliz que consegui passar que não sou um "Gamer", que não se trata de fazer um bot e sim criar um software de auxilo para o Pokerstars... Vou passa as informações que tenho e tentar ilustrar a situação.... Este foi o e-mail que recebi do pokerstars, apos minha conta passar por uma avaliação de 3 meses e eles acabarem autorizando que eu continuasse desenvolvendo, desculpe minha ignorância, não sei muito bem o que é API, mas como pode ver pelo email eles não fornecem esta facilidade por motivo de segurança. Agora vou mostrar o que o programa Table Optimizer faz.... Na imagem abaixo vemos em azul todos os valores representados por fichas que é o padrao Na próxima imagem vemos todos os valores representados por blinds que é a conversão que o Table Optimizer faz Parece uma coisa simples, mas vou tentar ilustrar para vcs, Blind a grosso modo é a aposta minima inicial que um jogador pode fazer, então imaginemos que o valor da blind esta $1.800 e o Jogador X Tem $24.786 quantos blinds ele tem? $24.786 / $1.800 = ele tem 13.7 Blinds, se ele faz uma aposta de $4.500, quantos blinds ele apostou? $4.500 / $1.800 = ele apostou 2.5 blinds, agora imagine que vc esta jogando mais de 10 telas ao mesmo tempo e tem que fazer essa calculo simples a cada ação em uma fração se segundos, é possível e com o tempo vc pega a pratica, mas a conversão traz precisão e rapidez. Agora o que eu sei sobre o software do pokerstars, dando uma pesquisada eu encontrei esse conteúdo Originalmente, o software da PokerStars foi escrito, usando o C ++ puro, mas agora ele usa o Chromium Embedded Framework (CEF), que é uma estrutura de código aberto para incorporar um mecanismo de navegador da Web baseado no núcleo do Chromium . É uma maneira conveniente de adicionar o controle do navegador da Web e implementar uma GUI de layout baseada em HTML5 em uma aplicação de desktop ou fornecer recursos de navegador da Web para uma aplicação ou jogo de software e fornece aos desenvolvedores da infraestrutura que precisam adicionar renderização HTML e JavaScript a um Projeto C ++. Ele também vem com ligações para C, C ++, Delphi, Go, Java, .NET / Mono e Python e é executado no Linux, Mac OS X e Windows. Pelo que entendi ele não funciona em um navegador, ele cria seu proprio navegador, como ele vem com essas ligações para C, C++ imaginei que com autoit eu também conseguiria acesso as informações que preciso Quero salientar que não quero que ninguém faça a aplicação para min, gostaria de apenas uma luz de como acessar esses dados e se ha alguma forma de integração com o Chromium Embedded Framework Agradeço todas as respostas.
  10. Fala galera tudo certo? Primeiramente algumas informações sobre mim e algumas considerações: Estou ciente das regras do fórum sobre, bots e afins, porém não se trata disso... Sou jogador profissional de poker e nem ousaria arriscar minha conta ser banida por uso de softwares não autorizados, afinal esse é meu ganha pão... Na rotina de um jogador profissional usamos várias ferramentas (softwares) de apoio, todas elas autorizadas pelo PokerStars, exemplos: Holdem Manager Poker Tracker ICMIZER Stackandtile Tablet Optimizer E várias outras do gênero Porém a maioria dessas ferramentas são pagas e em dólar, algumas como o Holdem Manager vc paga a licença uma única vez, outras o pagamento é mensal como o Stackandtile por exemplo e outras semestral ou anual... Hoje em dia para um jogador profissional e praticamente indispensável o uso dessas ferramentas e o poker se assemelha muito a um mercado financeiro, investimos X em torneios, softwares, treinamentos para obter um retorno y... Com o intuito de minimizar meus gastos com softwares, nos últimos 2 anos vim criando minhas versões de softwares em autoit, no final do ano passado o PokerStars até me questionou a procedência dos softwares que eu estava usando, expliquei pra eles a situação, enviei os códigos fontes dos programas e depois de 3 meses de espera eles me autorizaram a continuar desenvolvendo, caso seja necessário até posso postar o e-mail aqui... Desculpem por essa longa explicação, mas quero deixar bem claro que não se trata de criar um software que tire vantagem de alguma forma, mas apenas criar algo semelhante ao que tem no mercado... Bom vamos ao que interessa, como falei o Stackandtile eu pagava mensalmente, esse software era responsável por um gerenciamento de telas, como jogamos muitas telas(mais de 12 telas ao mesmo tempo) sem este software fica mais difícil gerenciar, o que ele faz, empilha todas as telas uma em cima da outra e só quando a ação chega até nós é que ele movimenta está tela para o lado para que possamos jogar... Hoje depois de bater muita a cabeça já uso a minha versão desse software e modéstia parte acho que minha versão é até melhor, rsrs Agora a parte que preciso da luz de vcs, uma dica de como posso conseguir o que quero... Eu uso o Tableoptimizer,é a função dele mais importante para mim é que ele converte os valores que estão aparecendo na tela de Fichas para blinds, ou seja se eu tenho 1000 fichas e os blind está 100 eu tenho 10 blinds, então isso facilita muito ele já mostrar em blinds do que eu ter que calcular mentalmente a cada ação... O que eu gostaria de fazer é isso poder converter os valores que aparecem na tela de fichas para blinds, porém com aquela ferramenta de info ela detecta como um único frame, não detecta label, botões etc, dei uma pesquisada e vi que o PokerStars usa a plataforma "chromium embedded framework" alguma idéia de como posso ter acesso a esses labels e botões para conversão? Agradeço desde já a ajuda e desculpe se fui muito prolixo.
  11. Primeiro obrigado por sua atenção, consegui adaptar e resolver meio problema, mais uma vez agradeço e lhe desejo sucesso em seus projetos.
  12. Fala Pessoal. preciso da ajuda de vocês, tenho um form que tem inúmeras imagens, $pic1, $pic2, $pic3 ....(mais de 100) e quero que quando clicar nela ela abra, coloquei no Switch case, porem não teria uma maneira mais dinâmica do que repetir todas as variáveis? While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE GUISetState(@SW_HIDE,"Villain Range") Case $Pic1 onOff() Case $Pic2 onOff() Case $Pic3 onOff() Case $Pic4 onOff() Case $Pic5 onOff() Case $Pic6 onOff() Case $Pic7 onOff() Case $Pic8 onOff() Case $Pic9 onOff() Case $Pic10
  13. Procurar pela cor na tela pra clicar

    Não sei se entendi direito, mas estou usando com sucesso no windows 10 o imagesearch controlclick e mouseclick Localiza uma imagem no desktop ou em uma determinada área dele e clico
  14. Scroll bar sempre up ou down

    kkkkkkkkkkkkkkkkkk, deu certo vc é um gênio cara, agora que entendi eu não uso aquele codigo no meu codigo só faço um include, :P , vou explorar mais teclas mas o up ja resolveu pq a janela não precisa estar ativa, obrigado a todos, grande abs.
  15. Scroll bar sempre up ou down

    não tenho função, a principio achei que era so enviar um comando tipo send :mad2:, não sei se estou errado mas estes comandos _Guixxxxx, não são para serem usados somente em formulários criados via autoit?
×