マウスカーソルへIMEモードの表示
Révision | c8e2184a1d7681ab0d94ee583f3c099ef900a28c (tree) |
---|---|
l'heure | 2023-07-17 13:53:40 |
Auteur | JeffyTS <jeffyts@outl...> |
Commiter | JeffyTS |
1.1.3.6
@@ -110,9 +110,8 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance | ||
110 | 110 | return 0; |
111 | 111 | } |
112 | 112 | |
113 | -#define RESOURCEFILE _T("FlushMouse.exe") | |
114 | 113 | // Load Resource |
115 | - Resource = new CResource(RESOURCEFILE); | |
114 | + Resource = new CResource(FLUSHMOUSE_EXE); | |
116 | 115 | if (Resource->hLoad() == NULL) { |
117 | 116 | return (-1); |
118 | 117 | } |
@@ -112,6 +112,7 @@ static void Cls_OnSysKeyDownUpEx(HWND hWnd, UINT vk, BOOL fDown, int cRepeat, U | ||
112 | 112 | static void Cls_OnEventForegroundEx(HWND hWnd, DWORD dwEvent, HWND hForeWnd); |
113 | 113 | static void Cls_OnCheckIMEStartConvertingEx(HWND hWnd, BOOL bStartConversioning, DWORD vkCode); |
114 | 114 | static void Cls_OnCheckExistingJPIMEEx(HWND hWnd, BOOL bEPHelper); |
115 | +static void Cls_OnInputLangChangeEx(HWND hWnd, UINT CodePage, HKL hkl); | |
115 | 116 | |
116 | 117 | // Sub |
117 | 118 | static BOOL bSendInputSub(UINT cInputs, LPINPUT pInputs); |
@@ -244,6 +245,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l | ||
244 | 245 | HANDLE_MSG(hWnd, WM_EVENT_SYSTEM_FOREGROUNDEX, Cls_OnEventForegroundEx); |
245 | 246 | HANDLE_MSG(hWnd, WM_CHECKIMESTARTCONVEX, Cls_OnCheckIMEStartConvertingEx); |
246 | 247 | HANDLE_MSG(hWnd, WM_CHECKEXISTINGJPIMEEX, Cls_OnCheckExistingJPIMEEx); |
248 | + HANDLE_MSG(hWnd, WM_INPUTLANGCHANGEEX, Cls_OnInputLangChangeEx); | |
247 | 249 | break; |
248 | 250 | |
249 | 251 | default: |
@@ -422,6 +424,26 @@ static void Cls_OnDisplayChange(HWND hWnd, UINT bitsPerPixel, UINT cxScreen, UIN | ||
422 | 424 | } |
423 | 425 | |
424 | 426 | // |
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 | +// | |
425 | 447 | // WM_LBUTTONDOWNEX |
426 | 448 | // Cls_OnLButtonDownEx() |
427 | 449 | // |
@@ -431,8 +453,8 @@ static void Cls_OnLButtonDownEx(HWND hWnd, int x, int y, HWND hForeground) | ||
431 | 453 | UNREFERENCED_PARAMETER(x); |
432 | 454 | UNREFERENCED_PARAMETER(y); |
433 | 455 | 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); | |
436 | 458 | } |
437 | 459 | return; |
438 | 460 | } |
@@ -495,9 +517,6 @@ static void Cls_OnEventForegroundEx(HWND hWnd, DWORD dwEvent, HWND hForeWnd) | ||
495 | 517 | return; |
496 | 518 | } |
497 | 519 | } |
498 | - if ((bCheckExistingJPIME() && bEnableEPHelper) || bIMEModeForced) { | |
499 | - bForExplorerPatcherSWS(hWnd, TRUE, bIMEModeForced, NULL, NULL); | |
500 | - } | |
501 | 520 | if (bOffChangedFocus) { |
502 | 521 | Cime->vIMEOpenCloseForced(hForeWnd, IMECLOSE); |
503 | 522 | } |
@@ -15,6 +15,7 @@ | ||
15 | 15 | #include "FlushMouseLIB.h" |
16 | 16 | #include "TaskTray.h" |
17 | 17 | #include "CommonDef.h" |
18 | +#include "..\FlushMouseDLL\ShellHookDll.h" | |
18 | 19 | #include "..\FlushMouseDLL\GlobalHookDll.h" |
19 | 20 | #include "..\FlushMouseDLL\KeyboardHookDll.h" |
20 | 21 | #include "..\FlushMouseDLL\EventlogDll.h" |
@@ -247,6 +248,7 @@ void CALLBACK CEventHook::vHandleEventIME(HWINEVENTHOOK hook, DWORD dwEvent, HWN | ||
247 | 248 | CFlushMouseHook::CFlushMouseHook() |
248 | 249 | { |
249 | 250 | hHook64Dll = NULL; |
251 | + bShellHook64 = FALSE; | |
250 | 252 | bGlobalHook64 = FALSE; |
251 | 253 | bKeyboardHookLL64 = FALSE; |
252 | 254 | bMouseHook64 = FALSE; |
@@ -271,8 +273,10 @@ BOOL CFlushMouseHook::bHookSet(HWND hWnd, LPCTSTR lpszDll64Name, LPCTSTR lpszE | ||
271 | 273 | UNREFERENCED_PARAMETER(lpszDll64Name); |
272 | 274 | if ((bGlobalHook64 = bGlobalHookSet(hWnd)) != FALSE) { |
273 | 275 | 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 | + } | |
276 | 280 | } |
277 | 281 | } |
278 | 282 | } |
@@ -288,6 +292,7 @@ BOOL CFlushMouseHook::bHookUnset() | ||
288 | 292 | if (bHook32Dll) bHook32DllStop(); |
289 | 293 | if (bKeyboardHookLL64) bKeyboardHookLLUnset(); |
290 | 294 | if (bGlobalHook64) bGlobalHookUnset(); |
295 | + if (bShellHook64) bShellHookUnset(); | |
291 | 296 | return TRUE; |
292 | 297 | } |
293 | 298 |
@@ -4,7 +4,7 @@ | ||
4 | 4 | // |
5 | 5 | // No. Date Name Reason & Document |
6 | 6 | // -------+-----------+-----------+-------------------------------------------- - |
7 | -// #0000 2022/03/03 JeffyTS New edit. | |
7 | +// #0000 2022/03/03 JeffyTS New edit. | |
8 | 8 | // |
9 | 9 | |
10 | 10 | // |
@@ -46,7 +46,7 @@ private: | ||
46 | 46 | static void CALLBACK vHandleEventIME(HWINEVENTHOOK hook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime); |
47 | 47 | |
48 | 48 | public: |
49 | - HWND hFormerWnd; | |
49 | + HWND hFormerWnd; | |
50 | 50 | |
51 | 51 | private: |
52 | 52 | HWINEVENTHOOK hEventHook; |
@@ -65,9 +65,9 @@ public: | ||
65 | 65 | BOOL PowerBroadcast(HWND hWnd, ULONG Type, POWERBROADCAST_SETTING* lpSetting); |
66 | 66 | |
67 | 67 | private: |
68 | - HPOWERNOTIFY hSuspendResumeNotification; | |
69 | - HPOWERNOTIFY hPowerSettingNotification; | |
70 | - GUID guidPowerSettingNotification; | |
68 | + HPOWERNOTIFY hSuspendResumeNotification; | |
69 | + HPOWERNOTIFY hPowerSettingNotification; | |
70 | + GUID guidPowerSettingNotification; | |
71 | 71 | }; |
72 | 72 | |
73 | 73 | // |
@@ -88,10 +88,11 @@ private: | ||
88 | 88 | |
89 | 89 | private: |
90 | 90 | 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; | |
95 | 96 | |
96 | 97 | private: |
97 | 98 | LPPROCESS_INFORMATION lpstProcessInfomation; |
@@ -198,6 +198,7 @@ | ||
198 | 198 | <ClInclude Include="KeyboardHookDll.h" /> |
199 | 199 | <ClInclude Include="pch.h" /> |
200 | 200 | <ClInclude Include="resource.h" /> |
201 | + <ClInclude Include="ShellHookDll.h" /> | |
201 | 202 | <ClInclude Include="targetver.h" /> |
202 | 203 | </ItemGroup> |
203 | 204 | <ItemGroup> |
@@ -211,6 +212,7 @@ | ||
211 | 212 | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> |
212 | 213 | <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> |
213 | 214 | </ClCompile> |
215 | + <ClCompile Include="ShellHookDll.cpp" /> | |
214 | 216 | </ItemGroup> |
215 | 217 | <ItemGroup> |
216 | 218 | <ResourceCompile Include="EventlogData.rc" /> |
@@ -45,6 +45,9 @@ | ||
45 | 45 | <ClInclude Include="KeyboardHookDll.h"> |
46 | 46 | <Filter>ヘッダー ファイル</Filter> |
47 | 47 | </ClInclude> |
48 | + <ClInclude Include="ShellHookDll.h"> | |
49 | + <Filter>ヘッダー ファイル</Filter> | |
50 | + </ClInclude> | |
48 | 51 | </ItemGroup> |
49 | 52 | <ItemGroup> |
50 | 53 | <ClCompile Include="FlushMouseDll.cpp"> |
@@ -62,6 +65,9 @@ | ||
62 | 65 | <ClCompile Include="KeyboardHookDll.cpp"> |
63 | 66 | <Filter>ソース ファイル</Filter> |
64 | 67 | </ClCompile> |
68 | + <ClCompile Include="ShellHookDll.cpp"> | |
69 | + <Filter>ソース ファイル</Filter> | |
70 | + </ClCompile> | |
65 | 71 | </ItemGroup> |
66 | 72 | <ItemGroup> |
67 | 73 | <ResourceCompile Include="FlushMouseDLL.rc"> |
@@ -46,7 +46,7 @@ static CSharedMemory* CSharedMem = NULL; | ||
46 | 46 | DLLEXPORT BOOL __stdcall bGlobalHookSet(HWND hWnd) |
47 | 47 | { |
48 | 48 | hWndGLParent = hWnd; |
49 | - if ((CSharedMem = new CSharedMemory(GLOBALHOOKMEM, sizeof(GLOBALHOOKMEM))) != NULL) { | |
49 | + if ((CSharedMem = new CSharedMemory(GLOBALHOOKMEM, sizeof(GLOBAL_SHAREDMEM))) != NULL) { | |
50 | 50 | if ((lpDatGlobal = (LPGLOBAL_SHAREDMEM)CSharedMem->lpvSharedMemoryRead()) != NULL) { |
51 | 51 | lpDatGlobal->hWnd = hWnd; lpDatGlobal->hInstance = hGetInstance(); |
52 | 52 | if (CSharedMem->bSharedMemoryWrite(lpDatGlobal)) { |
@@ -135,8 +135,7 @@ static LRESULT CALLBACK lpGlobalHookProc(int nCode, WPARAM wParam, LPARAM lParam | ||
135 | 135 | if (!bSubclassed) { |
136 | 136 | if (hHookGL == NULL) break; |
137 | 137 | if (UnhookWindowsHookEx(hHookGL) != FALSE) { |
138 | -#define DLLNAME _T("FlushMouseDLL.dll") | |
139 | - if (LoadLibraryEx(DLLNAME, NULL, 0)) { | |
138 | + if (LoadLibraryEx(FLUSHMOUSE_DLL, NULL, 0)) { | |
140 | 139 | bSubclassed = TRUE; |
141 | 140 | } |
142 | 141 | hHookGL = NULL; |
@@ -4,7 +4,7 @@ | ||
4 | 4 | // |
5 | 5 | // No. Date Name Reason & Document |
6 | 6 | // -------+-----------+-----------+-------------------------------------------- - |
7 | -// #0000 2022/03/04 JeffyTS New edit. | |
7 | +// #0000 2022/03/04 JeffyTS New edit. | |
8 | 8 | // |
9 | 9 | |
10 | 10 | // |
@@ -24,8 +24,8 @@ | ||
24 | 24 | #define GLOBALHOOKMEM _T("GlobalHookSharedMem") |
25 | 25 | typedef struct tagGLOBAL_SHAREDMEM { |
26 | 26 | HINSTANCE hInstance; |
27 | - HWND hWnd; | |
28 | - HHOOK hHook; | |
27 | + HWND hWnd; | |
28 | + HHOOK hHook; | |
29 | 29 | } GLOBAL_SHAREDMEM, * PGLOBAL_SHAREDMEM, * LPGLOBAL_SHAREDMEM; |
30 | 30 | |
31 | 31 | // |
@@ -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 |
@@ -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 |
@@ -39,7 +39,7 @@ static CSharedMemory* CSharedMem = NULL; | ||
39 | 39 | DLLEXPORT BOOL __stdcall bMouseHookSet32(HWND hWnd) |
40 | 40 | { |
41 | 41 | hWndMSParent = hWnd; |
42 | - if ((CSharedMem = new CSharedMemory(MOUSEHOOKMEM32, sizeof(MOUSEHOOKMEM32))) != NULL) { | |
42 | + if ((CSharedMem = new CSharedMemory(MOUSEHOOKMEM32, sizeof(MOUSE_SHAREDMEM32))) != NULL) { | |
43 | 43 | if ((lpDatMouse = (LPMOUSE_SHAREDMEM32)CSharedMem->lpvSharedMemoryRead()) != NULL) { |
44 | 44 | lpDatMouse->hWnd = hWnd; |
45 | 45 | if (CSharedMem->bSharedMemoryWrite(lpDatMouse)) { |
@@ -30,6 +30,7 @@ typedef ULONGLONG *LPQWORD; | ||
30 | 30 | // Class CSharedMemory |
31 | 31 | // |
32 | 32 | CSharedMemory::CSharedMemory(LPCTSTR szSharedMemoryName, DWORD dwDataSize) |
33 | + : hSharedMem(), lpszSharedMemoryName(), dwDataByteSize() | |
33 | 34 | { |
34 | 35 | |
35 | 36 | size_t size = wcsnlen_s(szSharedMemoryName, MAX_LOADSTRING); |
@@ -5,119 +5,10 @@ | ||
5 | 5 | ||[[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)'''|| |
6 | 6 | |
7 | 7 | [[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]] | |
55 | 8 | |
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]] | |
84 | 10 | [[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]] | |
121 | 12 | |
122 | 13 | |
123 | 14 | == リリースファイル (Release Files) |
@@ -1,37 +1,137 @@ | ||
1 | 1 | |
2 | -# FlushMouse  | |
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 | - | |
14 | - | |
15 | - | |
16 | - | |
17 | - | |
18 | - | |
19 | -**ビルド方法** | |
2 | +# FlushMouse | |
3 | +||**タスクトレイに常駐して、マウスカーソルへ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 | + | |
48 | + | |
49 | +#### 設定ダイアログ画面 | |
50 | + * タスクトレイの中にあるFlushMouseのアイコンをクリックすることで表示します | |
51 | + | |
52 | + | |
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 | +#### ビルド方法** | |
20 | 119 | |
21 | 120 | * まず、Visual Studio 2022 の開発環境が必要になりますので、二つの方法を紹介します |
121 | + | |
22 | 122 | A. ご自分のPCに直接Visual Studioを入れる場合は、 |
23 | 123 | このリンク [https://visualstudio.microsoft.com/ja/downloads/](https://visualstudio.microsoft.com/ja/downloads/) から入手してください(Communityで十分だと思います) |
24 | 124 | |
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/) から入手してください | |
26 | 126 | |
27 | 127 | |
28 | -* 以下では、Bの方法を紹介します(私はVMwareで作業していますので、その方法を紹介しますが、他の仮想マシンでも同じような手順だと思います)。なお、ライセンス等については、よく読んでご判断ください | |
128 | +* 以下では、Bの方法を紹介します(私はVMwareで作業していますので、その手順を紹介しますが、他の仮想マシンでも同じような手順だと思います)。なお、ライセンス等については、よく読んでご判断ください | |
29 | 129 | |
30 | 130 | * BのWindows 11開発環境を取得する から、仮想マシンをダウンロードしてインストールしたのち、日本語化するために最低設定する項目です(他にも設定する項目はありますが割愛します) |
31 | 131 | |
32 | 132 | 1. Settings -> Time & language -> Language & regionで、日本語を追加します |
33 | 133 | 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で再起動します | |
35 | 135 | 4. Settings -> Time & language -> Date & Time -> Time zone -> UTC+09:00) Osaka, Sapporo, Tokyoを設定します |
36 | 136 | 5. Settings -> Time & language -> Language & region -> Windows display language -> 日本語 を選んで、 Sign out、Sign inします |
37 | 137 | 6. 設定 -> 時刻と言語 -> 言語と地域 -> 管理用言語の設定で表示されるダイアログで、システムロケールの変更を選んで 日本語(日本)を選択します |
@@ -39,16 +139,16 @@ | ||
39 | 139 | |
40 | 140 | * 次に、Visual Studioの設定を行います |
41 | 141 | |
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を押して、インストール、再起動します | |
45 | 145 | 4. [https://github.com/wixtoolset/wix3](https://github.com/wixtoolset/wix3) から、Wix311.exeをダウンロードしてインストールします |
46 | 146 | 5. Visual Studioを起動して 右下の「コードなし」で起動します |
47 | - 6. 拡張機能 -> 検索で WiXと入力し「 WiX v3 - Visual Studio 2022 Extension」を選択して、再起動するとインストールが始まります | |
147 | + 6. 拡張機能 -> 検索で WiXと入力し「 WiX v3 - Visual Studio 2022 Extension」を選択して、Visual Studioを終了するとインストールが始まります | |
48 | 148 | |
49 | 149 | * ビルド方法です |
50 | 150 | 1. Visual Studioを起動して、リポジトリのクローン -> リポジトリの場所に [https://github.com/JeffyTS-JP/FlushMouse.git](https://github.com/JeffyTS-JP/FlushMouse.git) を入力してクローンします |
51 | - 2. クローンが終わったら構成を MixedPlatform にしてビルドします | |
151 | + 2. クローンが終わったら、構成を **MixedPlatform** にしてビルドします | |
52 | 152 | 3. Releaseでビルドすると、デフォルトでは C:\Users\User\source\repos\FlushMouseにFlushMouse_x64.msiができるのでインストールしてください |
53 | 153 | |
54 | 154 |
@@ -4,16 +4,16 @@ | ||
4 | 4 | // |
5 | 5 | // No. Date Name Reason & Document |
6 | 6 | // -------+-----------+-----------+-------------------------------------------- - |
7 | -// #0000 2023/03/17 JeffyTS New edit. | |
7 | +// #0000 2023/03/17 JeffyTS New edit. | |
8 | 8 | // |
9 | 9 | |
10 | 10 | #define MAJOR_VERSION 1 |
11 | 11 | #define MINOR_VERSION 1 |
12 | -#define BUILD_VERSION 2 | |
13 | -#define REVISON_VERSION 9 | |
12 | +#define BUILD_VERSION 3 | |
13 | +#define REVISON_VERSION 6 | |
14 | 14 | |
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" | |
17 | 17 | |
18 | 18 | #define FILE_VERSION MAJOR_VERSION, MINOR_VERSION, BUILD_VERSION, REVISON_VERSION |
19 | 19 | #define PRODUCT_VERSION MAJOR_VERSION, MINOR_VERSION, BUILD_VERSION, REVISON_VERSION |
@@ -1,6 +1,6 @@ | ||
1 | 1 | <Include> |
2 | 2 | <!-- for wix Setup Project --> |
3 | 3 | <!-- Copyright (C) 2023 JeffyTS --> |
4 | - <?define Version = "1.1.2.9" ?> | |
4 | + <?define Version = "1.1.3.6" ?> | |
5 | 5 | </Include> |
6 | 6 |