Как сделать так, чтобы комбинация WinKey+[номер] запускала [number]
-й элемент в панели быстрого запуска Windows XP? Другими словами, я хочу имитировать поведение Windows 7.
2 ответа
Я просто написал программу, чтобы сделать это сам.
Base64-кодированная версия моего исполняемого файла:
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
Исходный код:
//Flags: /O1 /link /NoDefaultLib /entry:WinMainCRTStartup /Subsystem:Windows
//No need for a C runtime library...
#define _WIN32_WINNT 0x502
#include <tchar.h>
#include <windows.h>
#include <commctrl.h>
static HHOOK hHook = NULL;
LRESULT CALLBACK KeyboardHook(IN int nCode,
IN WPARAM wParam, IN LPARAM lParam)
{
BOOL suppress = FALSE;
LPKBDLLHOOKSTRUCT pKBDHS = (LPKBDLLHOOKSTRUCT)lParam;
int nKey = pKBDHS->vkCode - 0x30;
if (nCode >= 0 && wParam == WM_KEYDOWN && 0 <= nKey && nKey <= 9)
{
if (nKey == 0)
{
/*Quit*/
suppress = TRUE;
PostQuitMessage(0);
}
else if (GetKeyState(VK_LWIN) < 0 || GetKeyState(VK_RWIN) < 0)
{
HWND hWnd = GetDesktopWindow();
if (hWnd != NULL)
{ hWnd = FindWindowEx(hWnd, NULL, _T("Shell_TrayWnd"), NULL); }
if (hWnd != NULL)
{ hWnd = FindWindowEx(hWnd, NULL, REBARCLASSNAME, NULL); }
if (hWnd != NULL)
{
hWnd = FindWindowEx(hWnd, NULL,
TOOLBARCLASSNAME, _T("Quick Launch"));
}
if (hWnd != NULL)
{
suppress = TRUE;
DWORD btnSize = SendMessage(hWnd, TB_GETBUTTONSIZE, 0, 0);
LONG coord = MAKELONG((nKey - 1) * LOWORD(btnSize), 0);
PostMessage(hWnd, WM_LBUTTONDOWN, 0, coord);
PostMessage(hWnd, WM_LBUTTONUP, 0, coord);
}
}
}
if (suppress) { return 1; }
else if (hHook == NULL) { return 0; }
else { return CallNextHookEx(hHook, nCode, wParam, lParam); }
}
int WinMainCRTStartup()
{
HINSTANCE hInstance = GetModuleHandle(NULL);
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, &KeyboardHook, hInstance, 0);
if (hHook != NULL && hHook != INVALID_HANDLE_VALUE)
{
MSG msg;
BOOL success;
while (success = GetMessage(&msg, NULL, 0, 0))
{
if (success == -1) { break; }
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}
Конечно, используйте HotKeyBind
http://www.technixupdate.com/assign-window-hotkeys-to-quick-launch-items-in-win-xp-with-hotkeybind/
Сначала загрузите и установите HotKeyBind.
Вы увидите серый значок на панели задач, если он запущен
Двойной щелчок по этому значку откроется новое окно
Нажмите кнопку «Добавить» и выберите опцию «Запустить файл» >> «Выполнить программу» и «ОК».
Перейдите к целевой папке элементов быстрого запуска, путь к которой будет:\Documents and Settings\\ Данные приложения \ Microsoft \ Internet Explorer \ Quick Launch
Например: C:\Documents and Settings\ zapper \ Данные приложения \ Microsoft \ Internet Explorer \ Быстрый запуск
Примечание. Прежде чем перейти по этому пути, убедитесь, что для параметра Показать скрытые файлы и папки задано значение, отображаемое в параметрах папки. В противном случае скопируйте путь выше, вставьте его в адресную строку и перетащите элементы быстрого запуска на целевое поле.
После выбора ярлыка для программы типа Gtalk в пунктах быстрого запуска нажмите Ok
Откроется новое окно с названием в качестве ключа редактирования, установите флажок WIN и нажмите любую цифровую клавишу.
Так как Google Talk - это первый элемент в моем быстром запуске после кнопки «Пуск», поэтому я установил для него ярлык Win +1
- Вот и все