Amazon

2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最近のトラックバック

無料ブログはココログ

Amazon2

« RStudioをサーバー(Ubuntu16.04)にインストールする | トップページ | RaspberryPi用のヒートシンクを購入しました »

2016年9月26日 (月)

C#で他のアプリケーションにクリップボードからペースト(貼り付け)する


今回は非常に小ネタです。ちょっとはまったので備忘録として書きました。







C#(.NET)からクリップボードを操作するのは非常に簡単です。Clipboardクラスを
利用すると、現在のクリップボードの内容を取得したり、逆にクリップボードの内容を
変更する事ができます。

今回はその逆に、C#のプログラムから他のアプリケーション(アクティブウインドウを持つ
アプリケーション)に貼り付けを行う方法についてです。

方法は至って簡単で、System.Windows.Forms.SendKeysを利用して以下の様に記述するだけです。



要するに、アクティブなWindowsにCtrl-vを送信しているだけです。ここで重要なのは、

  1. 自分自身(実装したアプリ)がアクティブではいけない
    例えば、上記の様に自分のFormをHideして非アクティブにする
  2. 全てのアプリケーションでペーストできる訳では無い
    あくまでもCtrl-Vを送信しているだけなので、Ctrl-Vが実装されていない
    アプリケーションでは無視されますし、違う意味の場合は違う動作をします。


アプリケーションから直接ペーストできる訳ではありませんが、大抵のアプリケーションでは
この実装で問題ないと思います。この様な簡単な実装で、自作のプログラムから
他のアプリケーションに対して、クリップボードの内容をペーストする事が可能です。


できてしまうと非常に簡単ですね。このSendKeysは色々と応用がききそうな気がします。







相変わらず.Netのお勉強は自習モードと言うか、気が向いた時に細々としているだけです。
まぁ、既に趣味の一環と言うかパズルみたいなものだから、これで良いと言えば良いのですが…。
相変わらず、Atlon 5350のマシンをメインPCとしています。これじゃパワーが全然足りない様な
もっと凄い事をしなければ…。今の所…十分なんですよね…。
DDR4でメモリ64GBな環境に憧れます…。











« RStudioをサーバー(Ubuntu16.04)にインストールする | トップページ | RaspberryPi用のヒートシンクを購入しました »

C#」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1680410/67657503

この記事へのトラックバック一覧です: C#で他のアプリケーションにクリップボードからペースト(貼り付け)する:

« RStudioをサーバー(Ubuntu16.04)にインストールする | トップページ | RaspberryPi用のヒートシンクを購入しました »