0

私はこのコードを使用しています:

int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
DoMouseClick(X, Y);
SendKeys.Send("^a");
SendKeys.Send("^c");
clipText = Clipboard.GetText();

public void DoMouseClick(int x,int y) 
{
  int X = Cursor.Position.X; 
  int Y = Cursor.Position.Y;
  mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)x , (uint)y, 0, 0); 
}

マウスの下でテキストをコピーし、「clipText」に保存します。

ここでの問題は、クリップボードから新しいテキストを取得しないが、以前にコピーしたテキストを取得することです。しかし、プログラムの後半でClipboard.text()を呼び出すか、CRTL + Pを押すと、正しいテキスト(上記のコードでコピーしたテキスト)が表示されます。

cliaboardを更新して、最新のテキストを取得できるようにする方法はありますか。

4

1 に答える 1

0

これが、SendKeys クラスにSendWait() メソッドがある理由です。ターゲット ウィンドウが実際にキーストロークを処理するまで戻りません。

于 2013-03-16T23:14:09.490 に答える