EVENTO NO MOUSE
Gostaria de saber como rodar um programa externo chamado pelo shell, quando o usuario movimenta o mouse, em outras palavras, quando o usuario acionar o mouse, por movimento ou click , ele acionar a execução de um programas externo.
Eu deveria uasar apis mouse_event? Se for qual a sintaxe do comando.
Obrigado
escolha mouse_up, mousedown, mousemove
x = Shell([Ô]c:\msoffice\access\msaccess.exe[Ô], 3)
Obrigado por responder a minha pergunta, a minha ideia é o seguinte, farei um programa que ficará ocuLto na memoria e quando o usuario sentar nesta maquina para operar qualquer trabalho o programa fará um printscreen da tela do usuario.
o prgrama já está funcionamdo pois coloquei um timer de 1 minuto para ele copiar as telas, só que a maquina as vezes fica sem operação por usurio por algumas horas e o sistema continua fazendo printscreen da tela de 1 em 1 minuto mesmo a maquna parada.
Qual a solução !!! Fazer com que este programa rode omente enquanto alguem senta na maquina para trabalhar.
Pois então eu achei que se fizer leitura de movimentação do mouse acionaria o programa em questão.
A ideia é boa ou voce tem um caminho melhor para realizar esta tarefa?
obrigado pela ajuda.
Private Sub SSTab_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox [Ô]Posicao X: [Ô] & X & [Ô] - Posicao Y: [Ô] & Y & [Ô][Ô], vbCritical, [Ô][Ô]
End Sub
Mas como o programa vai estar oculto, não irá funcionar. Esse só pega a posição quando vc passa o mouse em cima do controle, no caso SSTab
Deve existir alguma API que pegue a posição do mouse independente de estar passando ou não de algum objeto.
Private Type POINTAPI
X As Long
Y As Long
End Type
[ô]Declare the API-Functions
Private Declare Function GetCursorPos Lib [Ô]user32[Ô] (lpPoint As POINTAPI) As Long
Private Sub Timer1_Timer()
Dim Point As POINTAPI
GetCursorPos Point
Label1.Caption = Str(Point.X) & [Ô] , [Ô] & Str(Point.Y)
End Sub
Neste exemplo, pus um label e um timer...
conforme movo o mouse, mesmo fora do form ele registra o ponto x e o y do mouse...
Basta coletar o último... se mudou, alguém mexeu no mouse...
Se alguém mexeu no mouse, troque o enabled do seu timer que faz os printscreen de false para true...
Continue coletando...
se por x vezes o mouse não mover, volte a colocar o seu timer como false
Ou seja, o mesmo só vai fazer os printscreen se estiver true, quando alguém mexer no mouse...
Espero ter ajudado!
Citação::
Tá aÃ...
Private Type POINTAPI
X As Long
Y As Long
End Type
[ô]Declare the API-Functions
Private Declare Function GetCursorPos Lib [Ô]user32[Ô] (lpPoint As POINTAPI) As Long
Private Sub Timer1_Timer()
Dim Point As POINTAPI
GetCursorPos Point
Label1.Caption = Str(Point.X) & [Ô] , [Ô] & Str(Point.Y)
End Sub
Neste exemplo, pus um label e um timer...
conforme movo o mouse, mesmo fora do form ele registra o ponto x e o y do mouse...
Basta coletar o último... se mudou, alguém mexeu no mouse...
Se alguém mexeu no mouse, troque o enabled do seu timer que faz os printscreen de false para true...
Continue coletando...
se por x vezes o mouse não mover, volte a colocar o seu timer como false
Ou seja, o mesmo só vai fazer os printscreen se estiver true, quando alguém mexer no mouse...
Espero ter ajudado!
Caro colega obrigado pela a ajuda.
Eu queria saber se este programa capturador de telas ficasse oculto, a rotina acima funcionaria?
obrigado
Citação::
Só testando... mesmo fora da tela, sem o foco no form, ele continua contabilizando a posição do mouse, então acredito que mesmo oculto vai funcionar... vc testou?
Não tive tempo ainda, mas vou testar e te retorno
abraço