Como faço em Java para saber se existe algum programa aberto sendo utilizado (que não esteja oculto na barra de ferramentas)? Preciso criar um programa para saber o tempo que meu irmão fica no computador, esse programa vai iniciar junto com sistema (windows ou linux), mas oculto e vai gravar o tempo que ele usa qualquer aplicativo.
Java não é a linguagem mais adequada para se desenvolver isso. Procure uma linguagem com integração com o SO, como o C++.
Infelizmente, esse não é o tipo de programa fácil de fazer.
J
jorgyan
ViniGodoy:
Java não é a linguagem mais adequada para se desenvolver isso. Procure uma linguagem com integração com o SO, como o C++.
Infelizmente, esse não é o tipo de programa fácil de fazer.
Já encontrei no fórum programas semelhantes ( http://www.guj.com.br/java/109811-java-keylogger ) que capturavam o que o usuário digitava, sem o programa esta com o foco, gostaria apenas de saber quais programas estão em uso, se alguém puder me ajudar?
Será que conseguiria fazer em Bash/Shell Script?
D
d34d_d3v1l
Se voce realmente quer um kl apenas para colocar no pc do seu irmão,
pq nao usa um ja existente ?
naaaaaaaa minha epocaaaaaaaaaaaaa a unss bons anos atrás
eu cheguei a usar o ardamax… nao sei qual esta em alta hoje em dia
abrazz
D
d34d_d3v1l
bbb
J
jorgyan
d34d_d3v1l:
Se voce realmente quer um kl apenas para colocar no pc do seu irmão,
pq nao usa um ja existente ?
naaaaaaaa minha epocaaaaaaaaaaaaa a unss bons anos atrás
eu cheguei a usar o ardamax… nao sei qual esta em alta hoje em dia
abrazz
Será que consigo saber o tempo de utilização com o ardamax??
X
x111
ViniGodoy:
Java não é a linguagem mais adequada para se desenvolver isso. Procure uma linguagem com integração com o SO, como o C++.
Infelizmente, esse não é o tipo de programa fácil de fazer.
Em Delphi é tranquilo de fazer. Deve ter uma dezenas de exemplos, é só monitorar os processos!
Realmente java não é muito apropriado para isso por que vai ter que usar as funções da API Windows. Até da para fazer, mas vai dar o triplo do trabalho.
W
wagne23
Ola, se você está precisando de saber quais programas estão abertos talvez você possa pegar isso do gerenciador de tarefas, eu fiz algum tempo um programa simples que mostra todos os processos sendo executados no windows, talvez possa te ajudar em algo, dai é so implementar algo pra ir salvando em arquivos com os horários. Segue o codigo:
Ola, se você está precisando de saber quais programas estão abertos talvez você possa pegar isso do gerenciador de tarefas, eu fiz algum tempo um programa simples que mostra todos os processos sendo executados no windows, talvez possa te ajudar em algo, dai é so implementar algo pra ir salvando em arquivos com os horários. Segue o codigo:
Obrigado wagne23, dei uma melhorada no código, ainda não resolveu meu problema, deu para ter uma noção, se alguém tiver ainda alguma ideia de como fazer, eu agradeço
J
jorgyan
d34d_d3v1l:
que legal o código wagne23 , interessante…
Sobre o ardamax, o que vc quiz dizer sobre:
não entendi
d34d_d3v1l, quero quais são os programas abertos (que não esta ocultos na barra de tarefas) e quanto tempo ele está aberto, acho que o Ardamax é mesmo para capturar entradas do usuario, que não é o que eu quero.
Acho que vou fazer mesmo em Bash/Shell Script, mas se alguém tiver alguma ideia de como fazer em Java…
D
d34d_d3v1l
eu sei que
de tempo em tempo (vc programa)
o ardamax envia uma print screen da tela do pc…
entao se isso for util […]
X
x111
jorgyan:
d34d_d3v1l:
que legal o código wagne23 , interessante…
Sobre o ardamax, o que vc quiz dizer sobre:
não entendi
d34d_d3v1l, quero quais são os programas abertos (que não esta ocultos na barra de tarefas) e quanto tempo ele está aberto, acho que o Ardamax é mesmo para capturar entradas do usuario, que não é o que eu quero.
Acho que vou fazer mesmo em Bash/Shell Script, mas se alguém tiver alguma ideia de como fazer em Java…
Pela api do windows você consegue ver quais “janelas” estão abertas, mas não consegue ele não informa o tempo de abertura!
O correto é seria você criar um serviço que monitora-se as “janelas abertas” e quanto tempo elas ficaram abertas!
Como já foi dito Java não é a linguagem ideal para fazer isso. Em Delphi você consegue fazer isso facilmente.
“Quando um programador verifica que um paradigma ou uma linguagem não é a mais adequada ao domínio do seu problema e muda seu sistema utilizando um outro paradigma ou outra linguagem ele deixa de ser um programador para se tornar um desenvolvedor de software.”
Todo o “Desenvolvedor de Software” conhece mais de uma linguagem. Para um desenvolvedor de software uma nova linguagem com o mesmo paradigma se reduz a apreender a sintaxe dessa linguagem!
J
jorgyan
x@ndy:
jorgyan:
d34d_d3v1l:
que legal o código wagne23 , interessante…
Sobre o ardamax, o que vc quiz dizer sobre:
não entendi
d34d_d3v1l, quero quais são os programas abertos (que não esta ocultos na barra de tarefas) e quanto tempo ele está aberto, acho que o Ardamax é mesmo para capturar entradas do usuario, que não é o que eu quero.
Acho que vou fazer mesmo em Bash/Shell Script, mas se alguém tiver alguma ideia de como fazer em Java…
Pela api do windows você consegue ver quais “janelas” estão abertas, mas não consegue ele não informa o tempo de abertura!
O correto é seria você criar um serviço que monitora-se as “janelas abertas” e quanto tempo elas ficaram abertas!
Como já foi dito Java não é a linguagem ideal para fazer isso. Em Delphi você consegue fazer isso facilmente.
“Quando um programador verifica que um paradigma ou uma linguagem não é a mais adequada ao domínio do seu problema e muda seu sistema utilizando um outro paradigma ou outra linguagem ele deixa de ser um programador para se tornar um desenvolvedor de software.”
Todo o “Desenvolvedor de Software” conhece mais de uma linguagem. Para um desenvolvedor de software uma nova linguagem com o mesmo paradigma se reduz a apreender a sintaxe dessa linguagem!
:evil: Cara, eu apenas quero criar um programa bobo (não significa que não é dificil) para monitorar o tempo que meu irmão e eu fica mexendo no computador, não que eu tenha preguiça de aprender outra linguagem, porque também concordo com sua afirmação que todo programador deve saber mais de 1 linguagem: estudo Ruby, Python, Java, PHP e Haskell, mas não quero estudar a sintaxe de uma outra linguagem só para fazer isso!
E também por mais dificil que seja acho que isso vai adicionar um conhecimento extra, para quando tiver que implementar um sistema parecido, já vai esta meio caminho andado…
X
x111
O problema é que cada linguagem tem um propósito especifico, tirando Haskellq eu não conheço as outras tem um propósito específico, basicamente a internet. Então estamos em situações diferentes. A questão não é conhecer diversas linguagens, mas o propósito de cada linguagem. Se eu quero escrever uma macro para o excel não vou usar C++ e sim VBA. Cada linguagem se ajusta a um problema especifico, as que vc listou são basicamente para resolver problemas de softwares web, não que não possam fazer outras coisas, o problema seria o grau de dificuldade usando essas linguagens. Entendeu?
J
jorgyan
Com excessão de PHP, todas as linguagens que citei, não foram criadas para web, talvez, você passou a conhece-lás através de frameworks web, deveria dar uma verificada na história de cada uma.
No mais, acho que o mais provavelmente vou conseguir fazendo em Bash/Shell Script.
Alguém tem alguma sugestão?
M
marcobiscaro2112
No Linux é fácil. Experimente rodar o seguinte comando no terminal:
psaux|grep^$USER
Aí está a lista de programas em execução pelo usuário logado atualmente e o horário de início de cada um deles.
Isso poderia estar em um script que opcionalmente trata esses dados e direciona toda a saída desse comando para um arquivo de log.
O script poderia ser executado a cada 2 ou 5 minutos com uma entrada no crontab.
Já no caso do Windows, não faço ideia se é possível fazer algo parecido.
L
lucasportela
Pena que seja um software para você fiscalizar seu irmão, não gostaria de colaborar com isso…porém não gosto de deixar alguém com uma dúvida onde eu possa sanar
aproveitando a idéia do código que o wagne23 mostrou
troque o comando do ‘tasklist’ pelo comando abaixo:
WMIC PROCESS GET CREATIONDATE,NAME
“cmd /c WMIC PROCESS GET CREATIONDATE,NAME”
isso irá trazer o nome do processo junto com a data e o horario de quando o processo foi iniciado
exemplo:
20110219184105.796875-120 smss.exe
formato:
yyyymmddhhMMss.(não sei o que significa) |nome do processo
o comando WMIC é exclusivo do windows e funciona no Windows XP ou superior.
Acho que com isso o resto você consegue, senão por apenas alguns milhões de reais eu faço por você =p
J
jorgyan
lucasportela:
Pena que seja um software para você fiscalizar seu irmão, não gostaria de colaborar com isso…porém não gosto de deixar alguém com uma dúvida onde eu possa sanar
aproveitando a idéia do código que o wagne23 mostrou
troque o comando do ‘tasklist’ pelo comando abaixo:
WMIC PROCESS GET CREATIONDATE,NAME
“cmd /c WMIC PROCESS GET CREATIONDATE,NAME”
isso irá trazer o nome do processo junto com a data e o horario de quando o processo foi iniciado
exemplo:
20110219184105.796875-120 smss.exe
formato:
yyyymmddhhMMss.(não sei o que significa) |nome do processo
o comando WMIC é exclusivo do windows e funciona no Windows XP ou superior.
Acho que com isso o resto você consegue, senão por apenas alguns milhões de reais eu faço por você =p
Obrigado.
E Lucas Portela, não é para fiscalizar não, meu irmão sabe que eu vou fazer esse programa