Le code sendkeys ci-dessous fonctionne bien pour le Bloc-notes, mais il ne fonctionne pas pour la calculatrice. Quel est le problème? (Il est un autre problème par rapport à ce que j'ai envoyé ici Sendkeys problem from .NET program).NET sendkeys à la calculatrice
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("User32")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
private void button1_Click(object sender, EventArgs e)
{
IntPtr calculatorHandle = FindWindow("SciCalc", "Calculator");
//IntPtr calculatorHandle = FindWindow("Notepad", "Untitled - Notepad");
if (calculatorHandle == IntPtr.Zero)
{
MessageBox.Show("Calculator is not running.");
return;
}
SetForegroundWindow(calculatorHandle);
System.Threading.Thread.Sleep(1000);
SendKeys.SendWait("111*11=");
//SendKeys.SendWait("{ENTER}");
//cnt++;
SendKeys.Flush();
}
Je appuie l'utilisation de SendMessage au lieu de SendKeys. Vous pouvez trouver des informations connexes ici: http://msdn.microsoft.com/en-us/library/ms646280 –
n'est pas SendKeys juste un wrapper SendMessage? – Adam
@Adam: Probablement mais pas sûr. Je suppose que ma suggestion était que peut-être vous avez besoin de faire d'autres commandes en plus des touches. Mais quoi que ce soit, vous pouvez le comprendre en regardant les messages. –