Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: autoclicker

Sivun loppuun

qwerty1 [02.10.2010 22:25:04]

#

Olen tehnyt melkein kokonaan valmiiksi, mutta puuttuu yksi olennainen koodi.
Miten saan hiiren klikkaamaan vaikka joka sekunti, jos laitan numericupdowniin vaikka 1 ja 2 sekunnin välein kun laitan 2. Ja entä miten sitten jos laitan tunti numericupdowniin 1 ja seknuti numericupdowniin 2, siten että se osaa laskea noi yhteen niin että se sitten klikkaisi 1h2s välein.


ja onko mitenkään mahdollista laittaa siten että vaikka kello 3 maissa lähtisi klikkailemaan joka sekunti ja loppuu vaikka kello 5??

Jokotai [03.10.2010 21:01:11]

#

Kerro toki ohjelmointikielesi.
VB: Suosittelen tutustumaan timereihin(http://msdn.microsoft.com/en-us/library/zffx82xt(VS.80).aspx) ja Timeen(http://www.vb6.us/tutorials/Date and Time)

groovyb [04.10.2010 09:49:51]

#

en oikein ymmärtänyt kysymystä, mutta jos kyse on numericupdown kontrollin klikkailusta tietyin määräajoin, voit vain kasvattaa ajastimella sitä arvoa mitä kontrolli kasvattaa muutenkin. ei sinun tarvitse klikkailla mitään, vaan kasvatat yksinkertaisesti sitä arvoa. (xxxx.value = xxxx.value + 1)

Metabolix [04.10.2010 12:48:53]

#

Pienen pähkäilyn jälkeen sain kysymyksen seuraavaan muotoon:

lainaus:

Miten saan hiiren klikkaustiheyttä säädettyä NumericUpDown-komponenteilla, joista yksi kertoo tunnit ja toinen sekunnit?

Laita ohjelmaan Timer-komponentti ja muokkaa sen Interval-arvoa, kun laatikoiden luvut muuttuvat. Oikean arvon voit laskea kertolaskun ja yhteenlaskun avulla.

Kellonaika-asian voi toteuttaa monellakin tavalla. Yksi helppo (mutta hieman tuhlaileva) mahdollisuus on pyörittää yllä mainittua ajastinta jatkuvasti ja tarkistaa vain ennen klikkausta, että kello on oikean verran.

qwerty1 [04.10.2010 16:44:34]

#

Selkeämmin tämä:
Käytän tämän ohjelman tekemisessä VB:tä.
Esimerkki kuva:
http://img545.imageshack.us/i/kuvax.jpg/
Kyseisessä kuvassa on nytten numericupdown kontrolleja, joissa nytten tunneissa ja minuuteissa on annettu numero.
Tunneissa = 2
Minuuteissa = 1

1.Miten saisin mahdollisimman yksinkertaisella koodauksella laitettuu siten, että se klikkaisi minuutin välein jos kyseisen "numericupdown kontrollissa" = 1
Ja entä jos siinä olisikin 2....
-En mitenkään haluaisi laittaa näin jokaisen numeron kohdalla:

If NumericUpDown2.Value = 1 Then
Timer1.Interval = 60000
End If
If NumericUpDown2.Value = 2 Then
Timer1.Interval = 120000
End If
jne.....

2.Mutta entä jos onkin laitettu kahteen "numericupdown kontrolliin" arvo, miten se osaa laskea ne muutkin mukaan.
Tunti "numericupdown kontrollissa" = 2
Minuti "numericupdown kontrollissa" = 1
Miten se nytten osaisi klikata siten että se klikkaa 2h1min välein??

Tiedän että jos interval =
Joka 60 000 = minuuti
Joka 3 600 000 = tunti
Ja kaikki muutkin ettei siinä ole mitään ongelmaa....

Mod. lisäsi kooditagit

Jokotai [04.10.2010 16:52:44]

#

1. Timer1.Interval = NumericUpDown2.Value * 60000
2. TimerTotal.Interval = Timer1.Interval + Timer2.Interval(...)

qwerty1 [04.10.2010 17:11:16]

#

Kiitos "Jokotai", myös muille jotka auttoivat parhaansa mukaan.

Grez [04.10.2010 17:15:40]

#

Jos VB6:sta on kyse niin ei taida pystyä pistämään yli 65 sekunnin viivettä, eli Jokotain esimerkillä ei toimi jos numericupdown2 on suurempi kuin 1.

Itse tekisin niin, että laittaisin timerin laukeamaan vaikka sekunnin välein ja katsoisin paljonko edellisestä kerrasta on aikaa. Siis jos olisi pakko VB6:lla tehdä.

qwerty1 [04.10.2010 17:25:49]

#

Käytän VB 2008
TimerTotal.Interval ei toimi
Oisko tolle koodille toinen koodi joka ajaisi aivan saman??

Edit:
Löysin ratkaisun jo
Timer1.Interval = NumericUpDown1.Value * 7200000 + NumericUpDown2.Value * 60000 +(jne....)

Jokotai [04.10.2010 17:54:04]

#

Koodi joka käy Timer1.Interval :in NumericUpDown2.Value kertaa ja käy näin läpi kaikki NumericUpDown :it vuoroitellen.

edit: tästä tulikin turha :(

groovyb [04.10.2010 18:08:14]

#

itse tekisin jotenkin näin:

'
' Created by SharpDevelop.
' User: Groovyb
' Date: 4.10.2010
' Time: 17:56
'
' To change this template use Tools | Options | Coding | Edit Standard Headers.
'
Public Partial Class MainForm
	Public Sub New()

		Me.InitializeComponent()

	End Sub

	Dim Hours As Integer 'tunnit
	Dim Minutes as Integer 'Minuutit
	Dim ExitLoop As Boolean 'loopista ulos

	Sub AutoClick()

		MessageBox.Show("Tein jotain!")

	End Sub

	Sub StartAutoClick()

	Do While Not ExitLoop

		If Hours = Date.now.Hour AndAlso Minutes = Date.Now.Minute Then

		AutoClick 'Tehdään jotain

		'Alustetaan uudet arvot

		Hours = Date.Now.Hour 'nykyinen tunti
		Minutes = Date.Now.Minute 'nykyinen minuutti

		If Hours + 1 < 24 Then 'sama, +1 muutetaan
			Hours = Hours + 1 ' +1:n tilalle tuntien arvo numericupdownista
		Else
			Hours = Hours + 1 - 24 '24h pois
		End If

		If Minutes +1 < 59 Then 'sama, +1 muutetaan
			Minutes = Minutes + 1 ' +1:n tilalle minuuttien arvo numericupdownista
		Else
			Minutes = Minutes + 1 - 60 '60min pois
		End If

		End If
		System.Threading.Thread.Sleep(50) 'taukoa
		Application.DoEvents 'eventtien suoritusta...

	Loop

	End Sub



	Sub Button1Click(sender As Object, e As EventArgs)
		ExitLoop = false 'poistuminen falseksi
		Hours = Date.Now.Hour 'nykyinen tunti
		Minutes = Date.Now.Minute 'nykyinen minuutti
		If Hours + 1 < 24 Then 'sama, +1 muutetaan
			Hours = Hours + 1 ' +1:n tilalle tuntien arvo numericupdownista
		Else
			Hours = Hours + 1 - 24 '24h pois
		End If

		If Minutes +1 < 59 Then 'sama, +1 muutetaan
			Minutes = Minutes + 1 ' +1:n tilalle minuuttien arvo numericupdownista
		Else
			Minutes = Minutes + 1 - 60 '60min pois
		End If
		StartAutoClick 'looppi päälle
	End Sub

	Sub Button2Click(sender As Object, e As EventArgs)

		ExitLoop = true 'loopista ulos

	End Sub

End Class

Sekunnit kun vielä lisää loopin if lausekkeeseen niin saa tarkkuutta enemmän.

.Netin timerin maksimi interval taitaa kyllä olla yli 580 tuntia, joten jos et isompaa aikaa pistä niin tulisi kyllä riittää :)

qwerty1 [05.10.2010 22:49:01]

#

äh...
Mikä se doubleclikkauksen koodi on??
Onko single klikkauksellakin jokin koodi? (vaikkakin se on oletus ilman koodiakin)

1.
Jos laittaisin esim. "TextBox1" sisälle numeron 5, niin miten saisin sen pysähtymään 5 klikkauksen jälkeen??

2.
Textbox2 = Klikkauksien määrä
Textbox3 = Sekuntien määrä

Miten saisin laitettuu siten jos
"Textbox2" sisällä on 5 ja "Textbox3" 10
Miten saisin jos anneut arvot olisivat nytten noi ylemmät, siten että se klikkaa 5, jonka jälkeen odottaa 10sekuntia ja taas klikkaa 5 ja odottaa sen jälkeen taas 10 sekuntia (jne...)

Taitaa tarvita uuden timerin, mutta mitä sen jälkeen??

3. Miten saan ns.harmaaksi eli ei voi painaa enään nappeja(kuten radiobutton tai textbox tms) kun painaa "start" nappulaa.

Testasin kikkailla false toiminnolla, mutta eipä oikeen onnistunut...

Grez [06.10.2010 05:59:56]

#

1. Laitat muuttujaan arvon 5 ja vähennät sitä joka klikkauskerralla. Jos muuttujan arvo on 0, niin et enää klikkaa. (Esimerkiksi)

2. Ööh, no jos käytät timeria niin laitat siihen 10 sekunnin odotuksen. En tiedä mitä tapaa käytät.

3. Määrittelet nappien Enabled -arvoksi False

qwerty1 [07.10.2010 22:16:44]

#

Onko kenelläkään tietoa double klikkauksen koodista?? Ja jos on singleklikkauksestakin oma koodi niin senkin voi pistää tänne...

1. En tarkoita ihan tuota koodia....
Minulla on koodi joka laskee klikkaukset "Label10.Text" palkkiin
"Label10.Text = Val(Label10.Text) + Val(1)"
Sitten kun laitan vaikka "Textbox3.Text" palkkiin 5, niin sitten kun "Label10.Text" palkissa on sama luku kuin "Textbox3.Text" palkissa niin timerin sammuvat.

3.Ainiin se olikin enabled -arvosta....

Jokotai [07.10.2010 22:29:23]

#

Vinkki vastaiseen: Googlesta kannattaa etsiä sanoilla: doubleclick, vb, .NET, Visual, Basic, double, click

qwerty1 [07.10.2010 23:05:49]

#

PArhaani mukaan olen yrittänyt etsiä tuolta, mutta ei ole löytynyt oikein kunnolla....

groovyb [08.10.2010 08:50:42]

#

tutustuppa eventteihin. kaikkiin kontrolleriluokkiin ei doubleclick tapahtumaa ole periytetty, mutta oletuksena voisi sanoa että kaikkiin niihin on, joissa jonkinlaisia hiiritapahtumia käytetään.

hakusanoja: .Net doublick event, .Net Event handling, .Net Events tutorial

qwerty1 [08.10.2010 20:07:45]

#

Nonih, nyttten on kaikki tarvittavat koodekit jo tiedossa...jostain kumman syystä ei ollut toiminut eilen koodit mitä olin testannut.

Enään pientä hiomista niin ohjelma on täysin valmis.


Sivun alkuun

Vastaus

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

Tietoa sivustosta