Symulacja myszy i klawiatury

0

Potrzebuje napisać program w C#, który będzie symulować wciśnięcia klawiszy i kliknięcia myszką.

Jakie to będą polecenia.

Na przykład:
Załóżmy, że przycisk do FireFoxa na Pasku szybkiego uruchamiania znajdzuje się w punkcie o współrzędnych A i B. Oczywiście wartości A i B muszą być ustalone pod konkretny komputer i konkretne ustawienia systemu Windows.

Algorytm:

  • Przesuń wskaźnik myszy na współrzędne x=A i y=B
  • Wykonaj kliknięcie myszą
  • Odczekaj 3 sekundy
  • Wciśnij klawisze CTRL+"L"
  • Wciśnij klawisz "w"
  • Wciśnij klawisz "w"
  • Wciśnij klawisz "w"
  • Wciśnij klawisz "."
  • Wciśnij klawisz "w"
  • Wciśnij klawisz "p"
  • Wciśnij klawisz "."
  • Wciśnij klawisz "p"
  • Wciśnij klawisz "l"
  • Wciśnij klawisz ENTER

Skutkiem wywołania programu z tym algorytmem będzie uruchmienie przeglądarki FireFox i wyświetlenie Wirtualnej Polski.

Oprócz powyższego, potrzebuję jeszcze możliwość zrzutu całego ekrznu ze wskaźnikiem myszki do bitmapy.

0
Process p = new Process();
p.StartInfo.FileName = @"firefox";
p.StartInfo.Arguments = "http://www.wp.pl";
p.Start();

Nie mogłem się powstrzymać :/.

0

To też się przyda, ale to nie to, czego szukam.

W Delphi jest coś takiego:

SetCursorPos(X,Y); - przesunięcie położenie myszki pod wskazany punkt
mouse_event(2, 0, 0, 0, 0); - wciśnięcie lewego przycisku
mouse_event(4, 0, 0, 0, 0); - zwolnienie lewego przycisku

Teraz szukam tego samego w C# plus wciśnięcia klawiszy

0

Z klawiaturą będzie tak:
Prostsza metoda to użycie klasy SendKeys z frameworka, jednak ta klasa ma pewne ograniczenia: http://msdn.microsoft.com/en-us/library/ms171548.aspx
Trudniejsza metoda to użycie pinvoke i ręczna obsługa tego powyżej: http://www.pinvoke.net/default.aspx/coredll/SendInput.html

0

mozna tez i pinvokiem uzywac mouse_event i keybd_event --- ale trzeba je wykonywac z dobrego miejsca, we wlasciwym czasie.. troche szkoda zachodu

0

http://homeofcox-cs.blogspot.[...]ouse-and-keyboard-events.html

nawet używałem tego kiedys, aczkolwiek działało tylko na systemach XP 32 bit

0

Co was tak wzięło na odpowiadanie w wątku sprzed roku? Nie wiem właściwie czemu "REKLAMA" wybrał ten temat na wylewanie swoich żalów...

@down - moderatorzy nie śpią :]

0

hehe, ja nawet nie spojrzałem na date... fakt, rok temu O_o
A post pana REKLAMY zniknał

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0