• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

マウスカーソルへIMEモードの表示


Commit MetaInfo

Révisionc8e2184a1d7681ab0d94ee583f3c099ef900a28c (tree)
l'heure2023-07-17 13:53:40
AuteurJeffyTS <jeffyts@outl...>
CommiterJeffyTS

Message de Log

1.1.3.6

Change Summary

Modification

--- a/FlushMouse/FlushMouse.cpp
+++ b/FlushMouse/FlushMouse.cpp
@@ -110,9 +110,8 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance
110110 return 0;
111111 }
112112
113-#define RESOURCEFILE _T("FlushMouse.exe")
114113 // Load Resource
115- Resource = new CResource(RESOURCEFILE);
114+ Resource = new CResource(FLUSHMOUSE_EXE);
116115 if (Resource->hLoad() == NULL) {
117116 return (-1);
118117 }
--- a/FlushMouse/FlushMouseLIB.cpp
+++ b/FlushMouse/FlushMouseLIB.cpp
@@ -112,6 +112,7 @@ static void Cls_OnSysKeyDownUpEx(HWND hWnd, UINT vk, BOOL fDown, int cRepeat, U
112112 static void Cls_OnEventForegroundEx(HWND hWnd, DWORD dwEvent, HWND hForeWnd);
113113 static void Cls_OnCheckIMEStartConvertingEx(HWND hWnd, BOOL bStartConversioning, DWORD vkCode);
114114 static void Cls_OnCheckExistingJPIMEEx(HWND hWnd, BOOL bEPHelper);
115+static void Cls_OnInputLangChangeEx(HWND hWnd, UINT CodePage, HKL hkl);
115116
116117 // Sub
117118 static BOOL bSendInputSub(UINT cInputs, LPINPUT pInputs);
@@ -244,6 +245,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l
244245 HANDLE_MSG(hWnd, WM_EVENT_SYSTEM_FOREGROUNDEX, Cls_OnEventForegroundEx);
245246 HANDLE_MSG(hWnd, WM_CHECKIMESTARTCONVEX, Cls_OnCheckIMEStartConvertingEx);
246247 HANDLE_MSG(hWnd, WM_CHECKEXISTINGJPIMEEX, Cls_OnCheckExistingJPIMEEx);
248+ HANDLE_MSG(hWnd, WM_INPUTLANGCHANGEEX, Cls_OnInputLangChangeEx);
247249 break;
248250
249251 default:
@@ -422,6 +424,26 @@ static void Cls_OnDisplayChange(HWND hWnd, UINT bitsPerPixel, UINT cxScreen, UIN
422424 }
423425
424426 //
427+// WM_INPUTLANGCHANGEEX
428+// Cls_OnInputLangChangeEx
429+//
430+static void Cls_OnInputLangChangeEx(HWND hWnd, UINT CodePage, HKL hkl)
431+{
432+ UNREFERENCED_PARAMETER(hWnd);
433+ UNREFERENCED_PARAMETER(CodePage);
434+ if ((bCheckExistingJPIME() && bEnableEPHelper) || bIMEModeForced) {
435+ if (hkl == US_ENG) {
436+ HWND hForeWnd = GetForegroundWindow();
437+ if (hForeWnd != NULL) {
438+ HKL hNewHKL = NULL;
439+ HKL hPreviousHKL = NULL;
440+ bForExplorerPatcherSWS(hForeWnd, TRUE, bIMEModeForced, &hNewHKL, &hPreviousHKL); // @@@ for Explorer Patcher Simple Window Switcher
441+ }
442+ }
443+ }
444+}
445+
446+//
425447 // WM_LBUTTONDOWNEX
426448 // Cls_OnLButtonDownEx()
427449 //
@@ -431,8 +453,8 @@ static void Cls_OnLButtonDownEx(HWND hWnd, int x, int y, HWND hForeground)
431453 UNREFERENCED_PARAMETER(x);
432454 UNREFERENCED_PARAMETER(y);
433455 UNREFERENCED_PARAMETER(hForeground);
434- if (bEnableEPHelper || bIMEModeForced) {
435- bForExplorerPatcherSWS(hForeground, FALSE, bIMEModeForced, NULL, NULL);
456+ if ((bCheckExistingJPIME() && bEnableEPHelper) || bIMEModeForced) {
457+ bForExplorerPatcherSWS(hForeground, FALSE, FALSE, NULL, NULL);
436458 }
437459 return;
438460 }
@@ -495,9 +517,6 @@ static void Cls_OnEventForegroundEx(HWND hWnd, DWORD dwEvent, HWND hForeWnd)
495517 return;
496518 }
497519 }
498- if ((bCheckExistingJPIME() && bEnableEPHelper) || bIMEModeForced) {
499- bForExplorerPatcherSWS(hWnd, TRUE, bIMEModeForced, NULL, NULL);
500- }
501520 if (bOffChangedFocus) {
502521 Cime->vIMEOpenCloseForced(hForeWnd, IMECLOSE);
503522 }
--- a/FlushMouse/FlushMouseSub.cpp
+++ b/FlushMouse/FlushMouseSub.cpp
@@ -15,6 +15,7 @@
1515 #include "FlushMouseLIB.h"
1616 #include "TaskTray.h"
1717 #include "CommonDef.h"
18+#include "..\FlushMouseDLL\ShellHookDll.h"
1819 #include "..\FlushMouseDLL\GlobalHookDll.h"
1920 #include "..\FlushMouseDLL\KeyboardHookDll.h"
2021 #include "..\FlushMouseDLL\EventlogDll.h"
@@ -247,6 +248,7 @@ void CALLBACK CEventHook::vHandleEventIME(HWINEVENTHOOK hook, DWORD dwEvent, HWN
247248 CFlushMouseHook::CFlushMouseHook()
248249 {
249250 hHook64Dll = NULL;
251+ bShellHook64 = FALSE;
250252 bGlobalHook64 = FALSE;
251253 bKeyboardHookLL64 = FALSE;
252254 bMouseHook64 = FALSE;
@@ -271,8 +273,10 @@ BOOL CFlushMouseHook::bHookSet(HWND hWnd, LPCTSTR lpszDll64Name, LPCTSTR lpszE
271273 UNREFERENCED_PARAMETER(lpszDll64Name);
272274 if ((bGlobalHook64 = bGlobalHookSet(hWnd)) != FALSE) {
273275 if ((bKeyboardHookLL64 = bKeyboardHookLLSet(hWnd)) != FALSE) {
274- if ((bHook32Dll = bHook32DllStart(hWnd, lpszExec32Name)) != FALSE) {
275- return TRUE;
276+ if ((bShellHook64 = bShellHookSet(hWnd)) != FALSE) {
277+ if ((bHook32Dll = bHook32DllStart(hWnd, lpszExec32Name)) != FALSE) {
278+ return TRUE;
279+ }
276280 }
277281 }
278282 }
@@ -288,6 +292,7 @@ BOOL CFlushMouseHook::bHookUnset()
288292 if (bHook32Dll) bHook32DllStop();
289293 if (bKeyboardHookLL64) bKeyboardHookLLUnset();
290294 if (bGlobalHook64) bGlobalHookUnset();
295+ if (bShellHook64) bShellHookUnset();
291296 return TRUE;
292297 }
293298
--- a/FlushMouse/FlushMouseSub.h
+++ b/FlushMouse/FlushMouseSub.h
@@ -4,7 +4,7 @@
44 //
55 // No. Date Name Reason & Document
66 // -------+-----------+-----------+-------------------------------------------- -
7-// #0000 2022/03/03 JeffyTS New edit.
7+// #0000 2022/03/03 JeffyTS New edit.
88 //
99
1010 //
@@ -46,7 +46,7 @@ private:
4646 static void CALLBACK vHandleEventIME(HWINEVENTHOOK hook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime);
4747
4848 public:
49- HWND hFormerWnd;
49+ HWND hFormerWnd;
5050
5151 private:
5252 HWINEVENTHOOK hEventHook;
@@ -65,9 +65,9 @@ public:
6565 BOOL PowerBroadcast(HWND hWnd, ULONG Type, POWERBROADCAST_SETTING* lpSetting);
6666
6767 private:
68- HPOWERNOTIFY hSuspendResumeNotification;
69- HPOWERNOTIFY hPowerSettingNotification;
70- GUID guidPowerSettingNotification;
68+ HPOWERNOTIFY hSuspendResumeNotification;
69+ HPOWERNOTIFY hPowerSettingNotification;
70+ GUID guidPowerSettingNotification;
7171 };
7272
7373 //
@@ -88,10 +88,11 @@ private:
8888
8989 private:
9090 HMODULE hHook64Dll;
91- BOOL bGlobalHook64;
92- BOOL bKeyboardHookLL64;
93- BOOL bMouseHook64;
94- BOOL bHook32Dll;
91+ BOOL bShellHook64;
92+ BOOL bGlobalHook64;
93+ BOOL bKeyboardHookLL64;
94+ BOOL bMouseHook64;
95+ BOOL bHook32Dll;
9596
9697 private:
9798 LPPROCESS_INFORMATION lpstProcessInfomation;
--- a/FlushMouseDLL/FlushMouseDLL.vcxproj
+++ b/FlushMouseDLL/FlushMouseDLL.vcxproj
@@ -198,6 +198,7 @@
198198 <ClInclude Include="KeyboardHookDll.h" />
199199 <ClInclude Include="pch.h" />
200200 <ClInclude Include="resource.h" />
201+ <ClInclude Include="ShellHookDll.h" />
201202 <ClInclude Include="targetver.h" />
202203 </ItemGroup>
203204 <ItemGroup>
@@ -211,6 +212,7 @@
211212 <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
212213 <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
213214 </ClCompile>
215+ <ClCompile Include="ShellHookDll.cpp" />
214216 </ItemGroup>
215217 <ItemGroup>
216218 <ResourceCompile Include="EventlogData.rc" />
--- a/FlushMouseDLL/FlushMouseDLL.vcxproj.filters
+++ b/FlushMouseDLL/FlushMouseDLL.vcxproj.filters
@@ -45,6 +45,9 @@
4545 <ClInclude Include="KeyboardHookDll.h">
4646 <Filter>ヘッダー ファイル</Filter>
4747 </ClInclude>
48+ <ClInclude Include="ShellHookDll.h">
49+ <Filter>ヘッダー ファイル</Filter>
50+ </ClInclude>
4851 </ItemGroup>
4952 <ItemGroup>
5053 <ClCompile Include="FlushMouseDll.cpp">
@@ -62,6 +65,9 @@
6265 <ClCompile Include="KeyboardHookDll.cpp">
6366 <Filter>ソース ファイル</Filter>
6467 </ClCompile>
68+ <ClCompile Include="ShellHookDll.cpp">
69+ <Filter>ソース ファイル</Filter>
70+ </ClCompile>
6571 </ItemGroup>
6672 <ItemGroup>
6773 <ResourceCompile Include="FlushMouseDLL.rc">
--- a/FlushMouseDLL/GlobalHookDll.cpp
+++ b/FlushMouseDLL/GlobalHookDll.cpp
@@ -46,7 +46,7 @@ static CSharedMemory* CSharedMem = NULL;
4646 DLLEXPORT BOOL __stdcall bGlobalHookSet(HWND hWnd)
4747 {
4848 hWndGLParent = hWnd;
49- if ((CSharedMem = new CSharedMemory(GLOBALHOOKMEM, sizeof(GLOBALHOOKMEM))) != NULL) {
49+ if ((CSharedMem = new CSharedMemory(GLOBALHOOKMEM, sizeof(GLOBAL_SHAREDMEM))) != NULL) {
5050 if ((lpDatGlobal = (LPGLOBAL_SHAREDMEM)CSharedMem->lpvSharedMemoryRead()) != NULL) {
5151 lpDatGlobal->hWnd = hWnd; lpDatGlobal->hInstance = hGetInstance();
5252 if (CSharedMem->bSharedMemoryWrite(lpDatGlobal)) {
@@ -135,8 +135,7 @@ static LRESULT CALLBACK lpGlobalHookProc(int nCode, WPARAM wParam, LPARAM lParam
135135 if (!bSubclassed) {
136136 if (hHookGL == NULL) break;
137137 if (UnhookWindowsHookEx(hHookGL) != FALSE) {
138-#define DLLNAME _T("FlushMouseDLL.dll")
139- if (LoadLibraryEx(DLLNAME, NULL, 0)) {
138+ if (LoadLibraryEx(FLUSHMOUSE_DLL, NULL, 0)) {
140139 bSubclassed = TRUE;
141140 }
142141 hHookGL = NULL;
--- a/FlushMouseDLL/GlobalHookDll.h
+++ b/FlushMouseDLL/GlobalHookDll.h
@@ -4,7 +4,7 @@
44 //
55 // No. Date Name Reason & Document
66 // -------+-----------+-----------+-------------------------------------------- -
7-// #0000 2022/03/04 JeffyTS New edit.
7+// #0000 2022/03/04 JeffyTS New edit.
88 //
99
1010 //
@@ -24,8 +24,8 @@
2424 #define GLOBALHOOKMEM _T("GlobalHookSharedMem")
2525 typedef struct tagGLOBAL_SHAREDMEM {
2626 HINSTANCE hInstance;
27- HWND hWnd;
28- HHOOK hHook;
27+ HWND hWnd;
28+ HHOOK hHook;
2929 } GLOBAL_SHAREDMEM, * PGLOBAL_SHAREDMEM, * LPGLOBAL_SHAREDMEM;
3030
3131 //
--- /dev/null
+++ b/FlushMouseDLL/ShellHookDll.cpp
@@ -0,0 +1,124 @@
1+//
2+// ShellHookDll.cpp
3+// Copyright (C) 2022 JeffyTS
4+//
5+// No. Date Name Reason & Document
6+// -------+-----------+-----------+-------------------------------------------- -
7+// #0000 2022/07/14 JeffyTS New edit.
8+//
9+
10+//
11+// Include
12+//
13+#pragma once
14+#include "pch.h"
15+#include "ShellHookDll.h"
16+#include "..\FlushMouse\CommonDef.h"
17+
18+//
19+// Define
20+//
21+
22+//
23+// Local Prototype Define
24+//
25+static LRESULT CALLBACK lpShellHookProc(int, WPARAM, LPARAM);
26+
27+//
28+// Local Data
29+//
30+#pragma comment(linker, "/SECTION:FLUSHMOUSEDLL_SEG,RWS")
31+#pragma data_seg("FLUSHMOUSEDLL_SEG")
32+static HINSTANCE hShellInstance = NULL;
33+static HWND hWndShellParent = NULL;
34+static HHOOK hHookShell = NULL;
35+static LPSHELL_SHAREDMEM lpDatShell = NULL;
36+static CSharedMemory *CSharedMem = NULL;
37+
38+#pragma data_seg()
39+
40+//
41+// bShellHookSet()
42+//
43+DLLEXPORT BOOL __stdcall bShellHookSet(HWND hWnd)
44+{
45+ hWndShellParent = hWnd;
46+ CHANGEFILTERSTRUCT cf{}; cf.cbSize = sizeof(CHANGEFILTERSTRUCT);
47+ if (ChangeWindowMessageFilterEx(hWnd, WM_INPUTLANGCHANGEEX, MSGFLT_ALLOW, &cf)) {
48+ MINIMIZEDMETRICS mm{}; mm.cbSize = sizeof(MINIMIZEDMETRICS); mm.iArrange = ARW_HIDE;
49+ if (SystemParametersInfo(SPI_SETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&mm, SPIF_SENDCHANGE)) {
50+ if ((CSharedMem = new CSharedMemory(SHELLHOOKMEM, sizeof(SHELL_SHAREDMEM))) != NULL) {
51+ if ((lpDatShell = (LPSHELL_SHAREDMEM)CSharedMem->lpvSharedMemoryRead()) != NULL) {
52+ lpDatShell->hWnd = hWnd; lpDatShell->hInstance = hGetInstance();
53+ if (CSharedMem->bSharedMemoryWrite(lpDatShell)) {
54+ HHOOK hHook = SetWindowsHookEx(WH_SHELL, (HOOKPROC)lpShellHookProc, hGetInstance(), 0);
55+ if (hHook) {
56+ lpDatShell->hHook = hHook; hHookShell = hHook;
57+ if (CSharedMem->bSharedMemoryWrite(lpDatShell)) {
58+ return TRUE;
59+ }
60+ UnhookWindowsHookEx(hHook);
61+ }
62+ }
63+ }
64+ delete CSharedMem;
65+ CSharedMem = NULL;
66+ hShellInstance = NULL;
67+ hWndShellParent = NULL;
68+ hHookShell = NULL;
69+ lpDatShell = NULL;
70+ }
71+ }
72+ }
73+ return FALSE;
74+}
75+
76+//
77+// bShellHookUnset()
78+//
79+DLLEXPORT BOOL __stdcall bShellHookUnset()
80+{
81+ BOOL bRet = FALSE;
82+ if (CSharedMem != NULL) {
83+ if ((lpDatShell = (LPSHELL_SHAREDMEM)CSharedMem->lpvSharedMemoryRead()) != NULL) {
84+ if (lpDatShell->hHook) {
85+ if (UnhookWindowsHookEx(lpDatShell->hHook)) {
86+ bRet = TRUE;
87+ }
88+ }
89+ }
90+ delete CSharedMem;
91+ CSharedMem = NULL;
92+ hShellInstance = NULL;
93+ hWndShellParent = NULL;
94+ hHookShell = NULL;
95+ lpDatShell = NULL;
96+ }
97+ return bRet;
98+}
99+
100+//
101+// lpShellHookProc()
102+// フックの処理
103+//
104+static LRESULT CALLBACK lpShellHookProc(int nCode, WPARAM wParam, LPARAM lParam)
105+{
106+ if (nCode < 0) {
107+ return CallNextHookEx(NULL, nCode, wParam, lParam);
108+ }
109+ switch (nCode) {
110+ case HSHELL_WINDOWACTIVATED:
111+ PostMessage(hWndShellParent, WM_EVENT_SYSTEM_FOREGROUNDEX, (WPARAM)(-1), (LPARAM)wParam);
112+ break;
113+ case HSHELL_LANGUAGE:
114+ PostMessage(hWndShellParent, WM_INPUTLANGCHANGEEX, wParam, lParam);
115+ break;
116+ case HSHELL_WINDOWREPLACED:
117+ PostMessage(hWndShellParent, WM_EVENT_SYSTEM_FOREGROUNDEX, (WPARAM)(-1), (LPARAM)lParam);
118+ break;
119+ }
120+ return (LRESULT)0;
121+}
122+
123+
124+/* = EOF = */
\ No newline at end of file
--- /dev/null
+++ b/FlushMouseDLL/ShellHookDll.h
@@ -0,0 +1,35 @@
1+//
2+// ShellHookDll.h
3+// Copyright (C) 2022 JeffyTS
4+//
5+// No. Date Name Reason & Document
6+// -------+-----------+-----------+-------------------------------------------- -
7+// #0000 2023/07/14 JeffyTS New edit.
8+//
9+
10+//
11+// Include
12+//
13+#pragma once
14+#include "pch.h"
15+#include "FlushMouseDll.h"
16+#include "..\MiscLIB\CSharedMemory.h"
17+
18+//
19+// Define
20+//
21+#define SHELLHOOKMEM _T("ShellHookSharedMem")
22+typedef struct tagSHELL_SHAREDMEM {
23+ HINSTANCE hInstance;
24+ HWND hWnd;
25+ HHOOK hHook;
26+} SHELL_SHAREDMEM, * PSHELL_SHAREDMEM, * LPSHELL_SHAREDMEM;
27+
28+//
29+// Global Prototype Define
30+//
31+DLLEXPORT BOOL __stdcall bShellHookSet(HWND);
32+DLLEXPORT BOOL __stdcall bShellHookUnset(void);
33+
34+
35+/* = EOF = */
\ No newline at end of file
--- a/FlushMouseDLL32/MouseHookDll32.cpp
+++ b/FlushMouseDLL32/MouseHookDll32.cpp
@@ -39,7 +39,7 @@ static CSharedMemory* CSharedMem = NULL;
3939 DLLEXPORT BOOL __stdcall bMouseHookSet32(HWND hWnd)
4040 {
4141 hWndMSParent = hWnd;
42- if ((CSharedMem = new CSharedMemory(MOUSEHOOKMEM32, sizeof(MOUSEHOOKMEM32))) != NULL) {
42+ if ((CSharedMem = new CSharedMemory(MOUSEHOOKMEM32, sizeof(MOUSE_SHAREDMEM32))) != NULL) {
4343 if ((lpDatMouse = (LPMOUSE_SHAREDMEM32)CSharedMem->lpvSharedMemoryRead()) != NULL) {
4444 lpDatMouse->hWnd = hWnd;
4545 if (CSharedMem->bSharedMemoryWrite(lpDatMouse)) {
Binary files a/FlushMouse_x64.msi and b/FlushMouse_x64.msi differ
--- a/MiscLIB/CSharedMemory.cpp
+++ b/MiscLIB/CSharedMemory.cpp
@@ -30,6 +30,7 @@ typedef ULONGLONG *LPQWORD;
3030 // Class CSharedMemory
3131 //
3232 CSharedMemory::CSharedMemory(LPCTSTR szSharedMemoryName, DWORD dwDataSize)
33+ : hSharedMem(), lpszSharedMemoryName(), dwDataByteSize()
3334 {
3435
3536 size_t size = wcsnlen_s(szSharedMemoryName, MAX_LOADSTRING);
--- a/OSDN Wiki/osdn.txt
+++ b/OSDN Wiki/osdn.txt
@@ -5,119 +5,10 @@
55 ||[[Thumb(FlushMouse.png, size=48x48)]]||'''[[ProjectDescription]](タスクトレイに常駐して、マウスカーソルへIMEモードの表示をするユーティリティです)[[BR]]FlushMouse is a software developed by JeffyTS . It is a mouse gesture tool that allows you to perform various operations by drawing gestures with your mouse . (by Bing)'''||
66
77 [[BR]]
8-2023/07/05[[BR]]
9-   '''Version 1.1.2.9 をリリースしました'''[[BR]]
10-[[BR]]
11-(主な変更点)[[BR]]
12- * 今回は、プログラム的な修正はなく、GitHubにもソースを上げるようにしました。ビルド方法などはそちらに書いてあります。興味のある方はどうぞ https://github.com/JeffyTS-JP/FlushMouse [[BR]]
13-[[BR]]
14- * IMEモードの表示の色指定でαチャネルが有効になるようにしてあります(設定画面は作成していません。レジストリを編集できる方は好みの色にしてみてください (ただし、レジストリの編集は十分注意して行ってください)[[BR]]
15- * HKEY_CURRENT_USER\Software\JeffyTS\FlushMouse の NearDrawCaretColor と NearDrawMouseColor です。上位バイトから、α B G R の順です[[BR]]
16- * αの値は、通常と違って、大きいほうが透明度が高くなります。これは従来と互換性を持たせるためですのでご了承ください。なお、レジストリを変更した方がいたら、お手数をおかけしますが修正をお願いします[[BR]]
17- * マウスカーソル右下のモード表示の色は、現状では変更できません。ご了承ください[[BR]]
18-[[BR]]
19-(今後について)[[BR]]
20- * ~~OSDN上ではここまでの機能で開発は終了としたいと考えています(バグ対応は除く)~~[[BR]]
21- * ~~今後は、プレゼンテーションモードの追加や、マウスカーソルの形状や、表示する内容などをカスタマイズする機能をつけて有償に移行しようと考えています~~[[BR]]
22- * と、上記のように考えていたのですが、この FlushMouse は Microsoft Storeに登録できないやり方を使って処理しているので無理なことが判明しました(フックを使用しいるとどうしてもだめなようです。ただ、SDKなどでだいぶ検証して直させてもらいました)[[BR]]
23- * '''ということで、今後も暇を見つけて、機能向上を目指していきますのでよろしくお願いします'''[[BR]]
24-[[BR]]
25-||'''対応OS'''||
26-Windows 10 / 11 64bit (Latest Release Versionで検証しています)[[BR]]
27-[[BR]]
28-||'''インストール'''||
29-Windows Installer (msi)形式になっています。実行してインストールしてください[[BR]]
30-[[BR]]
31-アンインストールは「設定」の「アプリと機能」、または「コントロールパネル」の「プログラムと機能」からできます[[BR]]
32-または、同じバージョンのインストーラーがあればそれをもう一度実行してもアンインストールできます[[BR]]
33-  こちらの場合は、本プログラムの設定(レジストリ)を削除するかどうかを選べます(デフォルトでは残すようにしてあります)[[BR]]
34-[[BR]]
35-
36-||'''使い方'''||
37-スタートメニュー、デスクトップのアイコンをクリックするか、PCを起動するとタスクトレイに常駐します[[BR]]
38-  (ただし、PC再起動で起動しないと、一部のアプリでモード表示されない現象が発生します)[[BR]]
39-[[BR]]
40- * 不要であればデスクトップのショートカットアイコンは、削除してしまっても問題ありません[[BR]]
41- * PC起動時に、タスクスケジューラーからFlushMouseを起動するようになっています[[BR]]
42- (これにより、以前の制限事項であった「一部のアプリ、例えば「タスクマネージャー」などがフォーカスを持っているときは、モード表示ができません」は解消されました)[[BR]]
43-
44-[[BR]]
45-||'''マウスカーソル'''||
46- * IME ONの時にモードを表示するマウスカーソルは、「矢印(通常の選択)」「Iビーム(テキスト選択)」「ハンド(リンクの選択)」の3種類です[[BR]]
47- * IME OFF(直接入力)ではマウスカーソル左にはモードを表示しません(キャレットのモード表示は行います)[[BR]]
48- * キャレットとマウスカーソル左へのIMEモード表示に、Caps Lock ONの時はアンダーラインを表示します (マウスカーソル右下の表示にはアンダーラインは表示されません。ご了承ください)[[BR]]
49-[[BR]]
50-[[Thumb(Cursors.png, size=230x181)]]
51-[[BR]]
52-||'''設定ダイアログ画面'''||
53-[[Thumb(SettingDlg.png, size=572x645)]]
54-[[BR]][[BR]]
558
56-'''設定のヒント'''[[BR]]
57-[[BR]]
58-Windows 10 / 11ではマウスカーソルの形状や大きさを決める方法が複数あるため、下記の順番で設定することをお勧めします[[BR]]
59-[[BR]]
60- 1. 設定→ディスプレイ→拡大縮小とレイアウトで、「ディスプレイの解像度」、「テキスト、アプリ、その他の項目のサイズ」、「表示スケールの詳細設定」を好みに設定します[[BR]]
61- 2. 設定→デバイス→マウス→「マウスとカーソルのサイズを調整する」で好みに設定します[[BR]]
62- * この変更を行うとマウスカーソルが、Windows 10 / 11特有のものになります[[BR]]
63- * もし、Windows 7などの以前のマウスカーソルを使いたい場合は3の設定をします。必要なければ4に進んでください[[BR]]
64- 3. 設定→デバイス→マウス→「その他のマウスオプション」(これはコントロールパネルのマウスのプロパティと同じ設定画面です)の、ポインタータブで、好みのカーソル形状、大きさに設定します[[BR]]
65- 4. タスクトレイのFlushMouseのアイコンをクリックして設定を選択し、「マウスカーソルのサイズ」を好みの大きさに設定します[[BR]]
66- * FlushMouseで設定するカーソルの大きさは、アプリケーション独自に表示するもの(例えばExcelの十字型のカーソルなど)には影響しませんので、1から3を繰り返して、それらが好みの大きさになるようにしてから、FlushMouseでコントロールするカーソルの大きさを合わせると使いやすくなると思います[[BR]]
67-[[BR]]
68-'''設定項目について''' (わかりづらい項目のみ説明します)[[BR]]
69-[[BR]]
70- * IMEモードの取得方法[[BR]]
71- * 「マウスカーソル下のウィンドウのIMEモードを表示する」 / 「フォーカスウィンドウのIMEモードを表示する」から選べます[[BR]]
72- * 設定→時刻と言語→言語→キーボードの「入力方式の切り替え」や、旧IMEのプロパティにある「IME入力モード切替の通知の画面中央に表示する」と関わってきますので、ご自分の設定に合わせて好みな方を選択してください[[BR]]
73- * IME関連キーが押されたときにIMEモードを表示する[[BR]]
74- * IME関連キーとは「半角/全角(漢字)」「変換」「無変換」「カタカナ/ひらがな」「Ctrl + F6〜F9」などを指します[[BR]]
75- * モード表示の時間[[BR]]
76- * マウスカーソルの左に「あ」「ア」「A」「_ア」「_A」を表示をしている時間を調整できます[[BR]]
77- * Ctrlキーを離してからモードを表示するまでの時間[[BR]]
78- * 設定の「マウスのプロパティ」にある、「Ctrlキーを押すとポインターの位置を表示する」をONにしているとき、この表示と重なるのを避けるためにモードを表示するまでの時間を調整できます[[BR]]
79- * IMEモードをキャレット(テキストカーソル)の左に表示する
80- * アプリによってはキャレットの位置が取得できなかったり、表示位置がおかしくなることがあります(これは制限事項となります)。ただし、位置が取得できない場合は、マウスカーソルの左に表示します[[BR]]
81- * 本FlushMouseでは、「矢印」「Iビーム」「ハンド」を 「aero_」から抽出したものを表示しています(これは固定になります。ご了承ください)[[BR]]
82-[[BR]]
83-'''β機能 ExplorerPatcher Simple Window Switcher Helper について''' [[BR]]
9+ * 最近(2023/07以降)、OSDN/FlushMouse([https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage]) が、不安定なようですので、 GitHub/FlushMouse([https://github.com/JeffyTS-JP/FlushMouse])の方をチェックしていただいたほうが良いかもしれません(できるだけ、どちらにも同じソースとバイナリが置くようにはします)[[BR]]
8410 [[BR]]
85- まず、ExplorerPatcher ([https://github.com/valinet]) の作者であるValentin-Gabrielに謝意を伝えます Thanks, Valentin-Gabriel ! [[BR]]
86-[[BR]]
87- さて、マルチモニターの環境でSimple Window Switcherを有効にすると、Alt + Tabでマウスカーソルのあるカレントモニターのウィンドウだけを切り替えられて非常に便利です。もちろん他にも便利な機能があります[[BR]]
88-[[BR]]
89- しかし、Valinetのブログ([https://valinet.ro/2021/11/18/Functional-Windows-10-flyouts-on-Windows-11.html])を読むとわかるのですが、英語キーボード(101/102/104キーボード)のドライバーをロードして実現しています。このため、日本語キーボード(106/109)メインの我々にはちょっと困ったことになってしまいます。例えば、漢字(半角/全角)キーで「 !` 」が入力されてしまったり、「@」マークなどの記号の位置が変わってしまったり。何より日本語変換ができません。そこで、FlushMouseに、強制的にUS / ENGを排除する機能を加えました[[BR]]
90- IME関連キー押したときやマウスクリックしたとき、フォーカスが切り替わったときなどにIMEの状態をチェックして、後述するように動作します[[BR]]
91-[[BR]]
92- ただし、以下のような制限事項があります[[BR]]
93-[[BR]]
94- * ★__物理的に英語(101/102/104)キーボードを接続している場合は動きません。必ず日本語(106/109)キーボードの環境で使用してください__ [[BR]]
95-   (日本語キーボードが見つからないときには、本機能が動作しないようにチェックしています)[[BR]]
96- * ★Windowsに付属されているMicrosoftのIMEでしか検証していません[[BR]]
97- * 一部のアプリケーションでは「漢字(半角/全角)」などのIME関連キーで「US / ENG」「JA / ENG」から切り替わらないことがあります。現時点では制限事項となります。ご了承ください[[BR]]
98-
99-[[BR]]
100- * IME関連キーの動作は下記のようになります(IMEの設定でキーマップを変更している場合は異なることがあります)[[BR]]
101- * FlushMouse 動作時[[BR]]
102-||↓押下キー   IMEの状態→||  JA / IME   ||  JA / ENG   ||  US / ENG   ||
103-||半角 / 全角 (漢字)     ||   あ / A   ||(前のIME ON状態) ||(前のIME ON状態) ||
104-||無変換           ||   IME OFF   ||   IME OFF   ||   IME OFF   ||
105-||無変換 (IME ONの状態から) || あ / ア / _ア  ||(前のIME ON状態) ||(前のIME ON状態) ||
106-||変換            ||(前のIME ON状態) ||(前のIME ON状態) ||(前のIME ON状態) ||
107-||ひらがな          ||    あ    ||(前のIME ON状態) ||(前のIME ON状態) ||
108-||カタカナ (Shift + ひらがな)||    カ    ||(前のIME ON状態) ||(前のIME ON状態) ||
109-||英数            ||    A     ||(前のIME ON状態) ||(前のIME ON状態) ||
110- * JA / IME の時は、英数、ひらがな、カタカナ(Shift + ひらがな)のみコントロールしています。その他は,Windowsのデフォルトの動作です (以前のバージョンの IMEを使用してキーマップを変更すると使いやすくなると思います)[[BR]]
111- * Windowsのデフォルト(参考)[[BR]]
112-||↓押下キー   IMEの状態→||  JA / IME   ||  JA / ENG   ||  US / ENG   ||
113-||半角 / 全角 (漢字)     ||   あ / A   ||    −    || 「 !` 」の入力 ||
114-||無変換           ||    −    ||    −    ||    −    ||
115-||無変換 (IME ONの状態から) || あ / ア / _ア  ||    −    ||    −    ||
116-||変換            ||(前のIME ON状態) ||    −    ||    −    ||
117-||ひらがな          ||   あ / カ   ||    −    ||    −    ||
118-||カタカナ (Shift + ひらがな)||あ(もう一度で カ)||    −    ||    −    ||
119-||英数            ||   あ / A   ||    −    ||    −    ||
120-
11+ * 上記のような事情で、OSDNの Wikiはタイトルのみに変更して、詳しい内容はREADME.mdで行うようにしました。下の方を参照してください[[BR]]
12112
12213
12314 == リリースファイル (Release Files)
--- a/README.md
+++ b/README.md
@@ -1,37 +1,137 @@
11
2-# FlushMouse ![Icon](https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage/thumb/48x48/FlushMouse.png)
3-
4-**タスクトレイに常駐して、マウスカーソルへIMEモードの表示をするユーティリティです**
5-
6-**FlushMouse is a software developed by JeffyTS. It is a mouse gesture tool that allows you to perform various operations by drawing gestures with your mouse. (by Bing)**
7-
8-
9-
10-
11-使い方については [OSDN/FlushMouse](https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage "https://osdn.net/users/JeffyTS/pf/FlushMouse/wiki/FrontPage)") を参照してください (どちらにも同じソースとバイナリが置いてあります)
12-
13-![Cursors](https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage/thumb/230x181/Cursors.png)
14-
15-![SettingDialog](https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage/thumb/572x645/SettingDlg.png)
16-
17-
18-
19-**ビルド方法**
2+# FlushMouse
3+|![Icon](https://github.com/JeffyTS-JP/FlushMouse/blob/master/OSDN%20Wiki/FlushMouse.png)|**タスクトレイに常駐して、マウスカーソルへIMEモードの表示をするユーティリティです<br>FlushMouse is a software developed by JeffyTS. It is a mouse gesture tool that allows you to perform various operations by drawing gestures with your mouse. (by Bing)**|
4+| :---: | :--- |
5+
6+#### リリース情報
7+
8+* **2023/07/12  Version 1.1.2.9 をリリースしました**
9+
10+* **(主な変更点)**
11+ * EP Helperの機能を強化して、US / ENGになってしまうのをさらに防ぐようにしました
12+ * 最近(2023/07以降)、[OSDN/FlushMouse](https://osdn.net/users/jeffyts/pf/FlushMouse/wiki/FrontPage) が、不安定なようですので、 [GitHub/FlushMouse](https://github.com/JeffyTS-JP/FlushMouse)の方をチェックしていただいたほうが良いかもしれません(できるだけ、どちらにも同じソースとバイナリが置くようにはします)
13+ * 上記のような事情で、OSDNの Wikiは簡単な説明に変更して、詳しい内容はREADME.mdで行うようにしました。ビルド方法については下の方に書いてあります
14+
15+
16+ * IMEモードの表示の色指定でαチャネルが有効になるようにしてあります(設定画面は作成していません。レジストリを編集できる方は好みの色にしてみてください (ただし、レジストリの編集は十分注意して行ってください)
17+ * HKEY_CURRENT_USER\Software\JeffyTS\FlushMouse の NearDrawCaretColor と NearDrawMouseColor です。上位バイトから、α B G R の順です
18+ * αの値は、通常と違って、大きいほうが透明度が高くなります。これは従来と互換性を持たせるためですのでご了承ください。なお、レジストリを変更した方がいたら、お手数をおかけしますが修正をお願いします
19+ * マウスカーソル右下のモード表示の色は、現状では変更できません。ご了承ください
20+
21+* **(今後について)**
22+ * ~~OSDN上ではここまでの機能で開発は終了としたいと考えています(バグ対応は除く)~~
23+ * ~~今後は、プレゼンテーションモードの追加や、マウスカーソルの形状や、表示する内容などをカスタマイズする機能をつけて有償に移行しようと考えています~~
24+ * と、上記のように考えていたのですが、この FlushMouse は Microsoft Storeに登録できないやり方を使って処理しているので無理なことが判明しました(フックを使用しいるとどうしてもだめなようです。ただ、SDKなどで、だいぶ検証しました)
25+ * ***ということで、今後も暇を見つけて、機能向上を目指していきますのでよろしくお願いします***
26+
27+#### 対応OS
28+ * Windows 10 / 11 64bit (Latest Release Versionで検証しています)
29+
30+#### インストール / アンインストール
31+ * Windows Installer (msi)形式になっています。実行してインストールしてください
32+ * アンインストールは「設定」の「アプリと機能」、または「コントロールパネル」の「プログラムと機能」からできます
33+ * または、同じバージョンのインストーラーがあればそれをもう一度実行してもアンインストールできます[[BR]]
34+ * こちらの場合は、本プログラムの設定(レジストリ)を削除するかどうかを選べます(デフォルトでは残すようにしてあります)[[BR]]
35+
36+#### 使い方
37+ * スタートメニュー、デスクトップのアイコンをクリックするか、PCを起動するとタスクトレイに常駐します(ただし、PC再起動で起動しないと、一部のアプリでモード表示されない現象が発生します)
38+ * PC起動時に、タスクスケジューラーからFlushMouseを自動的に起動するようになっています
39+ * (これにより、以前の制限事項であった「一部のアプリ、例えば「タスクマネージャー」などがフォーカスを持っているときは、モード表示ができません」は解消されました)
40+ * 不要であればデスクトップのショートカットアイコンは、削除してしまっても問題ありません
41+
42+#### マウスカーソル
43+ * IME ONの時にモードを表示するマウスカーソルは、「矢印(通常の選択)」「Iビーム(テキスト選択)」「ハンド(リンクの選択)」の3種類です
44+ * IME OFF(直接入力)ではマウスカーソル左にはモードを表示しません(キャレットのモード表示は行います)
45+ * キャレットとマウスカーソル左へのIMEモード表示に、Caps Lock ONの時はアンダーラインを表示します (マウスカーソル右下の表示にはアンダーラインは表示されません。ご了承ください)
46+
47+![Cursors](https://github.com/JeffyTS-JP/FlushMouse/blob/master/OSDN%20Wiki/Cursors.png)
48+
49+#### 設定ダイアログ画面
50+ * タスクトレイの中にあるFlushMouseのアイコンをクリックすることで表示します
51+
52+![SettingDialog](https://github.com/JeffyTS-JP/FlushMouse/blob/master/OSDN%20Wiki/SettingDlg.png)
53+
54+#### 設定のヒント
55+ * Windows 10 / 11ではマウスカーソルの形状や大きさを決める方法が複数あるため、下記の順番で設定することをお勧めします
56+ 1. 設定→ディスプレイ→拡大縮小とレイアウトで、「ディスプレイの解像度」、「テキスト、アプリ、その他の項目のサイズ」、「表示スケールの詳細設定」を好みに設定します
57+ 2. 設定→デバイス→マウス→「マウスとカーソルのサイズを調整する」で好みに設定します
58+ * この変更を行うとマウスカーソルが、Windows 10 / 11特有のものになります
59+ * もし、Windows 7などの以前のマウスカーソルを使いたい場合は3の設定をします。必要なければ4に進んでください
60+ 3. 設定→デバイス→マウス→「その他のマウスオプション」(これはコントロールパネルのマウスのプロパティと同じ設定画面です)の、ポインタータブで、好みのカーソル形状、大きさに設定します
61+ 4. タスクトレイのFlushMouseのアイコンをクリックして設定を選択し、「マウスカーソルのサイズ」を好みの大きさに設定します
62+ * FlushMouseで設定するカーソルの大きさは、アプリケーション独自に表示するもの(例えばExcelの十字型のカーソルなど)には影響しませんので、1から3を繰り返して、それらが好みの大きさになるようにしてから、FlushMouseでコントロールするカーソルの大きさを合わせると使いやすくなると思います
63+
64+#### 設定項目について (わかりづらい項目のみ説明します)
65+ * **IMEモードの取得方法**
66+ * 「マウスカーソル下のウィンドウのIMEモードを表示する」 / 「フォーカスウィンドウのIMEモードを表示する」から選べます
67+ * 設定→時刻と言語→言語→キーボードの「入力方式の切り替え」や、旧IMEのプロパティにある「IME入力モード切替の通知の画面中央に表示する」と関わってきますので、ご自分の設定に合わせて好みな方を選択してください
68+ * **IME関連キーが押されたときにIMEモードを表示する**
69+ * IME関連キーとは「半角/全角(漢字)」「変換」「無変換」「カタカナ/ひらがな」「Ctrl + F6~F9」などを指します
70+ * **モード表示の時間**
71+ * マウスカーソルの左に「あ」「ア」「A」「_ア」「_A」を表示をしている時間を調整できます
72+ * **Ctrlキーを離してからモードを表示するまでの時間**
73+ * 設定の「マウスのプロパティ」にある、「Ctrlキーを押すとポインターの位置を表示する」をONにしているとき、この表示と重なるのを避けるためにモードを表示するまでの時間を調整できます
74+ * **IMEモードをキャレット(テキストカーソル)の左に表示する**
75+ * アプリによってはキャレットの位置が取得できなかったり、表示位置がおかしくなることがあります(これは制限事項となります)。ただし、位置が取得できない場合は、マウスカーソルの左に表示します
76+ * 本FlushMouseでは、「矢印」「Iビーム」「ハンド」を 「aero_」から抽出したものを表示しています(これは固定になります。ご了承ください)
77+
78+
79+#### β機能 ExplorerPatcher Simple Window Switcher Helper について
80+ * まず、[ExplorerPatcher](https://github.com/valinet) の作者であるValentin-Gabrielに謝意を伝えます Thanks, Valentin-Gabriel !
81+ * さて、マルチモニターの環境でSimple Window Switcherを有効にすると、Alt + Tabでマウスカーソルのあるカレントモニターのウィンドウだけを切り替えられて非常に便利です。もちろん他にも便利な機能があります
82+
83+ * しかし、[Valinetのブログ](https://valinet.ro/2021/11/18/Functional-Windows-10-flyouts-on-Windows-11.html)を読むとわかるのですが、英語キーボード(101/102/104キーボード)のドライバーをロードして実現しています。このため、日本語キーボード(106/109)メインの我々にはちょっと困ったことになってしまいます。例えば、漢字(半角/全角)キーで「 ` 」が入力されてしまったり、「@」マークなどの記号の位置が変わってしまったり。何より日本語変換ができません。そこで、FlushMouseに、強制的にUS / ENGを排除する機能を加えました
84+ * Windowsキー + スペースで入力言語を切り替えた時、IME関連キー押したときやマウスクリックしたとき、フォーカスが切り替わったときなどにIMEの状態をチェックして、後述するように動作します
85+
86+ * ただし、以下のような制限事項があります
87+ * ★**物理的に英語(101/102/104)キーボードを接続している場合は動きません。必ず日本語(106/109)キーボードの環境で使用してください**(日本語キーボードが見つからないときには、本機能が動作しないようにチェックしています)
88+ * ★**Windowsに付属されているMicrosoft IMEでしか検証していません**
89+ * 一部のアプリケーションでは「漢字(半角/全角)」などのIME関連キーで「US / ENG」「JA / ENG」から切り替わらないことがあります。現時点では制限事項となります。ご了承ください
90+
91+ * IME関連キーの動作は下記のようになります(IMEの設定でキーマップを変更している場合は異なることがあります)
92+ * FlushMouse 動作時 (ExplorerPatcher Simple Window Switcher HelperをONにした場合)
93+ * JA / IME の時は、英数、ひらがな、カタカナ(Shift + ひらがな)のみコントロールしています。その他は,Windowsのデフォルトの動作です (以前のバージョンの IMEを使用してキーマップを変更すると使いやすくなると思います)
94+
95+|↓押下キー   IMEの状態→|  JA / IME   |  JA / ENG   |  US / ENG   |
96+| :---: | :---: | :---: | :---: |
97+|半角 / 全角 (漢字) |   あ / A   |(前のIME ON状態) |(前のIME ON状態) |
98+|無変換 |   IME OFF   |   IME OFF   |   IME OFF   |
99+|無変換(IME ONの状態から) | あ / ア / _ア  |(前のIME ON状態) |(前のIME ON状態) |
100+|変換 |(前のIME ON状態) |(前のIME ON状態) |(前のIME ON状態) |
101+|ひらがな |    あ    |(前のIME ON状態) |(前のIME ON状態) |
102+|カタカナ (Shift + ひらがな)|    カ    |(前のIME ON状態) |(前のIME ON状態) |
103+|英数 |    A     |(前のIME ON状態) |(前のIME ON状態) |
104+
105+ * Windowsのデフォルト(参考)
106+
107+|↓押下キー   IMEの状態→|  JA / IME   |  JA / ENG   |  US / ENG   |
108+| :---: | :---: | :---: | :---: |
109+|半角 / 全角 (漢字) |   あ / A   |    -    | 「 ` 」の入力 |
110+|無変換 |    -    |    -    |    -    |
111+|無変換 (IME ONの状態から) | あ / ア / _ア  |    -    |    -    |
112+|変換 |(前のIME ON状態) |    -    |    -    |    -    |
113+|ひらがな |   あ / カ   |    -    |    -    |
114+|カタカナ (Shift + ひらがな)|あ(もう一度で カ)|    -    |    -    |
115+|英数 |   あ / A   |    -    |    -    |
116+
117+
118+#### ビルド方法**
20119
21120 * まず、Visual Studio 2022 の開発環境が必要になりますので、二つの方法を紹介します
121+
22122 A. ご自分のPCに直接Visual Studioを入れる場合は、
23123 このリンク [https://visualstudio.microsoft.com/ja/downloads/](https://visualstudio.microsoft.com/ja/downloads/) から入手してください(Communityで十分だと思います)
24124
25- B. 仮想環境で開発環境を構築したい方は、このリンク [https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/](https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/) から入手してください
125+ B. 仮想マシンで開発環境を構築したい方は、このリンク [https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/](https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/) から入手してください
26126
27127
28-* 以下では、Bの方法を紹介します(私はVMwareで作業していますので、その方法を紹介しますが、他の仮想マシンでも同じような手順だと思います)。なお、ライセンス等については、よく読んでご判断ください
128+* 以下では、Bの方法を紹介します(私はVMwareで作業していますので、その手順を紹介しますが、他の仮想マシンでも同じような手順だと思います)。なお、ライセンス等については、よく読んでご判断ください
29129
30130 * BのWindows 11開発環境を取得する から、仮想マシンをダウンロードしてインストールしたのち、日本語化するために最低設定する項目です(他にも設定する項目はありますが割愛します)
31131
32132 1. Settings -> Time & language -> Language & regionで、日本語を追加します
33133 2. Japaneseを上に移動します
34- 3. 右側の「…」をクリックして、Option -> Keyboards -> Chage layout -> Japanese keyboard(106/109 key)を選択し、Restart nowで再起動します
134+ 3. 右側の「…」をクリックして、Option -> Keyboards -> Change layout -> Japanese keyboard(106/109 key)を選択し、Restart nowで再起動します
35135 4. Settings -> Time & language -> Date & Time -> Time zone -> UTC+09:00) Osaka, Sapporo, Tokyoを設定します
36136 5. Settings -> Time & language -> Language & region -> Windows display language -> 日本語 を選んで、 Sign out、Sign inします
37137 6. 設定 -> 時刻と言語 -> 言語と地域 -> 管理用言語の設定で表示されるダイアログで、システムロケールの変更を選んで 日本語(日本)を選択します
@@ -39,16 +139,16 @@
39139
40140 * 次に、Visual Studioの設定を行います
41141
42- 1. まず、Visual Studio Installer (必ずInstallerを選んでください。Windowsキーを押して「vis」と入力すると出てきます)を起動します
43- 2. 上の変更タブを選んで、 C++ によるデスクトップ開発にチェックを入れます。次に言語パックタブで日本語にチェックを入れます。その後、右下の変更ボタンで、インストールを行います
44- 3. 次に、WiXを使用するために、設定 -> アプリ -> オプション機能 -> Windowsのその他の機能 -> Windowsの機能の有効化または無効化 -> .NET Framework 3.5.1(.NET 2.0及び3.0を含む)にチェックを入れてOKを押して再起動します
142+ 1. まず、Visual Studio **Installer** (必ず**Installer**を選んでください。Windowsキーを押して「vis」と入力すると候補に出てきます)を起動します
143+ 2. 変更を選んで、 「C++ によるデスクトップ開発」にチェックを入れます。次に「言語パック」タブで日本語にチェックを入れます。その後、右下の変更ボタンで、インストールを行います
144+ 3. 次に、WiXを使用するために、Windowsの設定 -> アプリ -> オプション機能 -> Windowsのその他の機能 -> Windowsの機能の有効化または無効化 -> .NET Framework 3.5.1(.NET 2.0及び3.0を含む)にチェックを入れてOKを押して、インストール、再起動します
45145 4. [https://github.com/wixtoolset/wix3](https://github.com/wixtoolset/wix3) から、Wix311.exeをダウンロードしてインストールします
46146 5. Visual Studioを起動して 右下の「コードなし」で起動します
47- 6. 拡張機能 -> 検索で WiXと入力し「 WiX v3 - Visual Studio 2022 Extension」を選択して、再起動するとインストールが始まります
147+ 6. 拡張機能 -> 検索で WiXと入力し「 WiX v3 - Visual Studio 2022 Extension」を選択して、Visual Studioを終了するとインストールが始まります
48148
49149 * ビルド方法です
50150 1. Visual Studioを起動して、リポジトリのクローン -> リポジトリの場所に [https://github.com/JeffyTS-JP/FlushMouse.git](https://github.com/JeffyTS-JP/FlushMouse.git) を入力してクローンします
51- 2. クローンが終わったら構成を MixedPlatform にしてビルドします
151+ 2. クローンが終わったら、構成を **MixedPlatform** にしてビルドします
52152 3. Releaseでビルドすると、デフォルトでは C:\Users\User\source\repos\FlushMouseにFlushMouse_x64.msiができるのでインストールしてください
53153
54154
--- a/version.h
+++ b/version.h
@@ -4,16 +4,16 @@
44 //
55 // No. Date Name Reason & Document
66 // -------+-----------+-----------+-------------------------------------------- -
7-// #0000 2023/03/17 JeffyTS New edit.
7+// #0000 2023/03/17 JeffyTS New edit.
88 //
99
1010 #define MAJOR_VERSION 1
1111 #define MINOR_VERSION 1
12-#define BUILD_VERSION 2
13-#define REVISON_VERSION 9
12+#define BUILD_VERSION 3
13+#define REVISON_VERSION 6
1414
15-#define FILE_VERSION_STRING VALUE "FileVersion", "1.1.2.9"
16-#define PRODUCT_VERSION_STRING VALUE "ProductVersion", "1.1.2.9"
15+#define FILE_VERSION_STRING VALUE "FileVersion", "1.1.3.6"
16+#define PRODUCT_VERSION_STRING VALUE "ProductVersion", "1.1.3.6"
1717
1818 #define FILE_VERSION MAJOR_VERSION, MINOR_VERSION, BUILD_VERSION, REVISON_VERSION
1919 #define PRODUCT_VERSION MAJOR_VERSION, MINOR_VERSION, BUILD_VERSION, REVISON_VERSION
--- a/version.wxi
+++ b/version.wxi
@@ -1,6 +1,6 @@
11 <Include>
22 <!-- for wix Setup Project -->
33 <!-- Copyright (C) 2023 JeffyTS -->
4- <?define Version = "1.1.2.9" ?>
4+ <?define Version = "1.1.3.6" ?>
55 </Include>
66