[C#] Postmessage Fehler

07/30/2014 17:42 End-of-Olymp#1
Ich versuche momentan einen simplen Bot für Aura Kingdom zu schreiben, jedoch will postmessage oder Sendmessage bei mir nicht so recht klappen.
Es fühlt sich für mich so an, als würden die Keys an das falsche handle gesendet, denn wenn man den Chat direkt anklickt werden dort die Keys von Postmessage angezeigt, wenn ich jedoch einfach nur auf das Fenster klicke und dann die Aktion durchlaufen lasse passiert nichts. Normalerweise sollte ein neuer Gegner mit TAB anvisiert werden, was mit der Tastatur auch ausgezeichnet funktioniert. Was ist hieran falsch oder wie bekomme ich das korrekte handle?

Code:
[DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);

const uint WM_KEYDOWN = 0x0100;
        const uint WM_KEYUP = 0x0101;

 private void button1_Click(object sender, EventArgs e)
        {
            Process[] processes = Process.GetProcessesByName("game.bin");

            foreach (Process p in processes)
            {
                IntPtr windowHandle = p.MainWindowHandle;
                SetForegroundWindow(windowHandle);
                PostMessage(windowHandle, WM_KEYDOWN, (IntPtr)Keys.Tab, (IntPtr)0);
            }
        }
07/30/2014 18:42 Mostey#2
1. Wieso nutzt du nicht C++? Wenn du schon alles unmanaged machst, kannst du auch gleich die WinAPI nutzen und sparst dir die Performanceeinbußen durch .NET.

2. Tja, dann wird wohl der Chat das Hauptfenster sein. Da hilft bloß ein manuelles checken via [Only registered and activated users can see links. Click Here To Register...]