SendMessage problem z argumentami

0

Witam, próbuję ze symulować naciśniecie przycisku do innego programu. Nie wiem dlaczego ciągle wyskakują mi błędne argumenty. Chce aby w programie został naciśnięty klawisz "T" (jest to pewien skrót). Oto kod:

        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

        const int WM_KEYDOWN = 0x100;
        IntPtr MainHandle = FindWindow("ahk_class SbFrameConEmul", "SMALL BUSINESS");
        SendMessage(MainHandle, WM_KEYDOWN, Key.T, 0); // has some invalid arguments 

Korzystam z:

 
                  SendMessage(
                  int hWnd,      // handle to destination window
                  uint Msg,       // message
                  long wParam,  // first message parameter
                  long lParam   // second message parameter
                  );

Dlaczego wiadomość musi być liczbą, i czym są dwa parametry (w,I)?

1

Poczytaj dokumentację. Tak prosto jakbyś chciał nie będzie.

Dwa parametry są różnymi parametrami, zależnie od wartości Msg.

0

Mam coś takiego, skompilowało się:

                    System.Diagnostics.Process.Start("C:\\SB4_DEMO\\ksiegaw.exe");
                    IntPtr MainHandle = FindWindow("ahk_class SbFrameConEmul", "SMALL BUSINESS");
                    Thread.Sleep(5000);
                    SendMessage(MainHandle, 0x0100, (IntPtr)0x29, (IntPtr)0x1);
                    SendMessage(MainHandle, 0x0101, (IntPtr)0x29, (IntPtr)0x1);  

Ale nie daje to efektu którego oczekiwałem. Program odpala inny program lecz nie wysyła tej wiadomości (nie wiem czy nie wysyła ale skrót nie działa).
Nie mam pojęcia co robię źle, proszę o wskazanie błędu jaki popełniam.

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