1. Miten saan ohjelman etsimään tietyn värin toisesta ohjelmasta ja klikkaamaan sitä kun on löytänyt sen? Jos niin ei pysty tekemään, niin pystyykö sellasteen, että kun laittaa hiiren tietyn värin päälle ja painaa vaikka entteriä niin ohjelma klikkaa sitä samaa väriä ohjelmasta vaikka joka toinen sekunti timerilla?
2. Niin ja miten saan että ohjelma sulkeutuu kun painaa ESCiä vaikka se ei olisi aktiivinen eli jokin muu ohjelma olisi aktiivinen ja se toimisi?
1. riippuu miten se väri on toisessa ohjelmassa. Jos on suoraan ikkunassa kiinni (eikä siinä olevissa kontrolleissa) niin helppoa: GetPixel-winapilla saa pikselin värin siitä tietystä kohdasta. Tarviit vain ikkunan hWnd:n.
Getwindowrect-winapi kertoo ikkunan paikan, GetCursorPos hakee hiiren paikan, ja hiiren position vaihtaminen onnistuu vastaavasti SetCursorPosilla. Mouse_eventilla voi simuloida klikkauksia.
Mitäköhän tarkoitat "värin klikkauksella"... Varmaan että klikkaa hiirellä sitä kohtaa missä väri on.
2. GetAsyncKeyState-winapi.
Käytä hakua oikeilla sanoilla jotka napsit tästä viestistä niin löydät lisää.
Ja käsittääkseni runescapen autominerit ym. on kiellettyjä. Ja runescape on pöhkö peli.
Ei toiminu toi GetAsyncKeyState-winapi.
Kirjotin tälläsen koodin mikä siinä on vikana? Kun painaa ESCiä kursori vaan häviää ja tulee takas:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Timer1.Enabled = False
Timer2.Enabled = False
End If
End SubNiin ja miten saan että se hiiri menee tietyn värin kohdalle? Esimerkki koodi, please?
Ethän sinä tuon koodin perusteella edes käytä koko GetAsyncKeyStatea!
Aijaaa
Mitenkäs sitä sitten käytetään? Kirjota please joku esimerkki koodi tästä ja tosta ekasta kysymyksestä. Mousedownit ja timerit mä osaan jo.
Laitat vaikka timerin tarkistamaan tasaisin väliajoin onko GetAsyncKeyState(vbKeyEscape) jotain muuta kuin false. Tietysti sinun täytyy kutsua samaa funktiota vaikka form_loadissa, koska muuten se tunnistaa ennen ohjelman käynnistystä tapahtuneet painallukset. Pelasin muuten aikoinani Runescapea mutta kyllästyin siihen ja lopetin. Muistan kyllä, että harvinaisempien aineiden kaivuu oli tarpeeksi vaikeaa jo ilman mitään autominer-pellejä.
Nunk kirjoitti:
Mitenkäs sitä sitten käytetään?
Tuota on kysytty aiemmin niin useasti, ettei voi olla löytymättä haulla.
Ja Google toki tietää kaiken.
kimmoke kirjoitti:
Laitat vaikka timerin tarkistamaan tasaisin väliajoin onko GetAsyncKeyState(vbKeyEscape) jotain muuta kuin false. Tietysti sinun täytyy kutsua samaa funktiota vaikka form_loadissa, koska muuten se tunnistaa ennen ohjelman käynnistystä tapahtuneet painallukset. Pelasin muuten aikoinani Runescapea mutta kyllästyin siihen ja lopetin. Muistan kyllä, että harvinaisempien aineiden kaivuu oli tarpeeksi vaikeaa jo ilman mitään autominer-pellejä.
Voitko kirjoittaa edes pienen esimerkki koodin?
Kun mä kokeilin yhtä mikä löyty hausta ohjelma vaan tilttas heti alkuun.
En mä osaa tehdä sellasta, jos kukaan ei voi kirjoittaa edes pientä esimerkki koodia.
Nunk kirjoitti:
En mä osaa tehdä sellasta, jos kukaan ei voi kirjoittaa edes pientä esimerkki koodia.
Auts... Sattuu sydämeen... Tämän paikan perimmäinen tarkoitus on auttaa, eikä koodata toisen puolesta. Jos joku tekee tuon, niin tehköön.
No auttakaa sitten.
1. Linkkaat tarvittavan/tarvittavat WinApi kirjaston/kirjastot.
2. Tarkistat GetAsyncKeyState -funktiolla näppäimen tilan vaikka KeyDown -aliohjelmassa
Esim.
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'Kirjastosta en tiedä Private Sub Form_Keydown(parametrit) if GetAsyncKeyState(näppäin) then 'Härpäkettä End if End Sub
Toimivuus ei taattu, mutta näin se muistaakseni C/C++:ssa menee.
Ei toiminu tääkään ei tapahtunu mitään:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form_Keydown(KeyCode As Integer, Shift As Integer)
If GetAsyncKeyState(vbKeyEscape) Then
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
End If
End Sub
3. Mitenkäs muuten saan ohjelman painamaan oikeata nuolinäppäintä viide sekunnin ajan?
4. Niin ja tää ei kuuli ohjelmointiin, mutta miten voisin nauhoittaa videon ohjelmasta?
Nunk kirjoitti:
4. Niin ja tää ei kuuli ohjelmointiin, mutta miten voisin nauhoittaa videon ohjelmasta?
Frapsilla. http://www.fraps.com
Mulla toimii ainakin seuraava (.NETillä):
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'Form_KeyDownissa seuraava ehtolause:
If GetAsyncKeyState(&H1B) Then
MsgBox("Pöö")
End IfMulla ei oo .NET versio. Pysyytkös sillä muuten tehdä yhtä hyviä ohjelmia kuin VB:llä? Ei varmaan.
Nunk kirjoitti:
Mulla ei oo .NET versio. Pysyytkös sillä muuten tehdä yhtä hyviä ohjelmia kuin VB:llä? Ei varmaan.
Mistä kummasta niin päättelit?
Nunk kirjoitti:
Pysyytkös sillä muuten tehdä yhtä hyviä ohjelmia kuin VB:llä?
Parempia, sitä vartenhan se kehitettiin, sillä on vain huono maine :/
Nunk kirjoitti:
Mulla ei oo .NET versio.
Tiedän kyllä, että käytät jotakin vanhempaa VB:tä, mutta kyllä tuo koodi toimii myös vanhemmissa.
Jaa. Miten tolla Frapsilla nauhoitetaan?
Ohjelman mukana tulee käyttöohjeet. Lue ne.
Edit: tai jos tämä menee paremmin perille: RTFM
No jos tarkistuksen panee KeyDown-aliohjelmaan, niin se ei tietenkään hyödytä mitään. Eihän sinne asti päästä, jos ikkuna ei ole aktiivinen. Siksi kannattaa noudattaa kimmoken neuvoa ja liittää koodi Timeriin.
(mod: poistettu puoli tusinaa typerää viestiä)
Nunk, miks oot tekemäs omaa rs cheating ohjelmaa kun voi käyttää muidenkin tekemiä :D
www.reinet.co.uk
www.rscheatnet.com
www.mstrb.net
jne
Kenties siksi, että ne saatetaan huomata helpommin. :)
Jaah, botteja RuneScapeen.. Hm.. Olen kyllä joskus tosin harkinnut väsätä AutoFollowin tekoa, joka lähtee seuraamaan satunnaista pelaajaa, toistaen aina vähän väliä: "I am AutoFollower ver. x.xx and i follow you forever!" X-D
-Grey-
Runescape on huono juuri ärsyttävien autominer noobien takia.
Runescape on ärsyttävä muuten vaan. Mutta Nunk hei, pistä timerit arrayhin. On huonoa käytöstä kirjoittaa Timer1.Enabled = False: Timer2.Enabled = False: Timer3.Enabled = False jne...
For i = LBound(Taimeri) to UBound(Taimeri): Taimeri(i).Enabled = False: Next
Aihe on jo aika vanha, joten et voi enää vastata siihen.