c# - SImulated mouse scrolling is processed after sleeps -


i using

for (int = 0; < 10; i++) {     mouse_event(mouseeventf_wheel, 0, 0, -10, 0);     system.threading.thread.sleep(1000); } 

to scroll down bit wait second scroll , on. however, seems wait 10 seconds scroll down -100.

i not sure if relevant trying scroll down page in web browser part of windows form (once scroll bottom page loads more , can scroll again).

the problem gui freezes , not updated duration of loop, because running on same thread. see changes every second need run on background thread.

you can use system.timers.timer job. set

system.timers.timer timer = new system.timers.timer(); timer.interval = 1000;     timer.autoreset = true; 

and hook elapsed event in handle scrolling

timer.elapsed += timer_elapsed; timer.start(); 

you need counter in for-loop. count down until 0 in event handler

int counter = 10;  private void timer_elapsed(object sender, system.timers.elapsedeventargs e) {     if(counter > 0)     {         mouse_event(mouseeventf_wheel, 0, 0, -10, 0);         counter--;     }     else     {         system.timers.timer t = sender system.timers.timer;         t.stop();     } } 

this way can stop timer after 10 iterations

as suggested jakub dÄ…bek can use system.windows.forms.timer. this:

system.windows.forms.timer timer = new system.windows.forms.timer(); timer.interval = 1000; timer.tick += timer_tick; timer.start();  private void timer_tick(object sender, eventargs e) {     // here same code above     } 

Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -