Densyy Posted September 8, 2011 Report Share Posted September 8, 2011 bom pessoal tente de tudo aqui e n consegui sou um usuario simples ainda de vb6 mais to tentando se dedicareu estava criando um programinha bem basico com a ajuda de um tópico aquiestava usando esse codigo aquiPrivate Sub Command1_Click()Timer1.Enabled = TrueTimer1.Interval = 1000Timer2.Enabled = TrueTimer2.Interval = 10End SubPrivate Sub Timer1_Timer()On Error Resume NextSendKeys "{X}"End SubPrivate Sub Timer2_Timer()On Error Resume NextSendKeys "{UP}"End Subsó pra vocês terem uma ideia eu jogo um jogo chamado mini fighterse gostaria de calcurar o tempo de um movimento pra me facilitarusar um golpemais o problema é que n consigo fazer esse programa rodar com o jogo abertoquando eu abro o jogo da erro no programa n sei o que fazer !! preciso urgente dissoe gostaria tambem de segurar a tecla "X"invés de ficar apertando um monte de vezesconto com a ajuda de todosespero n ter desrespeitado regras sou novo ainda Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 12, 2011 Report Share Posted September 12, 2011 Densyy,Não conheço uma solução pronta para sua situação. Contudo, posso lhe dar algumas dicas.Primeira coisa que seu programa poderia fazer é simplesmente validar se o jogo esta executando e depois fazer uso do comando SendKeys/Timer.Até momento, não sei como identificar a tela que esta sendo exibindo determinada parte do jogo e quando começa a enviar comandos.De uma olhada neste link que demonstra a utilização do SendKeysVB6 SendKeys List Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 12, 2011 Author Report Share Posted September 12, 2011 Eu tentei de tudo mais n deu certojá li essa tabela de Keys tentei com todas as teclas e ta dando o mesmo erroesse erro só ocorre quando eu ligo o timer e clico dentro do programase eu só ligar o timer e abrir o bloco de notas n da erro e funciona perfeitamentesomente dentro do jogoesta ocorrendo este erroRun-time error '70':Permission DeniedAcho q o jogo que não da permissão para softwares externosintão o que eu faço? Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 12, 2011 Author Report Share Posted September 12, 2011 Pesquisei bastante em varios topicos gringos com esse probleman intendi muito bemmais vi um kara dizendo para:"Desative a opção Ativar Verificação de Autorização para o componente. Isto pode ser feito no MTS Explorer abrindo a janela Propriedades para o componente e desmarque a opção Ativar Verificação de Autorização na guia Segurança. Esta não é uma opção viável em um ambiente de produção, ou quando o teste de segurança definido para o componente MTS.Atribuir o ID do Windows NT do usuário que está sendo usado para lançar o objeto MTS da aplicação Visual Basic para um dos papéis autorizada a invocar os métodos do objeto MTS. "Mais n intendi muito bemo como eu abro essa janela para desativar essa opção?? Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 13, 2011 Report Share Posted September 13, 2011 (edited) Densyy,Penso que você esteja certa o problema e de permissão. Lendo sobre o problema no link PROBLEMA: "Erro de Runtime 70: permissão negada" lembrei que já tive esse problema. Para resolver utilizei um utilitário de terceiro (CPAU.exe) que até hoje funciona muito bem. Onde posso informar usuário/senha com privilégio de administrador para executar determinado aplicativo.Segue abaixo o link : Registrar DLL/OCX pelo VB, Registrar DLL/OCX pelo VB utilizando função ShellExecuteVocê poderia utilizar essa ferramenta para executar o seu programa informando um usuário/senha. Possívelmente, o erro não ocorrerá mais. Edited September 13, 2011 by Cleiton Aparecido Crispim Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 13, 2011 Author Report Share Posted September 13, 2011 Intendi mais ou menosmais como eu disse sou novato ainda em vbvocê poderia me explicaro que eu preciso fazer?esse utilitário de terceiro (CPAU.exe) é algum programa externo que devo baixar?e essa pagina qe você mandou "Registrar DLL/OCX pelo VB, Registrar DLL/OCX pelo VB utilizando função ShellExecute"Não intendi muito bem o conteudo delamais eu estou achando q o problema e que o jogo n me deixa usar o programa acho q o problema é mais complicado Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 13, 2011 Report Share Posted September 13, 2011 Densyy,Sem problemas se não entendeu. Vamos começar novamente.Teria como você me passar o código fonte do seu programa?Assim poderia testar e ajudar melhor você. Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 13, 2011 Author Report Share Posted September 13, 2011 Clarovou te passar o projeto inteirohttp://www.4shared.com/file/7TKdhrwg/Fly.htmlda uma olhada e ve se você consegue descobrir como resolver o problemaMuito obrigado pela ajuda Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 14, 2011 Report Share Posted September 14, 2011 (edited) Densyy,Seguinte, verificando o seu projeto encontrei algumas situações que pode levar ocorrer vários erros. Veja abaixo alguns pontos que penso que esta faltando no seu programa.1 - É necessário identificar se determinado programa esta executando - no caso o seu jogo.Isso porque ao executar o seu programa e após informar os parâmetros da tela já começa a preencher com "X" onde for possível e isso irá causar erros. Ele pode informar "X" na tela do MSN, bloco de notas, Word etc. Sendo que ele só ira informar as teclas quando seu jogo estiver executando.2 - É necessário identificar se a tela do programa esta ativa - no caso a tela do jogo.Isso para que você execute o sendkeys somente no jogo.Estou validando essas situações acima. O que você acha? Edited September 14, 2011 by Cleiton Aparecido Crispim Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 14, 2011 Report Share Posted September 14, 2011 Densyy,Fiz algumas alterações para validar se o programa esta em execução e se a tela do programa esta ativa. Como exemplo utilizei o Word.Para testar no seu caso troque no código "winword.exe" pelo nome do seu jogo (que aparece no gerenciador de tarefas) e"Documento1 - Microsoft Word" pelo nome da tela do jogo.Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private esta_na_tela_do_jogo As Boolean Private Sub Command_Click() 'GetClassNameFromTitle ' VerificaTelaAtiva End Sub Private Sub Command1_Click() Timer1.Enabled = False Timer2.Enabled = False Label4.Caption = "Desativado" MsgBox "Função Desativada" End Sub Private Sub Command3_Click() If Text1.Text = "" Then MsgBox "Determine o Tempo 1 " Else If Text2.Text = "" Then MsgBox "Determine o Tempo 2 " Else If Text3.Text = "" Then MsgBox "Determine o Atraso" Else Timer1.Enabled = True Timer1.Interval = Text1.Text Sleep Text3.Text Timer2.Enabled = True Timer2.Interval = Text2.Text Label4.Caption = " Ativado" MsgBox "Função Ativada" End If End If End If End Sub Private Sub Form_Load() TimerTelaAtiva.Interval = 10 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKey0 To vbKey9 Case vbKeyBack, vbKeyClear, vbKeyDelete Case vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab Case Else KeyAscii = 0 Beep End Select End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKey0 To vbKey9 Case vbKeyBack, vbKeyClear, vbKeyDelete Case vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab Case Else KeyAscii = 0 Beep End Select End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKey0 To vbKey9 Case vbKeyBack, vbKeyClear, vbKeyDelete Case vbKeyLeft, vbKeyRight, vbKeyUp, vbKeyDown, vbKeyTab Case Else KeyAscii = 0 Beep End Select End Sub Private Sub Timer1_Timer() ' Verifica se o jogo esta aberto If ProgramaAberto("winword.exe") Then If esta_na_tela_do_jogo Then _ SendKeys ("{UP}") End If End Sub Private Sub Timer2_Timer() ' Verifica se o jogo esta aberto If ProgramaAberto("winword.exe") Then If esta_na_tela_do_jogo Then _ SendKeys ("{X}") End If End Sub Private Sub TimerTelaAtiva_Timer() Static lHwnd As Long Dim lCurHwnd As Long Dim sText As String * 255 ' lCurHwnd = GetForegroundWindow If lCurHwnd = lHwnd Then Exit Sub lHwnd = lCurHwnd ' If lHwnd <> hwnd Then ' Caption = "Janela Ativa: " & Left$(sText, GetWindowText(lHwnd, ByVal sText, 255)) ' Else ' Caption = "Janela Ativa : Form1" ' End If estanateladojogo = "Documento1 - Microsoft Word" = Left$(sText, GetWindowText(lHwnd, ByVal sText, 255)) End Sub Public Function ProgramaAberto(strNomedoPrograma As String) As Boolean On Error Resume Next ' Não retornará erro. Dim oWMI Dim ret Dim oServices Dim oService Dim servicename ProgramaAberto = False Set oWMI = GetObject("winmgmts:") Set oServices = oWMI.InstancesOf("win32_process") For Each oService In oServices servicename = LCase(Trim(CStr(oService.Name) & "")) If InStr(1, servicename, LCase(strNomedoPrograma), vbTextCompare) > 0 Then ProgramaAberto = True End If Next Set oServices = Nothing Set oWMI = Nothing Exit Function End Functionsegue os link que utilizei como base para implementar as alterações.Activate Any Window With APIDescobrindo a janela ativa na área de Trabalho. Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 14, 2011 Author Report Share Posted September 14, 2011 Kara vlw mesmo pela ajudao Erro parou de ocorrermais eu notei que quando o jogo inicializao Processo fica ocultoEle some do GerenciadorMais parou de dar erro eu coloquei o Processo que estava antes de iniciar o jogo que eraClient.exee o nome eu troquei porMini Fighters que é o nome em que aparece na telaIntão tem outra saida? Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 14, 2011 Report Share Posted September 14, 2011 Densyy,No gerenciador de tarefas do windows caso não apareça o nome do jogo na aba "Aplicativos" verifique a aba "Processos".Caso não apareça na aba "Processos" não conheço até momento outro modo de identificar a execução.Em relação ao nome seria o contrário. Você colocaria o nome que aparece na aba "Processos".Não conheço esse jogo Mini Fighters. Ele seria pago? Tem versão gratuita? Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 14, 2011 Author Report Share Posted September 14, 2011 o jogo n é pago mais tem aqueles negocios de cash como todo jogocomo assim o nome que aparece na aba processoso unico processo que aparece é o Client.exemais ele some depois que abre o jogo Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 14, 2011 Report Share Posted September 14, 2011 Densyy,Pode acontecer o seguinte ao iniciar o jogo o processo Client.exe pode ser finalizado e iniciado outro processo. Com isso teria de validar o que aparece na guia processo do gerenciador de tarefas.Sobre o jogo, sendo "gratuito", poderia instalar ele só para validar o código. Mas, no momento não tem como, falta tempo. Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted September 15, 2011 Author Report Share Posted September 15, 2011 Bem complicado intão deixa pra lato com outra ideia tipo sobre esse jogo aindaé dificil criar um hack ou algo do tipoexemplo: alterar uma .dllmodificar algumas coisasou conhece algum programa q faça isso?tentei cheat engine mais ele sempre detectapor que tem Game Guard Quote Link to comment Share on other sites More sharing options...
0 MRMB Posted September 15, 2011 Report Share Posted September 15, 2011 (edited) Densyy,Vou ficar devendo. Não conheço nenhum programa que faz alteração em DLL. Edited September 15, 2011 by Cleiton Aparecido Crispim Quote Link to comment Share on other sites More sharing options...
Question
Densyy
bom pessoal tente de tudo aqui e n consegui sou um usuario simples ainda de vb6 mais to tentando se dedicar
eu estava criando um programinha bem basico com a ajuda de um tópico aqui
estava usando esse codigo aqui
Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 1000
Timer2.Enabled = True
Timer2.Interval = 10
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
SendKeys "{X}"
End Sub
Private Sub Timer2_Timer()
On Error Resume Next
SendKeys "{UP}"
End Sub
só pra vocês terem uma ideia
eu jogo um jogo chamado mini fighters
e gostaria de calcurar o tempo de um movimento pra me facilitar
usar um golpe
mais o problema é que n consigo fazer esse programa rodar com o jogo aberto
quando eu abro o jogo da erro no programa
n sei o que fazer !! preciso urgente disso
e gostaria tambem de segurar a tecla "X"
invés de ficar apertando um monte de vezes
conto com a ajuda de todos
espero n ter desrespeitado regras sou novo ainda
Link to comment
Share on other sites
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.