Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ käyttiksen hallintaa

mika132 [14.09.2010 18:34:32]

#

Eli tarkoitukseni ei ole tehdä haittaohjelmaa vaan jonkin näköinen "tekoäly" mikä käyttää tässätapauksessa linuxia automaattisesti. Tarkoitus olisi, että ohjelmointi tehdään C++ ja kun ohjelma avataan ei tulisi mitään ikkunaa vaan hiiri ja nappulat avautuisivat kokonaan automaattiseksi. Eli tarkoitan tätä:

Kone käynnistyy ja klikkaan automaatio ohjelman käyntiin. ohjelma alkaa liikuttamaan hiirtä työpöydällä ja klikkaa jotain mikä siihen on ohjelmoitu. (esim yksinkertaisesti if(hiiren x == kuvake_muistio)). Sen jälkeen ohjelma odottaa hetken ja alkaa automaattisesti lukemaan muististaan sanoja ja kiroittaa niitä muistioon.

Ongelmat ovat nämä:
En tiedä miten saan liikutettua hiirtä ilman, että itse kosketaan hiireen.

En tiedä miten saisin suoritettua automaattisesti hiirellä klikkauksen.

eq [14.09.2010 19:19:02]

#

C++ ei sisällä käsitystä ohjauslaitteista - kuten esimerkiksi näppäimistöstä tai hiirestä. Näppäimistöä ja hiirtä ei voi siksi ohjata C++-standardikirjaston avulla alustariippumattomasti.

Linuxin puolella halunnet ohjata hiirtä X:n API:lla (ks. esim. XQueryPointer, XWarpPointer, XSendEvent, XFlush tai halutessasi joku X11-tutoriaali). Työpöydän ikonin paikantamisen joudut valitettavasti tekemään taas spesifisti omalle työpöydällesi (esim. GNOMEn komponentti, tai mikä tahansa muu) - paljon helpompaa on, jos ikoni on kiinteästi jossain, ja "tekoälysi" ei olekaan niin älykäs. Näppäimistön painallusten simulointi tehdään jälleen X:llä.

-tossu- [14.09.2010 19:35:59]

#

Mikäli tarkoitus ei ole tehdä kovin monimutkaista tekoälyä, AutoHotkey olisi varmasti C++:aa parempi ratkaisu tuohon.

Blaze [14.09.2010 19:48:18]

#

mika132 kirjoitti:

Eli tarkoitukseni ei ole tehdä haittaohjelmaa vaan jonkin näköinen "tekoäly" mikä käyttää tässätapauksessa linuxia automaattisesti.

Mua lähinnä kiinnostais, että miksi se pitää tehä noin vaikeasti? Linuxissa on tuhat kätevämpää tapaa tehdä juttuja automatisoidusti kuin simuloida hiiren heiluttamista, itseasiassa Linuxissa on tuhat kätevämpää tapaa tehdä juttuja itse kuin heiluttaa hiirtä.

-tossu- kirjoitti:

Mikäli tarkoitus ei ole tehdä kovin monimutkaista tekoälyä, AutoHotkey olisi varmasti C++:aa parempi ratkaisu tuohon.

Ei mahda toimia kuin Windows-käyttiksellä.

-tossu- [14.09.2010 19:53:50]

#

Blaze kirjoitti:

Ei mahda toimia kuin Windows-käyttiksellä.

AutoHotkeystä on .NET porttaus nimeltään IronAHK.

Metabolix [14.09.2010 20:05:21]

#

Linuxia ja X:ää käytettäessä kuitenkin xdotool ja tavallinen komentoriviskriptaus vaikuttaisi paremmalta yhdistelmältä kuin jokin .NET-viritelmä. Suoraan Xlibillä ei minusta kannata ohjelmoida, jos ei ihan oikeasti halua perehtyä juuri siihen, mistä taas ei ole useimmille mitään käytännön hyötyä, koska oikeat ohjelmat tehdään "joka tapauksessa" jollain korkeamman tason kirjastolla.

-tossu- [14.09.2010 20:29:15]

#

Metabolix kirjoitti:

Linuxia ja X:ää käytettäessä kuitenkin xdotool ja tavallinen komentoriviskriptaus vaikuttaisi paremmalta yhdistelmältä kuin jokin .NET-viritelmä.

En ollut kuullutkaan xdotool:ista ennen, mutta sehän näyttää kätevältä ja lienee tuohon parempi kuin IronAHK.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta