|
分類:[C#]
お世話になります。
現在自作ソフトで、他の既製品アプリABC.exeを操作しようとしています。 フォームにボタンを配置し、ボタンを押すたびに他のアプリに データーを書き込んで実行させようと思っています。書き込むデーターは エクセルファイルDEF.xlsのA1から下に順次書いてあります。 下記リストでビルトすると「名前 'oWBook' は現在のコンテキスト内に存在しません。」 とエラーが出ます。
oWBookを認識させる方法が分かりません。 他のアプリのハンドルをprivate void button1_Click(object sender, EventArgs e)に 認識させる方法が分かりません。 要はパラメーターの受け渡し方が分かっていません。
今回初めてGUIアプリに臨んでいますが、考え方に間違いがあるのかもしれません。 環境は XP SP3 Visual C# 2010 Express ABC.exe と DEF.xls は起動し、ハンドルも分かっています。
以上宜しくお願いします。
//using **** ; 記述 省略
namespace jidouka { public partial class Form1 : Form {
// dll の記述 省略
public Form1() { InitializeComponent(); }
public void Form1_Load(object sender, EventArgs e) { System.IO.Directory.SetCurrentDirectory(@"C:\"); Process Trn = Process.Start(@"C:\ABC.exe"); Trn.WaitForInputIdle(2000);
IntPtr HWndoya = IntPtr.Zero; String Wintxt = "あいう";
while (HWndoya == IntPtr.Zero) { HWndoya = FindWindow(null, Wintxt + null); Thread.Sleep(100); }
MoveWindow(HWndoya, 0, 0, 816, 425, 1); Excel.Application Xls = new Excel.Application(); String filename = @"C:\DEF.xls"; Xls.Visible = false;
Excel.Workbook oWBook = Xls.Workbooks.Open(Filename: filename); ((Excel.Worksheet)oWBook.Sheets[1]).Select();
Excel.Range rng = ((Excel.Worksheet)oWBook.Sheets[1]).Cells[1, 1]; String val = rng.Value2; private void button1_Click(object sender, EventArgs e) { //Excel.Range rng = ((Excel.Worksheet)oWBook.Sheets[1]).Cells[1, 1]; //←エラー //String val = rng.Value2; //this.textBox1.Text = val;
} } }
|