📄 wacmenu.cpp
字号:
m_OldMousePosButton = -1;
}
return TRUE;
}
void ProcKeyDown(int wParam)
{
switch(wParam){
case 27:
g_bExit = TRUE;
break;
case 13: // Enter
case 32: // Space
{
if(g_Window.m_bPushed)
break;
// g_Window.SetDefaultButton(g_Window.);
g_Window.SetCheckButton(g_Window.m_NewDefaultButton);
g_Window.RedrawButton(g_Window.m_NewDefaultButton);
}
break;
case 9: // Tab
{
int NewDefButton;
NewDefButton = (g_Window.m_NewDefaultButton+1) % BUTTON_COUNT;
g_Window.SetDefaultButton(NewDefButton);
g_Window.RedrawButton(NewDefButton);
g_Window.DrawRemark(NewDefButton);
break;
}
case 37: // Left
{
if(g_Window.m_NewDefaultButton < BUTTON_COUNT / 2)
break;
int NewDefButton;
NewDefButton = g_Window.m_NewDefaultButton - BUTTON_COUNT /2;
g_Window.SetDefaultButton(NewDefButton);
g_Window.RedrawButton(NewDefButton);
g_Window.DrawRemark(NewDefButton);
break;
}
case 38: // Up
{
int NewDefButton;
NewDefButton = g_Window.m_NewDefaultButton - 1;
if(g_Window.m_NewDefaultButton == BUTTON_COUNT / 2)
NewDefButton = BUTTON_COUNT - 1;
if(g_Window.m_NewDefaultButton == 0)
NewDefButton = BUTTON_COUNT / 2 - 1;
g_Window.SetDefaultButton(NewDefButton);
g_Window.RedrawButton(NewDefButton);
g_Window.DrawRemark(NewDefButton);
break;
}
case 39: // Right
{
if(g_Window.m_NewDefaultButton >= BUTTON_COUNT / 2)
break;
int NewDefButton;
NewDefButton = g_Window.m_NewDefaultButton + BUTTON_COUNT /2;
g_Window.SetDefaultButton(NewDefButton);
g_Window.RedrawButton(NewDefButton);
g_Window.DrawRemark(NewDefButton);
break;
}
case 40: // Down
{
int NewDefButton;
NewDefButton = g_Window.m_NewDefaultButton + 1;
if(g_Window.m_NewDefaultButton == BUTTON_COUNT - 1)
NewDefButton = BUTTON_COUNT / 2;
if(g_Window.m_NewDefaultButton == BUTTON_COUNT / 2 - 1)
NewDefButton = 0;
g_Window.SetDefaultButton(NewDefButton);
g_Window.RedrawButton(NewDefButton);
g_Window.DrawRemark(NewDefButton);
break;
}
case 87: // w
{
g_Window.SetDefaultButton(0);
g_Window.RedrawButton(0);
ProcCheckButton(0);
break;
}
case 82: // r
{
g_Window.SetDefaultButton(1);
g_Window.RedrawButton(1);
ProcCheckButton(1);
break;
}
case 84: // t
{
g_Window.SetDefaultButton(2);
g_Window.RedrawButton(2);
ProcCheckButton(2);
break;
}
case 77: // m
{
g_Window.SetDefaultButton(3);
g_Window.RedrawButton(3);
ProcCheckButton(3);
break;
}
case 67: // c
{
g_Window.SetDefaultButton(4);
g_Window.RedrawButton(4);
ProcCheckButton(4);
break;
}
case 71: // g
{
g_Window.SetDefaultButton(5);
g_Window.RedrawButton(5);
ProcCheckButton(5);
break;
}
case 83: // s
{
g_Window.SetDefaultButton(6);
g_Window.RedrawButton(6);
ProcCheckButton(6);
break;
}
case 69: // e
{
g_Window.SetDefaultButton(7);
g_Window.RedrawButton(7);
ProcCheckButton(7);
break;
}
case 66: // b
{
g_Window.SetDefaultButton(8);
g_Window.RedrawButton(8);
ProcCheckButton(8);
break;
}
case 80: // p
{
g_Window.SetDefaultButton(9);
g_Window.RedrawButton(9);
ProcCheckButton(9);
break;
}
case 78: // n
{
g_Window.SetDefaultButton(10);
g_Window.RedrawButton(10);
ProcCheckButton(10);
break;
}
case 85: // u
{
g_Window.SetDefaultButton(11);
g_Window.RedrawButton(11);
ProcCheckButton(11);
break;
}
case 73: // i
{
g_Window.SetDefaultButton(12);
g_Window.RedrawButton(12);
ProcCheckButton(12);
break;
}
case 81: // q
{
g_Window.SetDefaultButton(13);
g_Window.RedrawButton(13);
ProcCheckButton(13);
break;
}
}
}
BOOL ProcCheckButton(int SelectID)
{
switch (SelectID) {
case 13:
g_bExit = TRUE;
break;
case 12:
return(StartApp("sysinfo.exe"));
break;
case 11:
return(StartApp("userman.exe"));
break;
case 0:
return(StartApp("WacExplorer.exe"));
break;
case 6:
return(StartApp("svcman.exe"));
break;
case 1:
return(StartApp("regview.exe"));
break;
case 7:
return(StartApp("eventview.exe"));
break;
case 2:
return(StartApp("edit.exe"));
break;
case 8:
return(StartApp("binedit.exe"));
break;
case 3:
return(StartApp("inbox.exe"));
break;
case 9:
return(StartApp("procview.exe"));
break;
case 4:
return(StartApp("phone.exe"));
break;
case 10:
return(StartApp("sesman.exe"));
break;
case 5:
return(StartApp("config.exe"));
break;
}
return FALSE;
}
LRESULT CALLBACK EditMessageProc(
HWND hwnd, // 窗口标识
UINT uMsg, // 消息类型编号
WPARAM wParam, // 消息的第一个参数
LPARAM lParam // 消息的第二个参数
)
{
switch (uMsg)
{
case WM_COMMAND:
break;
case WM_INITMENUPOPUP:
break;
case WM_SYSKEYUP:
break;
case WM_SYSKEYDOWN:
break;
case WM_CHAR:
uMsg=uMsg;
break;
case WM_KEYDOWN:
ProcKeyDown(wParam);
break;
case WM_KEYUP:
if(wParam==32 || wParam==13){
if(!g_Window.m_bPushed)
break;
g_Window.SetCheckButton(-1);
g_Window.RedrawButton(g_Window.m_NewDefaultButton);
ProcCheckButton(g_Window.m_NewDefaultButton);
}
break;
case WM_LBUTTONDOWN:
{
int ret = g_Window.GetButtonID(LOWORD(lParam), HIWORD(lParam));
if(ret == -1)
break;
g_Window.SetDefaultButton(ret);
g_Window.SetCheckButton(ret);
// g_Window.m_bPushed = TRUE;
g_Window.RedrawButton(ret);
break;
}
case WM_LBUTTONUP:
{
int ret = g_Window.GetButtonID(LOWORD(lParam), HIWORD(lParam));
if(ret == g_Window.m_CheckButton){
ProcCheckButton(ret);
}
g_Window.SetCheckButton(-1);
g_Window.RedrawButton(g_Window.m_NewDefaultButton);
break;
}
case WM_MOUSEMOVE:
{
static ButtonID = 0;
int buttonid = g_Window.GetButtonID(LOWORD(lParam), HIWORD(lParam));
if(buttonid == ButtonID){
}else{
if (g_TimerId != 0)
KillTimer(NULL, g_TimerId);
g_TimerId = SetTimer(NULL, 1, 10000, NULL);
g_TimerId = 0;
ButtonID = buttonid;
ProcTimer(LOWORD(lParam), HIWORD(lParam), wParam & MK_LBUTTON);
}
break;
}
case WM_TIMER:
break;
default:
break;
}
return 0;
}
int main(int argc, char* argv[])
{
// 初始化数据
ConInit();
ConSetCursorInfo(15,FALSE);
::GetModuleFileName(NULL, g_ExePath, MAX_PATH);
int len = strlen(g_ExePath);
for (int i = len; i > 2; i --)
if (g_ExePath[i] == '\\') {
g_ExePath[i] = 0;
break;
}
// 首先清屏
InitButtonData();
InitScreen();
// 进入消息循环
ConSetProc(EditMessageProc); // 设定主消息处理函数
while (1)
{
MSG msg;
::GetMessage(&msg, NULL, 0, 0);
ConDispatchMessage(&msg); // 处理这个消息
if (g_bExit)
break;
}
// 清屏
ConClearScreen(0,0,g_Buffer.dwSize.X,g_Buffer.dwSize.Y,0);
ConSetCursorInfo(15,TRUE);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -