Hi,
ich habe über die Möglichkeiten von SendMessage gelesen. Gut. Jetzt wollte ich das mal kurz ausprobieren und hab kleine Testapp gemacht.
Mit SendKeys funktioniert es, aber bei SendMessage funktioniert es nicht und ich verstehe einfach nicht wo mein Fehler liegt.
Ich habe schon viele verschiedene Dinge ausprobiert, aber ich finde die Lösung des Problems einfach nicht.
Hat vielleicht jemand von euch eine Idee wo mein Fehler ist. Bin für jeden Hinweis dankbar
Ich benutze Win7 64Bit, ist es möglich das es da ein Problem gibt?
ich habe über die Möglichkeiten von SendMessage gelesen. Gut. Jetzt wollte ich das mal kurz ausprobieren und hab kleine Testapp gemacht.
Mit SendKeys funktioniert es, aber bei SendMessage funktioniert es nicht und ich verstehe einfach nicht wo mein Fehler liegt.
Ich habe schon viele verschiedene Dinge ausprobiert, aber ich finde die Lösung des Problems einfach nicht.
Hat vielleicht jemand von euch eine Idee wo mein Fehler ist. Bin für jeden Hinweis dankbar

Ich benutze Win7 64Bit, ist es möglich das es da ein Problem gibt?
Code:
static class Program
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
static private String m_strNameOfAppToSendInput = "notepad++";
public const Int32 WM_KEYDOWN = 0x100;
public const Int32 WM_KEYUP = 0x101;
[STAThread]
static void Main()
{
Process[] rgProcesses = Process.GetProcesses();
foreach (Process cProcess in rgProcesses)
{
if (cProcess.ProcessName == m_strNameOfAppToSendInput)
{
IntPtr ProcessMainHandle = cProcess.MainWindowHandle;
//das geht
//SetForegroundWindow(ProcessMainHandle);
//SendKeys.SendWait("test");
//warum das nicht
IntPtr swdRet = new IntPtr(0);
swdRet = SendMessage(ProcessMainHandle, WM_KEYUP, (IntPtr)Convert.ToInt64(Keys.I), IntPtr.Zero);
}
}
}
}