C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 33 を表示中)
■16078 / )  Re[2]: アプリケーションを起動してキーストロークを送りかた
□投稿者/ RJ (30回)-(2008/03/27(Thu) 19:43:42)
No16071 (シャノン さん) に返信
> ■No16066 (RJ さん) に返信
>>アプリケーションを起動してキーストロークを送りかたがわかりません・・・
>>Visual Basic にはあるのですがc#にはないのですか?
>
> Form の SendKeys が代わりに使えるでしょうか。

同じアプリケーション上でボタンにキーを登録してデバッグなし開始では動作確認できました
ぼくが作ったコード(ボタンが2つあり1のボタンを押すと2のボタンにタブ移動し2のボタンが押されメモ帳が起動するようにしました)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("notepad");
}
private void button1_Click(object sender, EventArgs e)
{
// Send the enter key to the button, which raises the click
// event for the button. This works because the tab stop of
// the button is 0.
SendKeys.Send("{Tab}");
SendKeys.Send("{Enter}");
}
}
}

しかし
別のアプリケーション上では動作するまえにエラーでます・・・
サンプルコード(電卓を別アプリケーションとしてる)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("USER32.DLL")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
private void button1_Click(object sender, EventArgs e)
{
IntPtr Handle = FindWindow("SciCalc", "Calculator");
if (Handle == IntPtr.Zero)
{
MessageBox.Show("Calculator is not running.");
return;
}
SetForegroundWindow(Handle);
SendKeys.SendWait("111");
SendKeys.SendWait("*");
SendKeys.SendWait("11");
SendKeys.SendWait("=");

どこかまちがっていますか?おしえてください。

返信 編集キー/


管理者用

- Child Tree -