布団が俺を呼んでいる

丘山大一のぶろぐ

別プロセスのスクリーンショットを取得する

自分メモ。

using System;
using System.Diagnostics;
using System.Drawing;
 
namespace ConsoleApplication1
{
    class Program
    {
        private struct RECT
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }
 
        [System.Runtime.InteropServices.DllImport("User32.dll")]
        private static extern bool PrintWindow(IntPtr hwnd, IntPtr hDC, uint nFlags);
        [System.Runtime.InteropServices.DllImport("User32.dll")]
        private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
 
        static void Main(string[] args)
        {
            //ハンドルの取得
            var targetProccess = Process.GetProcessesByName("devenv")[0];//ここでは最初の一つを対象にした
            var handle = targetProccess.MainWindowHandle;
            //保存対象の画像処理
            var rec = new RECT();
            var size = GetClientRect(handle, out rec);
            var img = new Bitmap(rec.Right - rec.Left, rec.Bottom);
            var memg = Graphics.FromImage(img);
            IntPtr dc = memg.GetHdc();
            PrintWindow(handle, dc, 0);
            memg.ReleaseHdc(dc);
            memg.Dispose();
            //画像保存
            img.Save("画像.png");
        }
    }
}

WIn32API 使用です。



Windows 100% 2014年 01月号 [雑誌]

中古価格
¥1から
(2017/6/4 21:00時点)

コメントを書く

布団が俺を呼んでいる | ブルスク!(NVIDIA)

布団が俺を呼んでいる

丘山大一のぶろぐ

ブルスク!(NVIDIA)

BSODをアニメのタイトルぽくして、絶望感を緩和してみる。


ネタバレ

主原因はNVIDIA グラフィックドライバのUpdate?


経緯

4月初旬、Creaters Update によりウィルスバスターが入らなくなる。
6月1日、そろそろ改善されたかなー、と思ってウィルスバスターを入れる。
     合わせて、裏でUpdateが走っていた。
6月3日、やたらとWIndows が落ちる。下手すると起動後10分くらいで落ちる。
6月頭、 直近でやったことってなんだっけ?と考えて、ウィルスバスター停止。それでもすぐ落ちる。
     アンインストールし、安定するように。
6月初旬、安定したといったな、あれは(略)
     起動後40~100分ほどでBSODするようになる。
     主にキーボード操作中にBSODする。


調査開始

ブログ書いている途中で落ちるならともかく、コード書いている途中に落ちるんじゃ何もできんわ。
というわけで、イベントログを覗くもめぼしいものは見つからず。
んで、メモリダンプを見てみたら、ちょくちょく「nvlddmkm.sys」で死んでいる模様。
どうやら、というか名前のままなのだがNVIDIA 関連。
調べてみると6月1日にUpdate が走っていた。
ここでウィルスバスターにマシンをバスターされたと思っていたが濡れ衣だった可能性に気が付く。
ごめんよバスター。
(でもバスターアンインストールしたらちょっと安定したのも事実なんだよなー)

一度ドライバをアンインストールしようかと思ったが、先に最新版のドライバを手動で入れなおしてみた。
ちょっと安定したものの、3時間ほど起動していたら死亡した。

こりゃだめだ、と日を改めて、NVIDIA のドライバーを片端からアンインストール。
アンインストール後、ちょっと放っておけばWindows Updateでもう一度キレイにドライバが入ります。
すると、なんということでしょう、LANケーブルを引っこ抜いただけでBSOD。
意味が分かりません。

といわけで、再びNVIDIAドライバを全削除。
今度はWindows Update を一時停止してドライバが落ちてこないようにしました。
3日ほど様子を見ましたが、安定しているようです。
犯人はこの子ということで。

今後

どうしようかなあ、と悩み中。
Updateもいつまでも止められないし、止めたくない。
アプリの整理もできていないし、そろそろOSごとクリーンインストールして仕切り直したいところ……。


濡れ衣への、お詫びがてらの広告↓

ウイルスバスター クラウド | 3年 3台版 | Win/Mac/iOS/Android対応

新品価格
¥10,603から
(2017/6/11 21:32時点)

コメントを書く