本を読もう。ゲームをしよう。愚痴をいおう。

本を読もう。ゲームをしよう。愚痴をいおう。

嫌なことは全力回避。好きなことには全力投球。

Amebaでブログを始めよう!
テーマ:

【C#】SendKeysクラスでクリップボードの貼り付けを行う




昨日ハマったので備忘録として残しておきます。

C#でメモ帳やエクセル等にキーを送り、クリップボードの貼り付けたい場合、

SendKeys.SendWait("^V");

と書きます。


これで普通にいけるだろと思っていたのですが、
なぜか、本当になぜか、メモ帳には貼り付けられるのに
エクセルやワードには貼り付けられない・・・。


最初はアクティブになってない?とか、
ウィンドウはアクティブになっているけどセルが選択されていない?とか
そんな感じで調べていました。


ただ、よくよく調べてみると以下の感じでうまくいきました。

SendKeys.SendWait("^v");



ただ、小文字にするだけ・・・。



もっと早くきづきたかった(ノ_・。)





★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★

サラリーマン ブログランキングへ
テーマ:
画像ファイルを削除しようとすると、

「別のプロセスで使用されているため、プロセスはファイル~にアクセスできません。」

というエラーが出てデバックが通りませんでした。


自分がこのエラーが出たパタンは以下の通りです。


①クリップボードに画像を送った後、画像ファイルを削除しようとした時
②PictureBoxに画像を表示させた後、画像ファイルを削除しようとした時


②についてはこちらへ


//画像ファイルを削除
foreach (var item in Directory.GetFiles(FileName))
{
  //ここでエラー
  System.IO.File.Delete(item);
}


何でだと思っていろいろ調べたところ、下記のブログ様で解決できました。
大変助かりました。

[C#]System.IO.File.Delete()で別のプロセスで使用されているため、プロセ



結論としては、
FileStreamを使用してOpenした場合、きちんとCloseしないと
FileStreamがデータを保持したままになってしまうということでした。

なので、削除しようとしてもまだ他の奴が保持しているという
エラーとなっていたようです。


勉強になりました・・・。



また、画像データを表示させる場合は、フルパスを直接指定して、
Bitmapをインスタンスするよりも、Streamを用いて表示させた方が、
Closeできるので、タイトルのエラーメッセージが表示されなくて
いいと思います。




★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★

サラリーマン ブログランキングへ

テーマ:
アプリケーションが閉じられた時、終了したときに取得する方法を記載します。

起動したアプリケーションの終了を取得するにはProcessクラスのExitedイベントを利用します。

まず、外部アプリケーションの起動方法を記載したあとに、終了を取得する方法を記載します。


■外部アプリケーションの起動方法




外部アプリケーションを起動するときは、以下のようにProcessクラスのStartメソッドを使用して書きます。

Process.Start("hoge.exe");

このStartメソッドなのですが、優秀なことに起動したアプリケーションのプロセスを返す値として渡してくれます。

こんな感じ↓↓

===================================================
//プロセスクラスの宣言
Process hoge;

//外部アプリケーションの起動
hoge = Process.Start("hoge.exe");
===================================================



■起動したアプリケーションの終了を取得する




起動したアプリケーションの終了を取得するにはProcessクラスのExitedイベントを利用します。

Exitedイベントを利用するにはEnableRaisingEventsプロパティをTrueに設定します。


こんな感じ↓↓

===================================================
//プロセスクラスの宣言
Process hoge;

//外部アプリケーションの起動
hoge = Process.Start("hoge.exe");
hoge.EnableRaisingEvents = true;
hoge.Exited += new EventHandler(hoge_Exited)

Privete void hoge_Exited(object sender, EventArgs e)
{
MessageBox.Show("終了");
}
===================================================


EnableRaisingEventsプロパティをTrueに設定するというのがポイント。




★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★

サラリーマン ブログランキングへ

テーマ:
PictureBoxを使用して画像を表示する場合、Imageプロパティを使用します。

using System.Drawing;
PictureBox1.Image = Image.FromFile(@"C:\hoge.jpg");


もしくは
Bitmap bmp = new Bitmap(@"C:\hoge.jpg");
PictureBox1.Image = bmp;



ただ、1点注意が必要です。

上記のコードで画像を表示した場合は、picturebox?が表示した画像データを
ロックしてしまうので、画像データを削除しようとすると以下のエラーメッセージが表示されます。

「別のプロセスで使用されているため、プロセスはファイル~にアクセスできません。」


なので、上記のエラーを防ぐためには、直接画像データをPictureBoxに表示させるのではなく、
FileStreamを使用して表示させたほうがいいです。


using System.IO;
fs = new FileStream (filepath, FileMode.Open, FileAccess.Read);
PictureBox1.Image = Image.FromStream(fs);
fs.Close();




この記事でも書きましたが、FileStreamは最後にCloseすることが肝心です。




★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★

サラリーマン ブログランキングへ
テーマ:
お気に入りのショートショートを連日でアップしてみました。
※動画です。




特に不満がオススメなのですが、いかがでしょうか?


「不満」はタイトルの通り、冒頭から主人公の不満が見受けられます。

最初見たときは、"なんで"ここまで不満がたまっているのかが良く分かりませんでした。

"なんで"ここまで不満がたまってる?
無理やり宇宙にいかされたから?
なんで無理やり?
途中で地球に復讐をする時、ためらいも無く復讐できるもの?


などなど、動画をみつつ疑問に感じていたら、見事に最後で納得させられました。
(個人差はあるとは思いますが)

確かに、少し先の未来ならありえる結末だと思います・・・。
そして、確かに不満が募るし、やられた側はふざけるなと思うなぁと。


ただ、短編集の作り物としてはかなりおもしろい作品だと思いました。

最初見たときは少し怖かったですがw




星新一という作家は短編集をなんと1042編も書いています。

自分が読んだのは短編集を2冊程度なのですが、
よくこんなに話が思い浮かぶなぁと感心します。



ネットには動画がまだあると思うので、もし興味が沸いたら
探してみるといいかもしれません。




★ブログランキング始めました★
★ぺちぺち叩いていただけると幸せです★

サラリーマン ブログランキングへ
テーマ:
ここ最近、ホンダのCMとかが話題になっているように、
CM自体が注目されはじめているような気がします。(気のせいかもしれませんがw)


そこで、つい最近のCMで、気になったCMについて触れたいと思います。

自分が気になっているCMは最後に以下の言葉が流れます。



あなたはあなたが食べたものでできている



最近よく流れているので、お分かりになられた方もいるかもしれませんね。
自分が今気になっているCMは、味の素のCMです。
有名なオリンピック選手も出演されています。


たくさんのCMが流れている中、また、短い時間しかないのに、
うまくまとめられていて、最後にインパクトのある言葉を持ってくるあたりに
惚れました(笑)


あと、これを初めて聞いた時、どきっとしたというのもあります(笑)
コンビニ弁当とかカップめんとか、炭酸ジュースばっか飲んでるし、正直ヤバい!と思いました(笑)




あなたはあなたが食べたものでできている


いい言葉だし、いいCMだと思いました。



テーマ:
中学の時に習ったのは、疑問系かそうじゃないか。(○村先生、違ってたらごめんなさい)

その後習ったのが、定かではなくぼんやりあるか、なんでもいいよというニュアンスか。(名前を忘れてしまった先生、違ってたらごめんなさい)


で、今日知ったのが、そもそもなんで疑問系ならanyなのかということ。


相手に聞く時は、
なんでもいいよ。どれでもいいよ。
と、選択の自由を与えるというイメージをもつanyの方がよいということらしい。



人に何かをお願いする時、
「よろしくお願いします」よりも
「お願いしてもよろしいでしょうか」
の方が、いい印象を与えるという話を聞いたことがあるけど、それと同じような感覚かな?
テーマ:
図書館でダヴィンチ5月号を読んできました。

その中で気になった言葉があったのでメモ。


読書って積み重ねの部分があるから、以前読んだことを『読書ノート』に残しておく。

残しておくことで、過去どういった感想を抱いたかを思い出せる。

ノートは非公開用でメモとして残しておけば、本音もかけるし、人に見せないこと前提であれば、簡易的に楽に残せる。



若干違うかもしれないけど、大体こんな感じだったと思う。

共感したのは、読書は積み重ねの部分というところ。
過去何を読んで、何を学んだか、何を想ったか。


時間がたって忘れるというのは至極もったいない。