Avatar billede skovborg Nybegynder
20. april 2006 - 10:43 Der er 9 kommentarer og
1 løsning

Fange et program og sende keystrokes

Hej i kloge
Jeg vil meget gerne have en ide om hvordan jeg fanger et program, som f.eks. word sætter det i fokus og sender nogle keystrokes.
Det er vigtigt at programmet (word) allerede er startet op og at der selv om der er et andet program i fokus så skiftes tilbage til word.
Min største udfordring er at fange det pid som programmet har, det at sende et par keystrokes er ikke noget problem.

Den korte forklaring er et program f.eks. notepad er allerede startet op og kører, jeg starter mit lækkere javaprogram det bringer notepad i fokus og sender et par keystrokes.

Med venlig hilsen
Morten Skovborg
Avatar billede _carsten Nybegynder
20. april 2006 - 22:06 #1
Tag et kig på http://www.hyperic.net/downloads/sigar.jsp

Det kan godt nogle ting, dokumentationen er meget sparsom og det er ikke rigtig lykkedes mig at finde ud af det endnu, men prøv selv at arbejde lidt videre med det.

Download Sigar.
Avatar billede _carsten Nybegynder
20. april 2006 - 22:36 #2
Følgende udskriver i hvertfald alle kørende processer, men hvordan man bringer en
kørende proces i front, har jeg pt. ikke fundet ud af


public class Main {
   
    public Main() {
    }
   
    public static void main(String[] args) {
        Sigar si = new Sigar();
       
        long[] pid = new long[0];
        try {
            pid = si.getProcList();
        } catch (SigarException ex) {
            ex.printStackTrace();
        }
       
        ProcState ps;

        try {
            for(int i = 0; i < pid.length; i++){
                ps = si.getProcState(pid[i]);
                proc = ps.getName();

                System.out.println(ps.getName());               
            }
        } catch (SigarException ex) {
            ex.printStackTrace();
        }
    }
}
Avatar billede _carsten Nybegynder
22. april 2006 - 16:21 #3
Sigar kan ikke det du søger.

Prøv lykken her:  http://www.eksperten.dk/spm/Programmering/Visual-Basic/

Det må være muligt for vbs eksperterne at lave et vb script som eventuelt kunne afvikles fra en bat fil, stik det en parameter eller 2, som kunne være programnavn eller PID, så kan du afvikle det via java.
Der er ihvertfald noget i vb som hedder SetForegroundWindow - men jeg kan ikke skrue det sammen.
Avatar billede skovborg Nybegynder
22. april 2006 - 21:33 #4
Jeg kan desværre ikke bruge det da programmet der skal fanges er aktiveret før mit javaprogram starter op..
Måske skulle jeg gå over til fjenden C#... skræmmende ))-:

Vi ses
Morten skovborg
Avatar billede _carsten Nybegynder
22. april 2006 - 22:10 #5
Det tror jeg ikke er nødvendigt, du kan snildt bruge "Sigar" til at fange en hvilken som helst kørende proces og så stikke et vb script et PID eller procesnavn som parameter - det må kunne lade sig gøre.

Jeg smider så gu et spørgsmål i VB
Avatar billede skovborg Nybegynder
18. december 2007 - 11:00 #6
kommer du ikke med et svar?
Avatar billede _carsten Nybegynder
18. december 2007 - 16:24 #7
Øhhh - jo det kan jeg da godt, det ligner en gammel sag, kunne du bruge Sigar, eller kan heller ikke huske hvad det gik ud på ? :)
Avatar billede _carsten Nybegynder
18. december 2007 - 16:25 #8
Shit - glemte at afmærke svar
Avatar billede skovborg Nybegynder
18. december 2007 - 18:06 #9
he, he nej jeg kan ikke huske hvad det gik ud på  ;-))
Avatar billede _carsten Nybegynder
18. december 2007 - 20:17 #10
Nu har jeg efter 1 3/4 år lagt et svar, der skulle ikke gerne gå 1 3/4 år før du accepterer det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester