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

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

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

クリップボードで数値や配列をやりとりできますか?

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■91237 / inTopicNo.1)  クリップボードで数値や配列をやりとりできますか?
  
□投稿者/ わけあり (1回)-(2019/06/07(Fri) 21:46:12)

分類:[.NET 全般] 

https://www.atmarkit.co.jp/fdotnet/dotnettips/158setclpbrd/setclpbrd.html
VBでこのページにあるようなコードで
テキストや画像データをクリップボードにコピーすることができます。

一方で、SingleやIntegerなどの数値や
数値の配列をクリップボードで直接やり取りすることができますか?

いったん、テキストに変換する必要があるのでしょうか?


引用返信 編集キー/
■91242 / inTopicNo.2)  Re[1]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ Azulean (1063回)-(2019/06/07(Fri) 23:01:04)
No91237 (わけあり さん) に返信
> 一方で、SingleやIntegerなどの数値や
> 数値の配列をクリップボードで直接やり取りすることができますか?
> 
> いったん、テキストに変換する必要があるのでしょうか?

送り手も、受け手も自作できるなら、やりとりするデータの名前とデータ型さえ決めておけば受け渡しできます。

' 送り手
Dim a As Double() = {1.0, 2.5, 5.0}
Dim d As New DataObject
Call d.SetData("My double object", a)
Clipboard.SetDataObject(d)

' 受け手
Dim d = Clipboard.GetDataObject()
Dim r() As Double = d.GetData("My double object")


なお、どちらか一方でも、他者が作るプログラムの場合、相手方が対応していなければできません。

引用返信 編集キー/
■91244 / inTopicNo.3)  Re[1]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ PANG2 (299回)-(2019/06/07(Fri) 23:08:59)
前提条件は何でしょうか?
例えば、同一PC上に2つのアプリが動いているとして、データをやり取りする手段としてクリップボード経由でしょうか?
それ自体、普通は駄目な設計だと思いますが。。

>いったん、テキストに変換する必要があるのでしょうか?

アプリ間で、データをやり取りするにはシリアライズ/デシリアライズという作業が発生しますが、
XMLやJSONや独自仕様でテキスト化するのもいいし、バイナリシリアライズでもシーケンシャル(構造体配列)でもいいでしょう。
引用返信 編集キー/
■91249 / inTopicNo.4)  Re[2]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり (2回)-(2019/06/08(Sat) 10:56:14)
Azuleanさん

ありがとうございます。

まだ、試していませんが、
恐らくこれでうまくいくと思います

PANG2さん

やりたいことは、
自作した二つのプログラム間でデータをやり取りすることです。
> それ自体、普通は駄目な設計だと思いますが。。
これが駄目な設計なのはなぜでしょうか?

引用返信 編集キー/
■91252 / inTopicNo.5)  Re[3]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ PANG2 (300回)-(2019/06/08(Sat) 15:54:43)
No91249 (わけあり さん) に返信

> やりたいことは、
> 自作した二つのプログラム間でデータをやり取りすることです。
>>それ自体、普通は駄目な設計だと思いますが。。
> これが駄目な設計なのはなぜでしょうか?

クリップボードはユーザーがコピー&ペーストをするためにあるので、
黙って汚すのは良くないと思います。

アプリAにコピーボタン、アプリBにペーストボタンがあるのであれば、
クリップボードが汚されるのは明白なので、許されると思います。
引用返信 編集キー/
■91253 / inTopicNo.6)  Re[4]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり (3回)-(2019/06/08(Sat) 16:26:13)
No91252 (PANG2 さん) に返信

ありがとうございます。

ちなみに
クリップボードやHDD/SSDを使わずに
アプリ間でデータをやりとりする方法ってありますか?

引用返信 編集キー/
■91255 / inTopicNo.7)  Re[5]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ キングダム (33回)-(2019/06/08(Sat) 18:31:51)
No91253 (わけあり さん) に返信

プロセス間通信でググったらいろいろあるみたいですよ
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E9%96%93%E9%80%9A%E4%BF%A1

.NETは高機能なのでほとんどサポートされてるんじゃないかなと思いました
私はファイルしか使ったことないのでよくわかりませんけどガハハ
引用返信 編集キー/
■91257 / inTopicNo.8)  Re[5]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ PANG2 (301回)-(2019/06/08(Sat) 22:46:11)
2019/06/08(Sat) 22:51:50 編集(投稿者)
2019/06/08(Sat) 22:51:21 編集(投稿者)

No91253 (わけあり さん) に返信
> ちなみに
> クリップボードやHDD/SSDを使わずに
> アプリ間でデータをやりとりする方法ってありますか?

経験値からは、ファイル渡しが最強ガハハと思いますが、
Windows的方法や.NET的方法は、いろいろあるでしょう。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ