Ir ao conteúdo

Capturar teclas pressionadas na janela de outro programa (VB6)


HwapX

Posts recomendados

  • 2 semanas depois...
Postado

Bem vou dar uma olhada o que eu quero fazer é uma coisa simples é se por exemplo se a pessoa precionar f11 o programa execute uma ação mesmo estando minimizado ou que outra aplicação esteja em tela cheia...

Postado

Então o que você quer é setar uma HotKey que incondicionalmente (mesmo com outra aplicação em tela cheia, etc.) faça seu prog executar uma função?

Postado

Olha, fiz um script em VB Express 2008, portanto não sei se funcionará com o VB6

Utilizei um BackGround Worker


Public Class Form1

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim pressed As Boolean
pressed = My.Computer.Keyboard.AltKeyDown
Do Until pressed = True
'Funçoes a serem executadas
'Exemplo meu:
Me.BringToFront()
Loop
End Sub
End Class

Esse código executará uma ação quando a tecla Alt for pressionada.

My.Computer.Keyboard.AltKeyDown

Espero ter ajudado.

Postado

Entendi mais que eu saiba no vb6 não tem o BackGround Worker

se não fosse por isso achop que daria pra adapitar o codigo

mais tem tambem que o VB6 so entende as teclas como ascii mais isso são detalhes

vou ver o que eu consigo fazer aqui

Postado

Eu ja uso o vb2008 a um bom tempo a mais que o vb6 mais eu também estou usando o vb6 pois ele não precisa do net framework que acabaria por estrovar meu programa pois ele é pequeno e ainda assim presisaria do net ai acabaria sendo muito incomodo um programa de 500kb precizar do net e duro :P

por isso eu procuro no vb6 mesmo vb.net não serve pra mim...

Postado

Hmmm....

A necessidade do .NET Framework 3.5 do VB2008 é mesmo um problema... :(:lol:

Um programa de 0,5 MB precisar de um complemento de 197 MB! :eek:

O que você quer exatamente com seu programa é o que?

Minimizar um programa, finalizar um processo que não esteja respondendo??

Postado

Seria um atalho para fechar um jogo instantaneamente

Pra voce entender vou resumir eu estou fazendo um launcher com antihacker e autoupdate para um jogo e quero colocar a função para poder fechar o jogo quando F10 ou qualquer outro F for precionado pra isso eu ja fiz o codigo para fechar o jogo agora so falta eu conseguir fazer o programa saber que o botão foi precionado pra executar o codigo

Postado

Ahh...

Se no VB6 tiver o Process, tente adaptar isso:


Dim press As Boolean
press = My.Computer.Keyboard.CtrlKeyDown & My.Computer.Keyboard.AltKeyDown
Do While press = True
For Each game As Process In Process.GetProcessesByName("nome_do_executavel_do_jogo.exe")
game.Kill()
'ou "game.CloseMainWindow" ou "game.Close"
Next
Loop
End Sub
    Private Sub Process1_Exited(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Process1.Exited

Esse código meu irá executar quando Ctrl + Alt for pressionado (ou pelo menos era essa a intenção ^_^)

A proposito, pelo que entendi você quer fazer alguma coisa parecida com o GameGuard, certo?

Quanto aos autoupdates, utilize o DropBox. Pelo que sei ele fornece link fixo para os arquivos que você upa...

http://www.getdropbox.com

Apenas uma sugestão...

Postado

Não tive a possibilidade de mexer com meu sistema ainda pois não estou no pc no qual ele esta mais mesmo assim obrigado pela ajuda assim que possivel vou testalo quanto ao http://www.getdropbox.com poderia me explicar melhor sobre ele é tipo um disco rigido virtual?

Postado

O DropBox é um tipo de uploader. Ele fornece a você um HD virtual de 2 GB para sincronização e publicação de arquivos.

Nosso moderador Renato Mejias hospedou a mais recente versão do programa dele, o PenClean, no DropBox.

Ele também fornece link fixo/direto para seus arquivos.

O melhor de tudo, completamente grátis!

@EDIT:

Estava pensando...

Já que está fazendo um Launcher, não seria um pouco mais simples você fazer uma DLL separada e carregá-la no jogo?

Assim, seria mais fácil, pois quando dentro do jogo fosse pressionada certa sequencia de teclas, a DLL injetada faria seu trabalho e fecharia o jogo....

Assim, a DLL ficaria assim:


Public Sub shutdown()
Dim sd As Boolean
sd = My.Computer.Keyboard.AltKeyDown & My.Computer.Keyboard.CtrlKeyDown
Do While sd = True
For Each tokill As Process In Process.GetProcessesByName("example.exe") 'Nome do executavel do jogo
tokill.Kill()
Me.Finalize()
Next
Loop
End Sub
End Class

Public Class killgame

Aqui no VB2008, essa DLL ficou perfeita...

O problema agora não seria descobrir quando o usuario pressionou as teclas mas sim como injetar a DLL... :lol::(

Postado

À ideia é boa mais eu não tenho a minima ideia de como fazer pra colocar a dll

Realmente gostei muito do dropbox valeu pela dica

Postado

Isso será realmente um problema :lol:

Lhe enviei um link por MP, veja se o conteúdo lhe serve para alguma coisa.

Não posso postar porque pessoas com intenções maliciosas podem vê-lo...

Postado

Se você está fazendo um programa que fecha um jogo (ou qualquer executável) em andamento, esse programa deverá ficar residente em memória fazendo a varredura do teclado. Ao pressionar qualquer tecla de função, o programa deverá reconhecer a tecla e fazer o close, exit do executável que se queira. Verifique qual librare você possa usar no VB para essa finalidade ou crie uma.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!