謎のクリップボードの問題:
一部のデータ (テキスト) をクリップボードにコピーすることが期待される外部アプリケーション (System.Diagnostics.Process オブジェクトとして) を起動する開発中のアプリケーションがあります。外部アプリが閉じると、クライアント アプリケーションはクリップボードからテキストを取得します。
問題は、外部アプリケーションがテキストをクリップボードにコピーしたら、メモ帳などに貼り付けることができますが、クライアント アプリがクリップボードから空の文字列を取得していることです。
外部アプリ コード:
private void btn1_Click(object sender, EventArgs e)
{
//copy text pane to clipboard
DataObject obj = new DataObject();
obj.SetData(tbText.Text);
System.Windows.Forms.Clipboard.SetDataObject(obj);
}
クライアント アプリ コード:
string returnedValues = string.Empty;
System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
if (data != null && data.GetDataPresent(System.Windows.Forms.DataFormats.Text) == true)
{
returnedValues = (string) data.GetData(System.Windows.Forms.DataFormats.Text, true));
}
クリップボードにテキストがあり、他のアプリケーションに貼り付けることができますが、データ オブジェクトは常に null です。
クライアント アプリ コードの欠陥を教えてもらえますか? クリップボードにデータがあるにもかかわらず、「データ」が常に null になるのはなぜですか?