Skip to content

Commit 2eaf5cb

Browse files
committed
[Win] support metro app 100%
1 parent 97cbdc2 commit 2eaf5cb

File tree

8 files changed

+136
-39
lines changed

8 files changed

+136
-39
lines changed

Sources/OpenKey/win32/OpenKey/OpenKey/AppDelegate.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ int vTempOffSpelling = 0;
3737
int vAllowConsonantZFWJ = 0;
3838
int vQuickStartConsonant = 0;
3939
int vQuickEndConsonant = 0;
40+
int vRememberCode = 1;
41+
int vTempOffOpenKey = 0;
4042

4143
int vUseGrayIcon = 0;
4244
int vShowOnStartUp = 0;
@@ -46,6 +48,8 @@ int vSupportMetroApp = 1;
4648
int vCreateDesktopShortcut = 0;
4749
int vRunAsAdmin = 0;
4850
int vCheckNewVersion = 0;
51+
//beta feature
52+
int vFixChromiumBrowser = 0; //new on version 2.0
4953

5054
bool AppDelegate::isDialogMsg(MSG & msg) const {
5155
return (mainDialog != NULL && IsDialogMessage(mainDialog->getHwnd(), &msg)) ||
@@ -188,6 +192,9 @@ void AppDelegate::onDefaultConfig() {
188192
APP_SET_DATA(vRunWithWindows, 1);
189193

190194
APP_SET_DATA(vSupportMetroApp, 1);
195+
APP_SET_DATA(vRememberCode, 1);
196+
APP_SET_DATA(vTempOffOpenKey, 0);
197+
APP_SET_DATA(vFixChromiumBrowser, 0);
191198

192199
if (mainDialog) {
193200
mainDialog->fillData();
@@ -203,7 +210,7 @@ void AppDelegate::onToggleVietnamese() {
203210

204211
if (vUseSmartSwitchKey) {
205212
string& exe = OpenKeyHelper::getLastAppExecuteName();
206-
setAppInputMethodStatus(exe, vLanguage);
213+
setAppInputMethodStatus(exe, vLanguage | (vCodeTable << 1));
207214
saveSmartSwitchKeyData();
208215
}
209216
}
@@ -271,6 +278,10 @@ void AppDelegate::onTableCode(const int & code) {
271278
if (mainDialog) {
272279
mainDialog->fillData();
273280
}
281+
if (vRememberCode) {
282+
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage | (vCodeTable << 1));
283+
saveSmartSwitchKeyData();
284+
}
274285
}
275286

276287
void AppDelegate::onControlPanel() {

Sources/OpenKey/win32/OpenKey/OpenKey/MainControlDialog.cpp

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ void MainControlDialog::initDialog() {
123123
checkRestoreIfWrongSpelling = GetDlgItem(hTabPage1, IDC_CHECK_RESTORE_IF_WRONG_SPELLING);
124124
createToolTip(checkRestoreIfWrongSpelling, IDS_STRING_RESTORE_IF_WRONG_SPELLING);
125125

126-
checkUseClipboard = GetDlgItem(hTabPage1, IDC_CHECK_USE_CLIPBOARD);
127-
createToolTip(checkUseClipboard, IDS_STRING_USE_CLIPBOARD);
128-
129126
checkAllowZWJF = GetDlgItem(hTabPage1, IDC_CHECK_ALLOW_ZJWF);
130127
createToolTip(checkAllowZWJF, IDS_STRING_ALLOW_ZWFJ);
131128

@@ -137,9 +134,12 @@ void MainControlDialog::initDialog() {
137134

138135
checkCapsFirstChar = GetDlgItem(hTabPage1, IDC_CHECK_CAPS_FIRST_CHAR);
139136
createToolTip(checkCapsFirstChar, IDS_STRING_CAPS_FIRST_CHAR);
140-
141-
checkSupportMetroApp = GetDlgItem(hTabPage1, IDC_CHECK_SUPPORT_METRO);
142-
createToolTip(checkSupportMetroApp, IDS_STRING_SUPPORT_METRO);
137+
138+
checkRememberTableCode = GetDlgItem(hTabPage1, IDC_CHECK_SMART_SWITCH_CODE);
139+
createToolTip(checkRememberTableCode, IDS_STRING_REMEMBER_TABLE_CODE);
140+
141+
checkTempOffOpenKey = GetDlgItem(hTabPage1, IDC_CHECK_TEMP_OFF_OPEN_KEY);
142+
createToolTip(checkTempOffOpenKey, IDS_STRING_TEMP_OFF_OPENKEY);
143143

144144
/*------------end tab 1----------------*/
145145

@@ -183,6 +183,15 @@ void MainControlDialog::initDialog() {
183183
checkCheckNewVersion = GetDlgItem(hTabPage3, IDC_CHECK_CHECK_UPDATE);
184184
createToolTip(checkCheckNewVersion, IDS_STRING_CHECK_UPDATE);
185185

186+
checkSupportMetroApp = GetDlgItem(hTabPage3, IDC_CHECK_SUPPORT_METRO_APP);
187+
createToolTip(checkSupportMetroApp, IDS_STRING_SUPPORT_METRO);
188+
189+
checkUseClipboard = GetDlgItem(hTabPage3, IDC_CHECK_USE_CLIPBOARD);
190+
createToolTip(checkUseClipboard, IDS_STRING_USE_CLIPBOARD);
191+
192+
checkFixChromium = GetDlgItem(hTabPage3, IDC_CHECK_FIX_CHROMIUM);
193+
createToolTip(checkFixChromium, IDS_STRING_FIX_CHROMIUM);
194+
186195
/*------------end tab 3----------------*/
187196

188197
SendDlgItemMessage(hDlg, IDBUTTON_OK, BM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadIcon(hIns, MAKEINTRESOURCEW(IDI_ICON_OK_BUTTON)));
@@ -314,12 +323,13 @@ void MainControlDialog::fillData() {
314323
SendMessage(checkRunWithWindows, BM_SETCHECK, vRunWithWindows ? 1 : 0, 0);
315324
SendMessage(checkSpelling, BM_SETCHECK, vCheckSpelling ? 1 : 0, 0);
316325
SendMessage(checkRestoreIfWrongSpelling, BM_SETCHECK, vRestoreIfWrongSpelling ? 1 : 0, 0);
317-
SendMessage(checkUseClipboard, BM_SETCHECK, vSendKeyStepByStep ? 0 : 1, 0);
318326
SendMessage(checkModernIcon, BM_SETCHECK, vUseGrayIcon ? 1 : 0, 0);
319327
SendMessage(checkAllowZWJF, BM_SETCHECK, vAllowConsonantZFWJ ? 1 : 0, 0);
320328
SendMessage(checkTempOffSpelling, BM_SETCHECK, vTempOffSpelling ? 1 : 0, 0);
321329
SendMessage(checkQuickStartConsonant, BM_SETCHECK, vQuickStartConsonant ? 1 : 0, 0);
322330
SendMessage(checkQuickEndConsonant, BM_SETCHECK, vQuickEndConsonant ? 1 : 0, 0);
331+
SendMessage(checkRememberTableCode, BM_SETCHECK, vRememberCode ? 1 : 0, 0);
332+
SendMessage(checkTempOffOpenKey, BM_SETCHECK, vTempOffOpenKey ? 1 : 0, 0);
323333

324334
SendMessage(checkSmartSwitchKey, BM_SETCHECK, vUseSmartSwitchKey ? 1 : 0, 0);
325335
SendMessage(checkCapsFirstChar, BM_SETCHECK, vUpperCaseFirstChar ? 1 : 0, 0);
@@ -332,10 +342,13 @@ void MainControlDialog::fillData() {
332342
SendMessage(checkCreateDesktopShortcut, BM_SETCHECK, vCreateDesktopShortcut ? 1 : 0, 0);
333343
SendMessage(checkRunAsAdmin, BM_SETCHECK, vRunAsAdmin ? 1 : 0, 0);
334344
SendMessage(checkCheckNewVersion, BM_SETCHECK, vCheckNewVersion ? 1 : 0, 0);
345+
SendMessage(checkUseClipboard, BM_SETCHECK, vSendKeyStepByStep ? 0 : 1, 0);
346+
SendMessage(checkFixChromium, BM_SETCHECK, vFixChromiumBrowser ? 1 : 0, 0);
335347

336348
EnableWindow(checkRestoreIfWrongSpelling, vCheckSpelling);
337349
EnableWindow(checkAllowZWJF, vCheckSpelling);
338350
EnableWindow(checkTempOffSpelling, vCheckSpelling);
351+
EnableWindow(checkFixChromium, vFixRecommendBrowser);
339352

340353
//tab info
341354
wchar_t buffer[256];
@@ -356,6 +369,10 @@ void MainControlDialog::onComboBoxSelected(const HWND & hCombobox, const int & c
356369
APP_SET_DATA(vInputType, (int)SendMessage(hCombobox, CB_GETCURSEL, 0, 0));
357370
} else if (hCombobox == comboBoxTableCode) {
358371
APP_SET_DATA(vCodeTable, (int)SendMessage(hCombobox, CB_GETCURSEL, 0, 0));
372+
if (vRememberCode) {
373+
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage | (vCodeTable << 1));
374+
saveSmartSwitchKeyData();
375+
}
359376
}
360377
SystemTrayHelper::updateData();
361378
}
@@ -390,11 +407,15 @@ void MainControlDialog::onCheckboxClicked(const HWND & hWnd) {
390407
} else if (hWnd == checkVietnamese) {
391408
val = (int)SendMessage(checkVietnamese, BM_GETCHECK, 0, 0);
392409
APP_SET_DATA(vLanguage, val ? 1 : 0);
410+
if (vUseSmartSwitchKey) {
411+
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage | (vCodeTable << 1));
412+
saveSmartSwitchKeyData();
413+
}
393414
} else if (hWnd == checkEnglish) {
394415
val = (int)SendMessage(checkVietnamese, BM_GETCHECK, 0, 0);
395416
APP_SET_DATA(vLanguage, val ? 1 : 0);
396417
if (vUseSmartSwitchKey) {
397-
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage);
418+
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage | (vCodeTable << 1));
398419
saveSmartSwitchKeyData();
399420
}
400421
} else if (hWnd == checkModernOrthorgraphy) {
@@ -403,6 +424,7 @@ void MainControlDialog::onCheckboxClicked(const HWND & hWnd) {
403424
} else if (hWnd == checkFixRecommendBrowser) {
404425
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
405426
APP_SET_DATA(vFixRecommendBrowser, val ? 1 : 0);
427+
EnableWindow(checkFixChromium, vFixRecommendBrowser);
406428
} else if (hWnd == checkShowOnStartup) {
407429
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
408430
APP_SET_DATA(vShowOnStartUp, val ? 1 : 0);
@@ -472,6 +494,15 @@ void MainControlDialog::onCheckboxClicked(const HWND & hWnd) {
472494
} else if (hWnd == checkCheckNewVersion) {
473495
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
474496
APP_SET_DATA(vCheckNewVersion, val ? 1 : 0);
497+
} else if (hWnd == checkRememberTableCode) {
498+
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
499+
APP_SET_DATA(vRememberCode, val ? 1 : 0);
500+
} else if (hWnd == checkTempOffOpenKey) {
501+
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
502+
APP_SET_DATA(vTempOffOpenKey, val ? 1 : 0);
503+
} else if (hWnd == checkFixChromium) {
504+
val = (int)SendMessage(hWnd, BM_GETCHECK, 0, 0);
505+
APP_SET_DATA(vFixChromiumBrowser, val ? 1 : 0);
475506
}
476507
SystemTrayHelper::updateData();
477508
}

Sources/OpenKey/win32/OpenKey/OpenKey/MainControlDialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class MainControlDialog : public BaseDialog {
2626
checkAllowZWJF, checkTempOffSpelling, checkQuickStartConsonant, checkQuickEndConsonant;
2727
HWND checkSmartSwitchKey, checkCapsFirstChar, checkQuickTelex, checkUseMacro, checkUseMacroInEnglish;
2828
HWND checkCreateDesktopShortcut, checkCheckNewVersion, checkRunAsAdmin, checkSupportMetroApp, checkMacroAutoCaps;
29+
HWND checkFixChromium, checkRememberTableCode, checkTempOffOpenKey;
2930
HWND hUpdateButton;
3031
private:
3132
void initDialog();

Sources/OpenKey/win32/OpenKey/OpenKey/OpenKey.cpp

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ redistribute your new version, it MUST be open source.
2626
#define DYNA_DATA(macro, pos) (macro ? pData->macroData[pos] : pData->charData[pos])
2727
#define EMPTY_HOTKEY 0xFE0000FE
2828

29+
static vector<string> _chromiumBrowser = {
30+
"chrome.exe", "brave.exe", "msedge.exe"
31+
};
32+
2933
extern int vSendKeyStepByStep;
3034
extern int vUseGrayIcon;
3135
extern int vShowOnStartUp;
@@ -97,6 +101,9 @@ void OpenKeyInit() {
97101
APP_GET_DATA(vRunAsAdmin, 0);
98102
APP_GET_DATA(vCreateDesktopShortcut, 0);
99103
APP_GET_DATA(vCheckNewVersion, 0);
104+
APP_GET_DATA(vRememberCode, 1);
105+
APP_GET_DATA(vTempOffOpenKey, 0);
106+
APP_GET_DATA(vFixChromiumBrowser, 0);
100107

101108
//init convert tool
102109
APP_GET_DATA(convertToolDontAlertWhenCompleted, 0);
@@ -253,21 +260,22 @@ static void SendKeyCode(Uint32 data) {
253260
}
254261
}
255262
}
256-
257-
if (vSupportMetroApp && OpenKeyHelper::getLastAppExecuteName().compare("ApplicationFrameHost.exe") == 0) //Metro App
258-
Sleep(5);
259263
}
260264

261265
static void SendBackspace() {
262266
SendInput(2, backspaceEvent, sizeof(INPUT));
263-
if (vSupportMetroApp && OpenKeyHelper::getLastAppExecuteName().compare("ApplicationFrameHost.exe") == 0) //Metro App
264-
Sleep(5);
267+
if (vSupportMetroApp && OpenKeyHelper::getLastAppExecuteName().compare("ApplicationFrameHost.exe") == 0) {//Metro App
268+
SendMessage(HWND_BROADCAST, WM_CHAR, VK_BACK, 0);
269+
}
265270
if (IS_DOUBLE_CODE(vCodeTable)) { //VNI or Unicode Compound
266271
if (_syncKey.back() > 1) {
267272
/*if (!(vCodeTable == 3 && containUnicodeCompoundApp(FRONT_APP))) {
268273
SendInput(2, backspaceEvent, sizeof(INPUT));
269274
}*/
270275
SendInput(2, backspaceEvent, sizeof(INPUT));
276+
if (vSupportMetroApp && OpenKeyHelper::getLastAppExecuteName().compare("ApplicationFrameHost.exe") == 0) {//Metro App
277+
SendMessage(HWND_BROADCAST, WM_CHAR, VK_BACK, 0);
278+
}
271279
}
272280
_syncKey.pop_back();
273281
}
@@ -282,9 +290,6 @@ static void SendEmptyCharacter() {
282290
prepareUnicodeEvent(keyEvent[0], _newChar, true);
283291
prepareUnicodeEvent(keyEvent[1], _newChar, false);
284292
SendInput(2, keyEvent, sizeof(INPUT));
285-
286-
if (vSupportMetroApp && OpenKeyHelper::getLastAppExecuteName().compare("ApplicationFrameHost.exe") == 0) //Metro App
287-
Sleep(5);
288293
}
289294

290295
static void SendNewCharString(const bool& dataFromMacro = false) {
@@ -397,7 +402,7 @@ void switchLanguage() {
397402
AppDelegate::getInstance()->onInputMethodChangedFromHotKey();
398403
startNewSession();
399404
if (vUseSmartSwitchKey) {
400-
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage);
405+
setAppInputMethodStatus(OpenKeyHelper::getFrontMostAppExecuteName(), vLanguage | (vCodeTable << 1));
401406
saveSmartSwitchKeyData();
402407
}
403408
}
@@ -518,6 +523,9 @@ LRESULT CALLBACK keyboardHookProcess(int nCode, WPARAM wParam, LPARAM lParam) {
518523
if (vTempOffSpelling && _lastFlag & MASK_CONTROL) {
519524
vTempOffSpellChecking();
520525
}
526+
if (vTempOffOpenKey && _lastFlag & MASK_ALT) {
527+
vTempOffEngine();
528+
}
521529
//check switch
522530
if (checkHotKey(vSwitchKeyStatus, GET_SWITCH_KEY(vSwitchKeyStatus) != 0xFE)) {
523531
switchLanguage();
@@ -575,10 +583,17 @@ LRESULT CALLBACK keyboardHookProcess(int nCode, WPARAM wParam, LPARAM lParam) {
575583
} else if (pData->code == vWillProcess || pData->code == vRestore || pData->code == vRestoreAndStartNewSession) { //handle result signal
576584
//fix autocomplete
577585
if (vFixRecommendBrowser && pData->extCode != 4) {
578-
SendEmptyCharacter();
579-
pData->backspaceCount++;
586+
if (vFixChromiumBrowser &&
587+
std::find(_chromiumBrowser.begin(), _chromiumBrowser.end(), OpenKeyHelper::getLastAppExecuteName()) != _chromiumBrowser.end()) {
588+
SendCombineKey(KEY_LEFT_SHIFT, KEY_LEFT, 0, KEYEVENTF_EXTENDEDKEY);
589+
if (pData->backspaceCount == 1)
590+
pData->backspaceCount--;
591+
} else {
592+
SendEmptyCharacter();
593+
pData->backspaceCount++;
594+
}
580595
}
581-
596+
582597
//send backspace
583598
if (pData->backspaceCount > 0 && pData->backspaceCount < MAX_BUFF) {
584599
for (_i = 0; _i < pData->backspaceCount; _i++) {
@@ -636,16 +651,24 @@ LRESULT CALLBACK mouseHookProcess(int nCode, WPARAM wParam, LPARAM lParam) {
636651

637652
VOID CALLBACK winEventProcCallback(HWINEVENTHOOK hWinEventHook, DWORD dwEvent, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime) {
638653
//smart switch key
639-
if (vUseSmartSwitchKey) {
654+
if (vUseSmartSwitchKey || vRememberCode) {
640655
string& exe = OpenKeyHelper::getFrontMostAppExecuteName();
641-
_languageTemp = getAppInputMethodStatus(exe, vLanguage);
642-
if (_languageTemp != vLanguage) {
656+
if (exe.compare("explorer.exe") == 0) //dont apply with windows explorer
657+
return;
658+
_languageTemp = getAppInputMethodStatus(exe, vLanguage | (vCodeTable << 1));
659+
if (vUseSmartSwitchKey && (_languageTemp & 0x01) != vLanguage) {
643660
if (_languageTemp != -1) {
644661
vLanguage = _languageTemp;
645662
AppDelegate::getInstance()->onInputMethodChangedFromHotKey();
646663
startNewSession();
664+
} else {
665+
saveSmartSwitchKeyData();
647666
}
648-
else {
667+
}
668+
if (vRememberCode && (_languageTemp >> 1) != vCodeTable) { //for remember table code feature
669+
if (_languageTemp != -1) {
670+
AppDelegate::getInstance()->onTableCode(_languageTemp >> 1);
671+
} else {
649672
saveSmartSwitchKeyData();
650673
}
651674
}

Sources/OpenKey/win32/OpenKey/OpenKey/OpenKey.rc

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,13 +199,14 @@ BEGIN
199199
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,50,125,10
200200
CONTROL "Tạm tắt chính tả bằng phím Ctrl",IDC_CHECK_TEMP_OFF_SPELLING,
201201
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,69,123,10
202-
CONTROL "Hỗ trợ ứng dụng Metro",IDC_CHECK_SUPPORT_METRO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,119,10
203-
CONTROL "Dùng Clipboard để gửi phím",IDC_CHECK_USE_CLIPBOARD,
204-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,69,119,10
205202
CONTROL "Loại trừ ứng dụng thông minh",IDC_CHECK_SMART_SWITCH_KEY,
206-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,88,111,10
203+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,69,111,10
207204
CONTROL "Viết Hoa chữ cái đầu câu",IDC_CHECK_CAPS_FIRST_CHAR,
208-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,88,95,10
205+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,95,10
206+
CONTROL "Tự ghi nhớ bảng mã theo ứng dụng",IDC_CHECK_SMART_SWITCH_CODE,
207+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,88,130,10
208+
CONTROL "Tạm tắt OpenKey bằng phím Alt",IDC_CHECK_TEMP_OFF_OPEN_KEY,
209+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,88,123,10
209210
END
210211

211212
IDD_DIALOG_TAB_MACRO DIALOGEX 0, 0, 299, 177
@@ -233,15 +234,21 @@ EXSTYLE WS_EX_TRANSPARENT
233234
FONT 8, "MS Shell Dlg", 400, 0, 0x1
234235
BEGIN
235236
CONTROL "Bật bảng này khi khởi động",IDC_CHECK_SHOW_ON_STARTUP,
236-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,31,122,10
237-
CONTROL "Biểu tượng hiện đại",IDC_CHECK_MODERN_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,103,10
237+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,122,10
238+
CONTROL "Biểu tượng hiện đại",IDC_CHECK_MODERN_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,69,103,10
238239
CONTROL "Khởi động cùng Windows",IDC_CHECK_RUN_WITH_WINDOWS,
239-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,70,119,10
240-
CONTROL "Chạy với quyền Admin",IDC_CHECK_RUN_AS_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,12,119,10
240+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,89,119,10
241+
CONTROL "Chạy với quyền Admin",IDC_CHECK_RUN_AS_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,31,119,10
241242
CONTROL "Kiểm tra bản mới lúc khởi động",IDC_CHECK_CHECK_UPDATE,
242-
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,31,119,10
243-
PUSHBUTTON "Kiểm tra bản mới...",IDC_BUTTON_CHECK_UPDATE,151,49,75,14
243+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,70,119,10
244+
PUSHBUTTON "Kiểm tra bản mới...",IDC_BUTTON_CHECK_UPDATE,151,88,75,14
244245
CONTROL "Tạo biểu tượng trên Desktop",IDC_CHECK_CHECK_CREATE_SHORTCUT,
246+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,31,119,10
247+
CONTROL "Sửa lỗi trên Chromium (beta)",IDC_CHECK_FIX_CHROMIUM,
248+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,12,119,10
249+
CONTROL "Dùng Clipboard để gửi phím",IDC_CHECK_USE_CLIPBOARD,
250+
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,50,119,10
251+
CONTROL "Hỗ trợ ứng dụng Metro",IDC_CHECK_SUPPORT_METRO_APP,
245252
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,12,119,10
246253
END
247254

@@ -473,6 +480,10 @@ BEGIN
473480
"Tạo biểu tượng OpenKey ở Desktop để có thể tìm thấy nhanh khi cần thiết"
474481
IDS_STRING_RUN_AS_ADMIN "Khởi động lại OpenKey với quyền Admin để có thể gõ được tiếng Việt trong game, bạn sẽ được yêu cầu khởi động lại chương trình OpenKey"
475482
IDS_STRING_CHECK_UPDATE "Kiểm tra bản mới mỗi lần khởi động OpenKey"
483+
IDS_STRING_REMEMBER_TABLE_CODE
484+
"OpenKey sẽ tự động ghi nhớ bạn đã dùng bảng mã nào cho ứng dụng nào, để lần sau khi chuyển qua ứng dụng đó, OpenKey sẽ tự động chuyển sang bảng mã đó cho bạn. Rất thích hợp cho các ứng dụng kỹ thuật như Photoshop, CAD,..."
485+
IDS_STRING_TEMP_OFF_OPENKEY
486+
"Bằng cách bấm phím Alt, OpenKey sẽ tạm ngừng hoạt động cho tới khi bạn gõ 1 từ mới."
476487
END
477488

478489
STRINGTABLE
@@ -502,6 +513,11 @@ BEGIN
502513
"Thay thế nhanh các phụ âm cuối như g, h, k bằng ng, nh, ch.
Ví dụ: trươg→trương, nhah→nhanh, bák→bách"
503514
END
504515

516+
STRINGTABLE
517+
BEGIN
518+
IDS_STRING_FIX_CHROMIUM "Sửa lỗi bị đúp từ trên các trình duyệt Chromium bao gồm Google Chrome, Brave, Microsoft Edge. Tính năng này đang được thử nghiệm. Cần bật tính năng ""Sửa lỗi gợi ý"" để hỗ trợ tính năng này."
519+
END
520+
505521
#endif // English (United States) resources
506522
/////////////////////////////////////////////////////////////////////////////
507523

Sources/OpenKey/win32/OpenKey/OpenKey/OpenKeyHelper.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,16 @@ string& OpenKeyHelper::getFrontMostAppExecuteName() {
136136
return _unknownProgram;
137137
}
138138
_exeName = _tcsrchr(_exePath, '\\') + 1;
139-
139+
if (wcscmp(_exeName, _T("OpenKey64.exe")) == 0 ||
140+
wcscmp(_exeName, _T("OpenKey32.exe")) == 0 ||
141+
wcscmp(_exeName, _T("explorer.exe")) == 0) {
142+
return _exeNameUtf8;
143+
}
140144
int size_needed = WideCharToMultiByte(CP_UTF8, 0, _exeName, (int)lstrlen(_exeName), NULL, 0, NULL, NULL);
141145
std::string strTo(size_needed, 0);
142146
WideCharToMultiByte(CP_UTF8, 0, _exeName, (int)lstrlen(_exeName), &strTo[0], size_needed, NULL, NULL);
143147
_exeNameUtf8 = strTo;
144-
148+
//LOG(L"%s\n", utf8ToWideString(_exeNameUtf8).c_str());
145149
return _exeNameUtf8;
146150
}
147151

0 commit comments

Comments
 (0)