<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JugglerShu.Net &#187; Windows Key</title>
	<atom:link href="http://programming.jugglershu.net/wp/?cat=51&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://programming.jugglershu.net/wp</link>
	<description>Nothing But Programming</description>
	<lastBuildDate>Wed, 15 Apr 2020 08:11:15 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Windowsキーを無効にする</title>
		<link>http://programming.jugglershu.net/wp/?p=624</link>
		<comments>http://programming.jugglershu.net/wp/?p=624#comments</comments>
		<pubDate>Sat, 11 Jul 2009 17:16:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Key]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=624</guid>
		<description><![CDATA[今作っているソフトで、一時的にWindowsキーを無効にしたいときがあった。普通だとスタートメニューが表示されたり、ショートカットがいくつか使えたりするけど、Windowsキーを利用するアプリを作っていて、自分のウィンドウにフォーカスがあるときだけはWindowsキーを無効にしたかった。 とりあえずその方法 まずは単純に無効にする方法。キーボードフックを利用すればよいらしい。 &#60;code&#038;g <a class="more-link" href="http://programming.jugglershu.net/wp/?p=624">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>今作っているソフトで、一時的にWindowsキーを無効にしたいときがあった。<br />普通だとスタートメニューが表示されたり、ショートカットがいくつか使えたりするけど、<br />Windowsキーを利用するアプリを作っていて、自分のウィンドウにフォーカスがあるときだけはWindowsキーを無効にしたかった。</p>
<p>とりあえずその方法</p>
<p>まずは単純に無効にする方法。キーボードフックを利用すればよいらしい。
<pre>&lt;code&gt;&lt;br&gt;hHook = SetWindowsHookEx( WH_KEYBOARD_LL , WinKeyHook , hInst , 0 );&lt;br&gt;&lt;/code&gt;</pre>
<p>以下のURLを見れば全体が書いてある。 <br />http://www.programmersheaven.com/mb/windows/344596/344596/how-to-disable-the-start-menu-button/</p>
<p>で、そこから、自分のウィンドウにフォーカスがあるときだけという条件を付けるカスタマイズ<br />フック関数を以下のようにする
<pre>&lt;code&gt;&lt;br&gt;LRESULT CALLBACK WinKeyHook(int code, WPARAM wparam, LPARAM lparam)&lt;br&gt;{&lt;br&gt;PKBDLLHOOKSTRUCT key = (PKBDLLHOOKSTRUCT)lparam;&lt;br&gt;DWORD pid=0;&lt;br&gt;&lt;br&gt;switch(wparam)&lt;br&gt;{&lt;br&gt;case WM_KEYDOWN:&lt;br&gt;case WiM_KEYUP:&lt;br&gt;case WM_SYSKEYDOWN:&lt;br&gt;case WM_SYSKEYUP:&lt;br&gt;if(key-&gt;vkCode==VK_LWIN || key-&gt;vkCode==VK_RWIN){&lt;br&gt;GetWindowThreadProcessId( GetForegroundWindow() , &amp;pid );&lt;br&gt;if( GetCurrentProcessId() == pid ){&lt;br&gt;return 1;&lt;br&gt;}&lt;br&gt;}&lt;br&gt;}&lt;br&gt;return CallNextHookEx(NULL, code, wparam, lparam);&lt;br&gt;}&lt;br&gt;&lt;/code&gt;</pre>
<p>これで自分がフォアグラウンドにいるときはWindowsキーが無効になる。<br />ただし、自分自身のウィンドウもWindowsキーのイベントを取得できなくなるので注意。<br />自分も必要な場合は・・・これからどうするか考えます。</p>
</p>]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=624</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
