C♯相談室 Part20
■ このスレッドは過去ログ倉庫に格納されています
0348326
NGNG>>344のコードの最初のAlt+TABの後に、
System.Threading.Thread.Sleep(1000);
を入れてみたのですが、実行してもコピーしなかったり、
たまにコピーしても何故か一つ前に実行した時に選択した文字列が表示されたり、
よく分からない動作をします。
で、SendKeysをググっていて、SetForegroundWindow()なるものを見つけて、
処理を分ける為とりあえずNotepad限定でやってみようと、見よう見まねで以下のようにやりました。
[DllImport("User32.dll")]
static extern int SetForegroundWindow (IntPtr hWnd);
private void button2_Click(object sender, System.EventArgs e)
{
Process[] pp = Process.GetProcessesByName("Notepad");
IntPtr i = pp[0].MainWindowHandle;
SetForegroundWindow(i);
System.Threading.Thread.Sleep(500);
System.Windows.Forms.SendKeys.Send("^C");
string mes = (string)Clipboard.GetDataObject().GetData(DataFormats.Text);
MessageBox.Show(this,mes);
}
続く
■ このスレッドは過去ログ倉庫に格納されています