{"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<p>[code lang=&#8221;csharp&#8221;]<br \/>\nusing System.Runtime.InteropServices;<\/p>\n<p>[StructLayout(LayoutKind.Sequential)]<br \/>\nprivate struct RECT<br \/>\n{<br \/>\n    public int left;<br \/>\n    public int top;<br \/>\n    public int right;<br \/>\n    public int bottom;<br \/>\n}<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nprivate static extern IntPtr GetWindowDC(IntPtr hwnd);<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nprivate static extern IntPtr GetForegroundWindow();<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nprivate static extern int GetWindowRect(IntPtr hwnd, ref  RECT lpRect);<br \/>\nprivate const int SRCCOPY = 13369376;<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nprivate static extern IntPtr GetDC(IntPtr hwnd);<br \/>\n[DllImport(&quot;gdi32.dll&quot;)]<br \/>\nprivate static extern int BitBlt(IntPtr hDestDC,<br \/>\n    int x,<br \/>\n    int y,<br \/>\n    int nWidth,<br \/>\n    int nHeight,<br \/>\n    IntPtr hSrcDC,<br \/>\n    int xSrc,<br \/>\n    int ySrc,<br \/>\n    int dwRop);<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nprivate static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);<\/p>\n<p>\/\/\/<br \/>\n\/\/\/ \u30a2\u30af\u30c6\u30a3\u30d6\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u30ad\u30e3\u30d7\u30c1\u30e3<br \/>\n\/\/\/<br \/>\n\/\/\/<br \/>\nprivate Bitmap ActiveWindowCapture()<br \/>\n{<br \/>\n    IntPtr hWnd = GetForegroundWindow();<br \/>\n    IntPtr hDC = GetWindowDC(hWnd);<br \/>\n    \/\/\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u5927\u304d\u3055\u3092\u53d6\u5f97<br \/>\n    RECT rect = new RECT();<br \/>\n    GetWindowRect(hWnd, ref rect);<br \/>\n    Bitmap bmp = new Bitmap(rect.right &#8211; rect.left, rect.bottom &#8211; rect.top);<br \/>\n    Graphics g = Graphics.FromImage(bmp);<br \/>\n    IntPtr gDC = g.GetHdc();<br \/>\n    BitBlt(gDC, 0, 0, bmp.Width, bmp.Height, hDC, 0, 0, SRCCOPY);<br \/>\n    g.ReleaseHdc(gDC);<br \/>\n    g.Dispose();<br \/>\n    ReleaseDC(hWnd, hDC);<br \/>\n    return bmp;<br \/>\n}<br \/>\n[\/code]<\/p>\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<p>[code lang=&#8221;csharp&#8221;]<br \/>\n\/\/<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nextern static int RegisterHotKey(IntPtr hWnd, int id, int modKey, int key);<br \/>\n[DllImport(&quot;user32.dll&quot;)]<br \/>\nextern static int UnregisterHotKey(IntPtr hWnd, int id);<br \/>\nconst int MOD_ALT = 0x0001;<br \/>\nconst int MOD_CONTROL = 0x0002;<br \/>\nconst int MOD_SHIFT = 0x0004;<br \/>\nconst int HOTKEY_ID = 0x1234;<br \/>\n\/\/<br \/>\n\/\/ HotKey\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u793a\u3059\u30e1\u30c3\u30bb\u30fc\u30b8ID<br \/>\n\/\/<br \/>\nconst int WM_HOTKEY = 0x0312;<br \/>\n\/\/\/<br \/>\n\/\/\/ \u30db\u30c3\u30c8\u30ad\u30fc\u3092\u767b\u9332<br \/>\n\/\/\/<br \/>\n\/\/\/ &lt;param name=&quot;sender&quot; \/&gt;<br \/>\n\/\/\/ &lt;param name=&quot;e&quot; \/&gt;<br \/>\nprivate void button5_Click(object sender, EventArgs e)<br \/>\n{<br \/>\n    if (RegisterHotKey(this.Handle, HOTKEY_ID,  MOD_CONTROL, (int)Keys.PrintScreen) == 0)<br \/>\n    {<br \/>\n        MessageBox.Show(&quot;\u65e2\u306b\u4ed6\u306e\u30a2\u30d7\u30ea\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002&quot;);<br \/>\n    }<br \/>\n}<br \/>\n\/\/\/<br \/>\n\/\/\/ \u30db\u30c3\u30c8\u30ad\u30fc\u3092\u89e3\u9664<br \/>\n\/\/\/<br \/>\n\/\/\/ &lt;param name=&quot;sender&quot; \/&gt;<br \/>\n\/\/\/ &lt;param name=&quot;e&quot; \/&gt;<br \/>\nprivate void button6_Click(object sender, EventArgs e)<br \/>\n{<br \/>\n    UnregisterHotKey(this.Handle, HOTKEY_ID);<br \/>\n}<br \/>\n\/\/\/<br \/>\n\/\/\/ Window Proc \u306e\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9<br \/>\n\/\/\/<br \/>\n\/\/\/ &lt;param name=&quot;message&quot; \/&gt;<br \/>\nprotected override void WndProc(ref Message message)<br \/>\n{<br \/>\n    if (message.Msg == WM_HOTKEY &amp;&amp; (int)message.WParam == HOTKEY_ID)<br \/>\n    {<br \/>\n        Bitmap bmp = ActiveWindowCapture();<br \/>\n        \/\/ bmp.Save(@&quot;c:\\work\\bmp\\&quot; + DateTime.Now.ToString(&quot;yyyyMMddHHmmss&quot;) + &quot;.bmp&quot;);<br \/>\n        \/\/ \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u3078\u30b3\u30d4\u30fc<br \/>\n        Clipboard.SetImage(bmp);<br \/>\n        return;<br \/>\n    }<br \/>\n    base.WndProc(ref message);<br \/>\n}<\/p>\n<p>[\/code]<\/p>\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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,23],"tags":[],"class_list":["post-2344","post","type-post","status-publish","format-standard","hentry","category-dev","category-csharp"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_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}]}}