布団が俺を呼んでいる

丘山大一のぶろぐ

別プロセスの画面キャプチャをしたい

言語はC#。実態(実体)はWinAPI。

別プロセスの画面キャプチャを取得し、画像として保存したい。

今回の対象プロセスはskype(exe名はlync)です。
こんな感じで書きました。

        [System.Runtime.InteropServices.DllImport("User32.dll")]
        private extern static bool PrintWindow(IntPtr hwnd, IntPtr hDC, uint nFlags);

        [System.Runtime.InteropServices.DllImport("User32.dll")]
        private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        private const string FORMAT_TIME = "yyyyMMddhhmmss";

        private void SavePicture()
        {
                    //Skypeのハンドルの取得
                    var pLst = System.Diagnostics.Process.GetProcesses().Where(p => p.ProcessName == "lync").ToArray();
                    var handle = pLst.First().MainWindowHandle;
                    RECT rec = new RECT();
                    var size = GetClientRect(handle, out rec);
                    //画像処理
                    Bitmap img = new Bitmap(rec.Right - rec.Left, rec.Bottom);
                    Graphics memg = Graphics.FromImage(img);
                    IntPtr dc = memg.GetHdc();
                    PrintWindow(handle, dc, 0);
                    memg.ReleaseHdc(dc);
                    memg.Dispose();

                    DateTime dt = DateTime.Now;
                    img.Save($@".\DATA\{dt.ToString(FORMAT_TIME)}.png");
        }

上記の問題点

プロセス名で単純に取得しているため、skype上で別ウィンドウ(例えばIM)を開いたりすると、メインウィンドウではなくそちらがキャプチャされてしまいます。
自分の用途としては許容範囲なのでOKとしました。
※上記処理では、例外処理を省いています。


プログラミングWindows 第6版 上 (Microsoft Press)

新品価格
¥7,560から
(2016/4/7 18:54時点)

Windows Phone (Windows Mobile) アップデートの再起動ににかかる時間(trinity)

「電話の更新」が本日も来ていました。
前回の更新からずいぶん間隔が狭いな、と思いましたが、「trinity」の名前が冠してあったので、WIndows Update ではなくファームウェアか管理用ソフトウェアのアップデートだったのだと思われます。
他の端末を持っていれば比較できますが、あいにく手元にありませんので、推測です。

再起動を手動でかける
一応、今回も手動でアップデート。
画面の歯車がクルクル回るのが約5分。
プログレスバーが約5分。
合計10分ちょいくらいでした。
アンテナを見ていたのですが、更新が完全に終了する前に、ネットワークにはつながっているようでした。


バージョン

OSのビルドバージョンは 10.0.10586.218 で変わっていません。
ファームウェアリビジョンは更新前の控えをとっておくのを忘れたのですが、 1028.020.001.53 になっていました。
一応まとめると、本日時点の各バージョンは、
  • バージョン:1511
  • OSビルド:10.0.10586.218
  • ファームウェアリビジョン番号:1028.020.001.53
  • ハードウェアリビジョン番号:1.0
  • 無線ハードウェアバージョン:1.0
  • チップSOCバージョン:8952


追記

調べたら、公式ブログに情報が載っていました。
通常とは違う方式だよ、と記載されていますが、フツーに配信されたんですが……? まあいいか。

「ナビゲーションバーを操作した際、バイブレーションが動作するようにしました。」
なんかブルブルするなと思ったらコレでしたか。


プロジェクトマネージャ 初試験(玉砕)

玉砕してきました。

試験以外について今のうちにまとめておく

試験はボロボロだったので、何も言えない(泣)
でも次回試験で備えておきたいことがあったのでメモ。

その1:間の休憩時間は5分

試験と試験の間には30分程度の間があります。てっきりそれは休憩時間だと思っていたのですが、
試験監督「答案を集めます」 約5分経過。
試験監督「次の試験の説明をするので、20分前には着席していてください」 え?

試験と試験の間は30分なので、20分前に着席ってことは5分しか休みがない……。

実際は10分前に着席していてもいいんですが、そこはモラルの問題。着席しておきましょう(泣)

その2:昼の食事時間は短い

昼は1時間ありますが、上記ルールが適用されるので、
60分 - 5分 - 20分 = 35分
しか休みがありません。
この時間ではどっかに食べに行く、なんて時間はない。
ぐぬぬ。
仕方ないのでパンを買ってほお袋に詰め込みました。

教訓

試験会場に休みは無い!
体力を十分に回復させてから挑むんだ!


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2016/4/17 22:33時点)

Windows Phone (Windows Mobile) Windows Update 後の再起動ににかかる時間

OSのビルドバージョンが10.0.10586.218に上がりました。

更新後の再起動を手動でかけてみた

OSの更新後は、デフォルトだと、深夜に再起動がかかります。
しかし、前回の更新では APN の設定が変わってしまい、ちょっと困ることになりました。
今回も同様のことが起きると困るので、何かあったらすぐに気が付けるように、昼に手動で再起動をかけてみました。
まあ実際はただの興味からなんですが。

こんな感じでした

アップデートファイルのダウンロードや更新自体は完了しているので、再起動にかかる時間だけみていました。
手動で再起動をかけると、画面上に歯車が出てきてクルクル回り始めます。約10分。
それが終わると、ついに起動か、と思いきや、また何やらプログレスバーが出てきます。約5分。
大きく上記2ステップ、合計約15分で更新が完了しました。


状況によって時間は大きく前後すると予想されますが、目安の一つとして知っておくと便利……かもしれない。


Windows Mobile がバージョン10.0.10586.164にしたらネットワークに繋がらなくなっていた

昨日、Windows Mobile のアップデートがかかりました。
バージョン:10.0.10586.164
そして今朝会社に行ってみると、インターネットに繋がらない状態になっていました。

設定を見直してみよう

設定 - 携帯ネットワークとsim - sim設定 から、「携帯ネットワーク接続プロファイル」を確認。
すると、
@モバイルくん。
になっていました。

……うん、心の底から言わせてください。

「君、誰?」

(調べたらMVNOの一つみたいですね
なんで変わってしまったか分かりませんが(原因はアップデート以外何物でもない気がしますが)、「DMM mobile」にもどします。
ちょっとすれば、またつながるように。
良かった良かった。

いや良くないよ!

MSさんへ。
Windows Phone に注力するつもりはない、とは言っても、アップデートに伴うネットワーク系の不具合ぽい動作は勘弁してください。
わりと泣きそうになります。

名称変わった?

以前は、
「DMM mobile」と「DMM Mobile(after 2015/6/16)」という名称だったはずですが、
今は「DMM mobile2015/6/16以前」「DMM mobile」にしれっと変わっていました。



@モバイルくん。 3G使い放題プラン (マイクロSIM)

新品価格
¥3,240から
(2016/4/7 18:50時点)

Amazon Prime を試してみる

Amazon の全品送料無料が終了とのニュースが大きく取り上げらています。

というわけで、まんまとAmazonの手のひらの上を踊ってみる

Amazon Prime の無料体験をまずは試してみることにしました。
元々Kindleユーザだし、使っててもいいくらいだったんですよねw
とりあえず、
  • 配送特典
  • Prime Music
  • Kindleオーナーライブラリー
は使うかな?

  • 会員限定先行タイムセール
  • Amazonパントリー
は微妙。Amazonパントリーまでフルに使い始めたらいよいよダメ人間になる気がしてなりません。

Prime Music を Kindle から使ってみる

ホーム画面右上の「ミュージック」から。
画面左側のハンバーガーメニュー(?)から「デバイスライブラリ」を「クラウド」に変更、その後「Prime Music」を選択すると音楽を聴けるようになります。
とりあえずルルティアを聞き始めました。

Kindleオーナーライブラリー を Kindle から使ってみる

こちらも要領は同じですね。
ただ、ちょっと探しづらく感じるので、場合によってはPCでお目当ての本を探した方が早いかもしれません。

この頃、自分のモバイル環境が急速に変わってきています。
PC最強、とか言っていないで色々慣れないとダメですね。


Fire タブレット 8GB、ブラック

新品価格
¥8,980から
(2016/4/6 22:22時点)

SDKの更新の影響で(?)UWPのプロジェクトとXAMLのプレビューが開けなくなった

直接の原因不明や解決策は不明。
現象としては複数ありますが、面倒なので一つのエントリにまとめますw

現象1:UWPアプリが開けなくなった

まず、VS2015をupdate2に上げました。
次に、使わなくなっていたVS2013関係をアンインストールしました。
上記二つを行った後、UWPのプロジェクトを開こうとすると、「SDKの更新が必要です」のようなメッセージが出るようになりました。
(どちらの操作がトリガーかは不明)
案内に従ってSDKを更新しましたが、開けるようにはなりませんでした。

現象1-対応:プロジェクトファイルの書き換え

プロジェクトファイルを直接メモ帳で開いてみると、「Version=10.0.10586.0」がターゲットになっているようでした。
ここを、「10.0.10240.0」に書き換えると、とりあえずビルドとデバッグは通るようにはなりました。

現象2:XAMLエディターのプレビューができなくなった

XAMLエディターを開くと、プレビューができなくなってしまっていました。
これは、以前作ったアプリでも、新規に作成したアプリでも同様。

現象2-対応:色々入れ直し

下記を順番に実行しました。
・VS2015をコンパネから「修復」 → 直らず
・Windows SDK の「修復」  → 直らず
・Windows SDK の「アンインストール」 → 直らず
・Windows SDK の再インストール → 直った!
結果的に、Windows SDK のアンインストール&インストールが正解だったような気がしますが、何分検証できていません。

その後

プロジェクトを開きなおすと、アプリケーションのターゲットバージョンが
・Windows10(10.0;ビルド10240)
・Windows10(10.0;ビルド10586)
の二つが選択できるようになっていました。
で、ためしに Windows10(10.0;ビルド10586) にして、保存してみると、VSが落ちました。
再度開くと、また上記現象1のような状態に……。
仕方ないので、またプロジェクトを直接修正して、10240に戻すと、開けます。

つまりこういう状況みたい

新規にプロジェクトを作成した段階で、10586を選択すると「プロジェクトはプラットフォームSDK(UAP.10.0.10586.0)が必要ですが、インストールされていません。」のエラーになってしまう。
どうやら、SDKのインストール自体が壊れてしまっているみたい。
VSのインストーラー、コンパネ、ダウンロードファイルいずれの修復・インストールでも直らないので、諦めることにしますw
次のバージョンでは直っているといいなあ……。



XAMLとC#によるUniversal Windows Platform アプリ開発

マッピングしているネットワークドライブのドライブが、管理者権限で実行したアプリケーションから接続できない

管理者権限でアプリケーションを実行していると、時折色々パスがズレて面倒なことになる。
大体ちょっとした工夫で解決しますが、ネットワークドライブ(共有フォルダ)にアクセスできなくて困ることが。
管理者権限/ユーザ権限 でどのようにネットワークドライブにアクセスできるかは、net use コマンドを実行すれば判断可能だが、肝心の「そこから」どうやってアクセスできるようにできるかが分からない。

ググるとレジストリ弄れ、という解決方法がよく出てくるのだが、たとえばこれをユーザ(顧客)に対して実行してくれ、とは言えない。というか言いたくない。
どーすればいいのかな、と思っていたら凄い簡単な方法が見つかった。

管理者権限でメモ帳起動してドライブアクセス


単純すぎて盲点でした。

ロディア No.11 方眼罫 オレンジ 3冊セット

新品価格
¥625から
(2016/2/13 14:34時点)

Windows Phone (Windows Mobile) と DMM Mobile の話

柔銀行からDMM Mobile へ MNPしました。
対象機種はもちろんNuans Neo。Androidからの乗り換えとなります。
レッツチャレンジ。

MNPの流れ

といっても、DMM Mobile の申し込みの流れはHPに詳しく記載されていますし、格安SIMに詳しい方々が色々と情報を提供してくださっています。
ので、ここでは自分がはまったところ・やって手間がかかったことだけをを記載していきます。

柔銀行へ予約番号請求

マイページからうんたらかんたら、とか色々ありましたが、ぶっちゃけ暗証番号を忘れていたので、直接電話して予約番号を受け取りました。
なかなか繋がらず結構待ちましたが、繋がってしまえば親切に応対してくれました。
予約番号は口頭での控えと、メールで送ってもらいダブルチェック。
……メールが迷惑メール扱いされていたのは何か意味があったんでしょうか……

②dmmでの申し込み時に住所を入力ミスする。

ミスりました。orz

③simが届いてても繋がらない?

夜にsimが届いて、何も考えずに差し替え。
あれこれやっても繋がらないなー、と思っていましたが。
DMMのHPで電話番号切り替えの申し込みをやっていませんでした……��
※マイページから可能。
申し込みさえやれば、不通時間は2~4時間くらい? のようです。
※お昼を挟んで申し込んでしまったので、時間がかかったものと思われます。

④sim差し替え後の動作

さしたsimは、Windows Mobile側で勝手に認識・設定してくれます。
が。
このとき、既定のAPNに設定がされるのですが、そのままではネットワークに繋がりません。
設定 - 携帯ネットワークとsim - sim設定 から、「携帯ネットワーク接続プロファイル」を
「DMM mobile」 → 「DMM Mobile(after 2015/6/16)」にすると繋がりました。


simを変えてみて

心配していた音声通話ですが、問題なく使えました。
問題のはWindows Mobile 側の電話の微妙な使いにくさの方ですねw
まあこの辺りは慣れの問題ですので、徐々になじむでしょう。
ネットワークについてはもうしばらく使ってみないとなんともいえません。
なにか気が付く点があれば、またココに記載します。


DMMマネーカード 2,000円

新品価格
¥1,935から
(2016/3/31 21:02時点)

ペヤング と ペヨング (夕飯)

多分、世間では散々されていると予想しますが、それはそれとして自分でも食べ比べてみました。

経緯

もともとペヤング超大盛をよく食べる派です。
かのゴキブリ混入事件があった直後に、ふつうに会社で喰ってました。
蟲が混入してた?
いつもソースに蟲を仕込んでいる俺には余裕です(違
※実際入っていたら流石にドン引き、つーかムリですけど。

まあそんなこんなで、会社ではペヤング派であることが知られているので、「食べ比べた?」と聞かれることは必至。
そんな時のために買っておいたのさ。

ペヤングとペヨング


外装はちょっと違うけど、中身はビックリするくらい同じでした。
ソースの袋やかやくの袋は違うんですが、逆にそれしか違いが分からない。
食べ比べするために同時にお湯を注いで、同時に湯切りしたんですが、
「あれ、右手に持ってるのがペヤングだっけ? ペヨングだっけ?」
状態になりました。

写真映りを一切考慮しない、ソースの適当な絡め方



……これほど違いが無いとは。
そして、食べても全く違いが分からない!
量が違うみたいな話も聞きましたが、それすら分からない!

結論

どっちでも一緒(適当)。

重要な点。
最初から分かってはいたんですが、この手の食べ比べ系はみんなでやりましょう。
一人でやると空しくて悲しくて寂しくなります(泣)

ペヨング ソースやきそば 106g×18個

新品価格
¥2,390から
(2016/3/30 23:30時点)