Terve!
Tarkoituksenani olisi väsätä minecraftiin ohjelma, joka kirjoittaisi minecraft klienttiin haluamani asian, kuten esimerkiksi "/give nick 46 64". Tarkoituksena siis että saisin minecraftissa olevia asioita serverilläni vain nappia painamalla.
onko Herroilla tai miksei Neideilläkin ideoita?
VB6:ssa on AppActivate funktio, jolla voi aktivoida haluamansa ikkunan ja SendKeys -funktio, jolla voi lähettää haluamiaan näppäimenpainalluksia.
Grez kirjoitti:
VB6:ssa on AppActivate funktio, jolla voi aktivoida haluamansa ikkunan ja SendKeys -funktio, jolla voi lähettää haluamiaan näppäimenpainalluksia.
aloin testailla noilla funktioilla, ja nyt törmäsin ropleemaan: AppActicate toimii hyvin, mutta SendKeys funkkari haluaa ilmeisesti että ohjelma johon kirjaimet lähetetään, avataan Shell-funktiolla. En kuitenkaan haluaisi vb:n avaavan softaa vaan vain lähettävän kirjaimet. Mitään tehtävissä?
Ohessa koodini jolla olen systeemiä testaillut, testiohjelmana on ollut notepad
Private Sub Command1_Click() 'AppActivate ("Untitled - Notepad") 'SendKeys "{ESC}", True Shell "", vbNormalFocus SendKeys "t" SendKeys "asas" End Sub
Kyllä ne yleisesti ikkunaan, joka on kulloinkin aktiivisena.
Kannattaa tietty huomata, että sendkeys ei toimi (ainakaan kunnolla) vistassa tai uudemmissa, mutta ei kai kukaan VB6:lla koodaakaan Vistalle tai uudemmille.
Grez kirjoitti:
Kyllä ne yleisesti ikkunaan, joka on kulloinkin aktiivisena.
Kannattaa tietty huomata, että sendkeys ei toimi (ainakaan kunnolla) vistassa tai uudemmissa, mutta ei kai kukaan VB6:lla koodaakaan Vistalle tai uudemmille.
Itse ainakin Windows XP SP3 lontoonkielisellä menen. Testailkaamme siis vielä.
Niin ja siis tietty on ohjelmia jotka hylkii tuolleen lähetettyjä näppäimenpainalluksia myös vanhemmilla. Mutta itse testailin äsken omalla XP virtuaalikoneella ja kaikki normaalit ohjelmat ottivat tarjotut painallukse vastaan vaikka mitään en ollut käynnistänyt VB:n kautta.
Grez kirjoitti:
Niin ja siis tietty on ohjelmia jotka hylkii tuolleen lähetettyjä näppäimenpainalluksia myös vanhemmilla. Mutta itse testailin äsken omalla XP virtuaalikoneella ja kaikki normaalit ohjelmat ottivat tarjotut painallukse vastaan vaikka mitään en ollut käynnistänyt VB:n kautta.
Voinetko näyttää käyttämäsi testikoodinpätkän? Epäilen että omassa testissäni on jotain todella tärkeää unohtunut.
Tokihan voin
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() AppActivate "Ohjelmointiputka" 'Aktivoi selaimen Sleep 200 SendKeys "Tokihan voin" End Sub
Moi Lotto!
Toinen mahdollinen ja varsin hyvä ratkaisu olisi Active Accessibility
Imppaa Microsoft Active Accessibility 2.0 Redistributable
Imppaa hyvä esimekki Accessibility-jutskiin tutustumiseen...
Esimerkki tarvitsee myös tämän Microsoft Speech API 5.1
Imppaa täältä työkaluja...(voit käytää myös Spy++'aa)
Tsekkaa täältä hyvä artikkeli...
Olen esim. viritellyt .NET puolelle AccLayer-viritelmän, jota käytän nappaamaan/pukkaamaan viestejä mm. Poker-client'lle (online flash)...
Kiitoksia vastauksista!
Grezin vinkissä olleen Sleep:n avulla sain tuon toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.