{"id":2344,"date":"2011-09-09T11:37:50","date_gmt":"2011-09-09T02:37:50","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=2344"},"modified":"2011-09-09T11:42:12","modified_gmt":"2011-09-09T02:42:12","slug":"ctrlprintscreen-%e3%81%a7%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e3%82%a6%e3%82%a3%e3%83%b3%e3%83%89%e3%82%a6%e3%82%92%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/2344","title":{"rendered":"Ctrl+PrintScreen \u3067\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3059\u308b"},"content":{"rendered":"<p>\u624b\u9806\u66f8\u306a\u3069\u3092\u4f5c\u308b\u305f\u3081\u306b\u753b\u9762\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u3059\u308b\u6642\u306b\u3001Alt+PrintScreen \u3067\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u753b\u9762\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u307e\u3059\u3002<br \/>\n\u304c\u3001\u30e1\u30cb\u30e5\u30fc\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u305f\u3044\u3068\u304d\u306b\u3010Alt\u3011\u30ad\u30fc\u3092\u62bc\u3059\u3068\u3001\u305d\u306e\u30e1\u30cb\u30e5\u30fc\u304c\u6d88\u3048\u3066\u3057\u307e\u3046\u3093\u3067\u3059\u3088\u306d\u3002<\/p>\n<p>\u306a\u306e\u3067\u3001\u5404\u7a2e\u30c4\u30fc\u30eb\u3092\u63a2\u3059\u3093\u3067\u3059\u304c&#8230;Ctrl+PrintScreen \u306b\u5272\u308a\u5f53\u3066\u308c\u3070\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u306e\uff1f\u3068\u3044\u3046\u3053\u3068\u3067\u81ea\u4f5c\u3057\u307e\u3059\u3002<br \/>\nCtrl \u30ad\u30fc\u306e\u5834\u5408\u306f\u3001\u30e1\u30cb\u30e5\u30fc\u304c\u9589\u3058\u3089\u308c\u307e\u305b\u3093\u304b\u3089\u306d\u3002<\/p>\n<p><a title=\"20110909_01\" href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/09\/20110909_01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/09\/20110909_01-300x250.jpg\" title=\"20110909_01\" width=\"300\" height=\"250\" class=\"alignnone size-medium wp-image-2345\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/09\/20110909_01-300x250.jpg 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/09\/20110909_01.jpg 947w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u3053\u3093\u306a\u611f\u3058\u3067\u3001\u624b\u8efd\u306b\u30e1\u30cb\u30e5\u30fc\u3082\u30ad\u30e3\u30d7\u30c1\u30e3\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u25a0\u30a2\u30af\u30c6\u30a3\u30d6\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u30ad\u30e3\u30d7\u30c1\u30e3<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nusing System.Runtime.InteropServices;\r\n\r\n&#x5B;StructLayout(LayoutKind.Sequential)]\r\nprivate struct RECT\r\n{\r\n    public int left;\r\n    public int top;\r\n    public int right;\r\n    public int bottom;\r\n}\r\n&#x5B;DllImport(&quot;user32.dll&quot;)]\r\nprivate static extern IntPtr GetWindowDC(IntPtr hwnd);\r\n&#x5B;DllImport(&quot;user32.dll&quot;)]\r\nprivate static extern IntPtr GetForegroundWindow();\r\n&#x5B;DllImport(&quot;user32.dll&quot;)]\r\nprivate static extern int GetWindowRect(IntPtr hwnd, ref  RECT lpRect);\r\nprivate const int SRCCOPY = 13369376;\r\n&#x5B;DllImport(&quot;user32.dll&quot;)]\r\nprivate static extern IntPtr GetDC(IntPtr hwnd);\r\n&#x5B;DllImport(&quot;gdi32.dll&quot;)]\r\nprivate static extern int BitBlt(IntPtr hDestDC,\r\n    int x,\r\n    int y,\r\n    int nWidth,\r\n    int nHeight,\r\n    IntPtr hSrcDC,\r\n    int xSrc,\r\n    int ySrc,\r\n    int dwRop);\r\n&#x5B;DllImport(&quot;user32.dll&quot;)]\r\nprivate static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);\r\n\r\n\/\/\/\r\n\/\/\/ \u30a2\u30af\u30c6\u30a3\u30d6\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\r\n\/\/\/\r\n\/\/\/\r\nprivate Bitmap ActiveWindowCapture()\r\n{\r\n    IntPtr hWnd = GetForegroundWindow();\r\n    IntPtr hDC = GetWindowDC(hWnd);\r\n    \/\/\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u5927\u304d\u3055\u3092\u53d6\u5f97\r\n    RECT rect = new RECT();\r\n    GetWindowRect(hWnd, ref rect);\r\n    Bitmap bmp = new Bitmap(rect.right - rect.left, rect.bottom - rect.top);\r\n    Graphics g = Graphics.FromImage(bmp);\r\n    IntPtr gDC = g.GetHdc();\r\n    BitBlt(gDC, 0, 0, bmp.Width, bmp.Height, hDC, 0, 0, SRCCOPY);\r\n    g.ReleaseHdc(gDC);\r\n    g.Dispose();\r\n    ReleaseDC(hWnd, hDC);\r\n    return bmp;\r\n}\r\n<\/pre>\n<p>win api \u3092\u591a\u7528\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u3001DllImport \u304c\u591a\u3044\u3067\u3059\u304c\u3001\u3053\u3093\u306a\u611f\u3058\u3002<br \/>\n# BitBlt \u3068\u304b\u4f7f\u3044\u305f\u304f\u306a\u3044\u3051\u3069\u3001\u4ed6\u306b\u3044\u3044\u65b9\u6cd5\u304c\u3042\u308a\u307e\u305b\u3093\u304b\u306d\uff1f<\/p>\n<p>\u25a0\u30db\u30c3\u30c8\u30ad\u30fc\u306e\u767b\u9332\/\u89e3\u9664<\/p>\n<p>\u30db\u30c3\u30c8\u30ad\u30fc\u306f\u3001RegisterHotKey \u3068 UnregisterHotKey \u3092\u4f7f\u3044\u307e\u3059\u3002<br \/>\nHOTKEY_ID \u306e\u307b\u3046\u306f\u3001\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u30c0\u30d6\u3089\u306a\u3044\u3088\u3046\u306b\u9069\u5f53\u306b\u5909\u3048\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ \r\n&#x5B;DllImport(&amp;quot;user32.dll&amp;quot;)]\r\nextern static int RegisterHotKey(IntPtr hWnd, int id, int modKey, int key);\r\n&#x5B;DllImport(&amp;quot;user32.dll&amp;quot;)]\r\nextern static int UnregisterHotKey(IntPtr hWnd, int id);\r\nconst int MOD_ALT = 0x0001;\r\nconst int MOD_CONTROL = 0x0002;\r\nconst int MOD_SHIFT = 0x0004;\r\nconst int HOTKEY_ID = 0x1234;\r\n\/\/\r\n\/\/ HotKey\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u793a\u3059\u30e1\u30c3\u30bb\u30fc\u30b8ID\r\n\/\/\r\nconst int WM_HOTKEY = 0x0312;\r\n\/\/\/\r\n\/\/\/ \u30db\u30c3\u30c8\u30ad\u30fc\u3092\u767b\u9332\r\n\/\/\/\r\n\/\/\/ &lt;param name=&amp;quot;sender&amp;quot; \/&gt;\r\n\/\/\/ &lt;param name=&amp;quot;e&amp;quot; \/&gt;\r\nprivate void button5_Click(object sender, EventArgs e)\r\n{\r\n    if (RegisterHotKey(this.Handle, HOTKEY_ID,  MOD_CONTROL, (int)Keys.PrintScreen) == 0)\r\n    {\r\n        MessageBox.Show(&amp;quot;\u65e2\u306b\u4ed6\u306e\u30a2\u30d7\u30ea\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002&amp;quot;);\r\n    }\r\n}\r\n\/\/\/\r\n\/\/\/ \u30db\u30c3\u30c8\u30ad\u30fc\u3092\u89e3\u9664\r\n\/\/\/\r\n\/\/\/ &lt;param name=&amp;quot;sender&amp;quot; \/&gt;\r\n\/\/\/ &lt;param name=&amp;quot;e&amp;quot; \/&gt;\r\nprivate void button6_Click(object sender, EventArgs e)\r\n{\r\n    UnregisterHotKey(this.Handle, HOTKEY_ID);\r\n}\r\n\/\/\/\r\n\/\/\/ Window Proc \u306e\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\r\n\/\/\/\r\n\/\/\/ &lt;param name=&amp;quot;message&amp;quot; \/&gt;\r\nprotected override void WndProc(ref Message message)\r\n{\r\n    if (message.Msg == WM_HOTKEY &amp;&amp; (int)message.WParam == HOTKEY_ID)\r\n    {\r\n        Bitmap bmp = ActiveWindowCapture();\r\n        \/\/ bmp.Save(@&amp;quot;c:\\work\\bmp\\&amp;quot; + DateTime.Now.ToString(&amp;quot;yyyyMMddHHmmss&amp;quot;) + &amp;quot;.bmp&amp;quot;);\r\n        \/\/ \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u3078\u30b3\u30d4\u30fc\r\n        Clipboard.SetImage(bmp);\r\n        return;\r\n    }\r\n    base.WndProc(ref message);\r\n}\r\n\r\n<\/pre>\n<p>\u25a0\u53c2\u8003\u5148<\/p>\n<p>\u753b\u9762\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3059\u308b: .NET Tips: C#, VB.NET, Visual Studio<br \/>\n<a href=\"http:\/\/dobon.net\/vb\/dotnet\/graphics\/screencapture.html\">http:\/\/dobon.net\/vb\/dotnet\/graphics\/screencapture.html<\/a><br \/>\n\u30db\u30c3\u30c8\u30ad\u30fc(HotKey)\u306e\u8a2d\u5b9a (DllImport, InteropServices, RegisterHotKey, UnRegisterHotKey) &#8211; \u3044\u308d\u3044\u308d\u5099\u5fd8\u9332\u65e5\u8a18<br \/>\n<a href=\"http:\/\/d.hatena.ne.jp\/gsf_zero1\/20070416\/p1\">http:\/\/d.hatena.ne.jp\/gsf_zero1\/20070416\/p1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u624b\u9806\u66f8\u306a\u3069\u3092\u4f5c\u308b\u305f\u3081\u306b\u753b\u9762\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u3059\u308b\u6642\u306b\u3001Alt+PrintScreen \u3067\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u753b\u9762\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u307e\u3059\u3002 \u304c\u3001\u30e1\u30cb\u30e5\u30fc\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u3057\u305f\u3044\u3068\u304d\u306b\u3010Alt\u3011\u30ad\u30fc\u3092\u62bc\u3059\u3068\u3001\u305d\u306e\u30e1\u30cb\u30e5\u30fc\u304c\u6d88\u3048\u3066\u3057\u307e\u3046\u3093\u3067\u3059\u3088\u306d\u3002 &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/2344\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,23],"tags":[],"class_list":["post-2344","post","type-post","status-publish","format-standard","hentry","category-dev","category-csharp"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/2344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=2344"}],"version-history":[{"count":6,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/2344\/revisions"}],"predecessor-version":[{"id":2351,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/2344\/revisions\/2351"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=2344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=2344"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=2344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}