• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Przekazywanie kliknięć myszy,klawiszy kombinacji klawiszy

Aruba Cloud - Virtual Private Server VPS
0 głosów
251 wizyt
pytanie zadane 24 lipca 2016 w C# przez KSYMEK Gaduła (3,280 p.)
zamknięte 27 lipca 2016 przez KSYMEK
Witam. Chce by mój program przekazywał do innego okienka wciskanie klawiszy myszy,klawiatury i nie mam pojęcia jak to zrobić. Szukałem po Google ale niestety bez żadnych sukcesów. Prosiłbym o danie mi jakiś wskazówek,lub może gotowych bibliotek stworzonych pod ten cel jeśli takowe istnieją i okazały się za trudne do znalezienia dla mnie :P. Z góry dziękuje za wszelką pomoc :).
komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

0 głosów
odpowiedź 27 lipca 2016 przez Damian Radowiecki Użytkownik (920 p.)
wybrane 27 lipca 2016 przez KSYMEK
 
Najlepsza

Witam,

Nie jestem ekspertem C#, ale próbowałem się trochę bawić w programowanie w tym języku. Z tego co mi wiadomo to np. żeby uzyskać możliwość oprogramowania kliknięcia na przycisk, wystarczy w widoku Design kliknąć dwa razy na dany przycisk, a VisualStudio automatycznie przekieruje Cię do metody wywoływanej po kliknięciu na przycisk. Metoda taka najczęściej ma formę: nazwaPrzycisku_Click(object sender, EventArgs e){ ... }. Przypuszczam, że podobnie sprawa się ma co do obsługi kliknięć klawiszy klawiatury. Tutaj z tego co mi wiadomo nazwa metody ma formę: nazwaElementu_KeyDown(object sender, EventArgs e){ ... }. Tutaj możesz poczytać sobie odnośnie obsługi zdarzeń związanych z klawiaturą https://msdn.microsoft.com/en-us/library/ms171536(v=vs.110).aspx . I w tych metodach wstawiasz odpowiedni kod. Mam nadzieję, że chociaż trochę pomogłem.

Pozdrawiam,

Damian Radowiecki

komentarz 27 lipca 2016 przez KSYMEK Gaduła (3,280 p.)

Dzięki za odpowiedź i przypomnienie że zostawiłem tutaj pytanie. Znalazłem lepszy sposób na to. Użyłem funkcji sendkeys 

SendKeys.Send("{ENTER}");

Dokładny opis funkcji znajduje się tu: https://msdn.microsoft.com/pl-pl/library/system.windows.forms.sendkeys.send(v=vs.110).aspx

W skrócie zrobiłem to w sposób następujący:

    // Get a handle to an application window.
        [DllImport ( "USER32.DLL", CharSet = CharSet.Unicode )]
        public static extern IntPtr FindWindow ( string lpClassName,
            string lpWindowName );

        // Activate an application window.
        [DllImport ( "USER32.DLL" )]
        public static extern bool SetForegroundWindow ( IntPtr hWnd );

        public Form1 () {
            InitializeComponent ();
        }

        public void Startbtn_Click ( object sender, EventArgs e ) {
            IntPtr handle = FindWindow ( null, "appname" );

            if ( noxHandle == IntPtr.Zero ) {
                MessageBox.Show ( "Error" );
                return;
            }
            SetForegroundWindow ( handle );
            SendKeys.Send("{ENTER}"); // klawisz jaki chcemy symulować
        }

 

Podobne pytania

0 głosów
2 odpowiedzi 382 wizyt
+1 głos
0 odpowiedzi 185 wizyt
0 głosów
1 odpowiedź 869 wizyt
pytanie zadane 30 listopada 2017 w C# przez Rekus Użytkownik (500 p.)

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...