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

わんくま同盟

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

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

ツリー一括表示

クリップボードで数値や配列をやりとりできますか? /わけあり (19/06/07(Fri) 21:46) #91237
Re[1]: クリップボードで数値や配列をやりとりできますか? /PANG2 (19/06/07(Fri) 23:08) #91244
Re[1]: クリップボードで数値や配列をやりとりできますか? /Azulean (19/06/07(Fri) 23:01) #91242
  └ Re[2]: クリップボードで数値や配列をやりとりできますか? /わけあり (19/06/08(Sat) 10:56) #91249
    └ Re[3]: クリップボードで数値や配列をやりとりできますか? /PANG2 (19/06/08(Sat) 15:54) #91252
      └ Re[4]: クリップボードで数値や配列をやりとりできますか? /わけあり (19/06/08(Sat) 16:26) #91253
        ├ Re[5]: クリップボードで数値や配列をやりとりできますか? /キングダム (19/06/08(Sat) 18:31) #91255
        └ Re[5]: クリップボードで数値や配列をやりとりできますか? /PANG2 (19/06/08(Sat) 22:46) #91257


親記事 / ▼[ 91244 ] ▼[ 91242 ]
■91237 / 親階層)  クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり (1回)-(2019/06/07(Fri) 21:46:12)

分類:[.NET 全般] 

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

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

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


[ □ Tree ] 返信 編集キー/

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

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

アプリ間で、データをやり取りするにはシリアライズ/デシリアライズという作業が発生しますが、
XMLやJSONや独自仕様でテキスト化するのもいいし、バイナリシリアライズでもシーケンシャル(構造体配列)でもいいでしょう。
[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91237 ] / ▼[ 91249 ]
■91242 / 1階層)  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")


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

[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91242 ] / ▼[ 91252 ]
■91249 / 2階層)  Re[2]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり (2回)-(2019/06/08(Sat) 10:56:14)
Azuleanさん

ありがとうございます。

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

PANG2さん

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

[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91249 ] / ▼[ 91253 ]
■91252 / 3階層)  Re[3]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ PANG2 (300回)-(2019/06/08(Sat) 15:54:43)
No91249 (わけあり さん) に返信

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

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

アプリAにコピーボタン、アプリBにペーストボタンがあるのであれば、
クリップボードが汚されるのは明白なので、許されると思います。
[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91252 ] / ▼[ 91255 ] ▼[ 91257 ]
■91253 / 4階層)  Re[4]: クリップボードで数値や配列をやりとりできますか?
□投稿者/ わけあり (3回)-(2019/06/08(Sat) 16:26:13)
No91252 (PANG2 さん) に返信

ありがとうございます。

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

[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91253 ] / 返信無し
■91255 / 5階層)  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は高機能なのでほとんどサポートされてるんじゃないかなと思いました
私はファイルしか使ったことないのでよくわかりませんけどガハハ
[ 親 91237 / □ Tree ] 返信 編集キー/

▲[ 91253 ] / 返信無し
■91257 / 5階層)  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的方法は、いろいろあるでしょう。
[ 親 91237 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -