📄 spyproc.c
字号:
break;
}
break;
#ifdef __NT__
case WM_COPYDATA:
HandleMessage( (LPMSG) ( (COPYDATASTRUCT *)lparam )->lpData );
break;
#endif
case WM_MENUSELECT:
hinthwnd = GetHintHwnd( StatusHdl );
HintMenuSelect( StatusHdl, hwnd, wparam, lparam );
break;
case WM_COMMAND:
cmdid = LOWORD( wparam );
switch( cmdid ) {
case SPY_SHOW_HELP:
SpyMainWndInfo.show_hints = !SpyMainWndInfo.show_hints;
mh = GetMenu( hwnd );
hinthwnd = GetHintHwnd( StatusHdl );
if( SpyMainWndInfo.show_hints ) {
CheckMenuItem( mh, SPY_SHOW_HELP, MF_CHECKED | MF_BYCOMMAND );
ShowWindow( hinthwnd, SW_SHOW );
} else{
CheckMenuItem( mh, SPY_SHOW_HELP,
MF_UNCHECKED | MF_BYCOMMAND );
ShowWindow( hinthwnd, SW_HIDE );
}
GetClientRect( hwnd, &area );
ResizeSpyBox( area.right - area.left, area.bottom - area.top );
showHintBar( hwnd );
break;
case SPY_TOP:
SpyMainWndInfo.on_top = !SpyMainWndInfo.on_top;
mh = GetMenu( hwnd );
if( SpyMainWndInfo.on_top ) {
CheckMenuItem( mh, SPY_TOP, MF_CHECKED | MF_BYCOMMAND );
SetWindowPos( hwnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE );
} else {
CheckMenuItem( mh, SPY_TOP, MF_UNCHECKED | MF_BYCOMMAND );
SetWindowPos( hwnd, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE );
}
break;
case SPY_MARK:
pausestate = SpyMessagesPaused;
SpyMessagesPaused = FALSE; /* make sure marks are
* always added */
ProcessMark( hwnd, Instance, SpyOut );
SpyMessagesPaused = pausestate;
break;
case SPY_SET_FONT:
if( ChooseMonoFont( hwnd ) ) {
statusHite = SizeHintBar( StatusHdl );
ResetSpyListBox();
showHintBar( hwnd );
}
break;
case SPY_SAVE_AS:
SaveListBox( SLB_SAVE_AS, SaveExtra, "", SpyName, hwnd, SpyListBox );
break;
case SPY_SAVE:
SaveListBox( SLB_SAVE_TMP, SaveExtra, ".\\wspy.txt", SpyName, hwnd, SpyListBox );
break;
case SPY_LOG:
if( LogToggle() ) {
CheckMenuItem( SpyMenu, SPY_LOG, MF_BYCOMMAND | MF_CHECKED );
} else {
CheckMenuItem( SpyMenu, SPY_LOG, MF_BYCOMMAND | MF_UNCHECKED );
CheckMenuItem( SpyMenu, SPY_PAUSE_LOG, MF_BYCOMMAND | MF_UNCHECKED );
}
break;
case SPY_CONFIG_LOG:
LogConfigure();
break;
case SPY_EXIT:
ClearFilter();
DestroyWindow( hwnd );
break;
case SPY_LIST_BOX:
switch( GET_WM_COMMAND_CMD( wparam, lparam ) ) {
case LBN_ERRSPACE:
ClearSpyBox();
break;
case LBN_DBLCLK:
DoMessageSelDialog( hwnd );
break;
}
break;
case SPY_SHOW_SELECTED_WINDOWS:
spyallstate = spyAll;
DoShowSelectedDialog( hwnd, &spyallstate );
if( spyallstate ) {
doSpyAll( hwnd, spyallstate );
if( spyAll ) {
SetSpyState( ON );
}
break;
}
if( WindowCount == 0 ) {
SetWindowText( hwnd, SpyName );
disableSpy();
break;
}
if( WindowCount == 1 ) {
setSingleWindow( hwnd, WindowList[0] );
} else {
setMultipleWindows( hwnd );
}
if( SpyState == NEITHER ) {
enableSpy();
}
break;
case SPY_HELP_CONTENTS:
WWinHelp( hwnd, "spy.hlp", HELP_CONTENTS, 0 );
break;
case SPY_HELP_SRCH:
WWinHelp( hwnd, "spy.hlp", HELP_PARTIALKEY, (DWORD)"" );
break;
case SPY_HELP_ON_HELP:
WWinHelp( hwnd, "winhelp.hlp", HELP_HELPONHELP, 0 );
break;
case SPY_ABOUT:
ai.owner = hwnd;
ai.inst = Instance;
#ifdef __NT__
ai.name = AllocRCString( STR_ABOUT_NAME_NT );
#else
ai.name = AllocRCString( STR_ABOUT_NAME_WIN );
#endif
ai.version = (LPSTR)banner1p2( _SPY_VERSION_ );
ai.first_cr_year = (LPSTR)AllocRCString( STR_COPYRIGHT_YEAR );
ai.title = (LPSTR)AllocRCString( STR_ABOUT_TITLE );
DoAbout( &ai );
FreeRCString( ai.name );
FreeRCString( ai.first_cr_year );
FreeRCString( ai.title );
break;
case SPY_AUTO_SCROLL:
if( SpyMessagesAutoScroll ) {
SpyMessagesAutoScroll = FALSE;
CheckMenuItem( SpyMenu, SPY_AUTO_SCROLL, MF_UNCHECKED );
} else {
SpyMessagesAutoScroll = TRUE;
CheckMenuItem( SpyMenu, SPY_AUTO_SCROLL, MF_CHECKED );
}
break;
case SPY_PAUSE_LOG:
if( SpyLogPauseToggle() ) {
CheckMenuItem( SpyMenu, SPY_PAUSE_LOG,
MF_BYCOMMAND | MF_CHECKED );
} else {
CheckMenuItem( SpyMenu, SPY_PAUSE_LOG,
MF_BYCOMMAND | MF_UNCHECKED );
}
break;
case SPY_PAUSE_MESSAGES:
SpyMessagePauseToggle();
break;
case SPY_CLEAR_MESSAGES:
ClearSpyBox();
ClearMessageCount();
break;
case SPY_MESSAGES_ASCFG:
if( AutoSaveConfig ) {
check = MF_UNCHECKED;
AutoSaveConfig = FALSE;
} else {
AutoSaveConfig = TRUE;
check = MF_CHECKED;
}
CheckMenuItem( SpyMenu, SPY_MESSAGES_ASCFG, check );
break;
case SPY_MESSAGES_SAVE:
DoSaveSpyConfig();
break;
case SPY_MESSAGES_LOAD:
DoLoadSpyConfig();
break;
case SPY_MESSAGES_WATCH:
case SPY_MESSAGES_STOP:
DoMessageDialog( hwnd, cmdid );
break;
case SPY_OFFON:
if( SpyState != NEITHER ) {
SetSpyState( !SpyState );
}
break;
case SPY_STOP:
disableSpy();
ClearSelectedWindows();
SetWindowText( hwnd, SpyName );
break;
case SPY_ANOTHER_WINDOW:
if( SpyState == NEITHER || spyAll ) {
SendMessage( hwnd, WM_COMMAND,
GET_WM_COMMAND_MPS( SPY_WINDOW, 0, 0 ) );
} else {
SendMessage( hwnd, WM_COMMAND,
GET_WM_COMMAND_MPS( SPY_ADD_WINDOW, 0, 0 ) );
}
break;
case SPY_PEEK_WINDOW:
case SPY_ADD_WINDOW:
case SPY_WINDOW:
setUpForPick( hwnd, cmdid );
break;
case SPY_ALL_WINDOWS:
doSpyAll( hwnd, !spyAll );
if( spyAll ) {
SetSpyState( ON );
}
break;
}
break;
case WM_CLOSE:
PostMessage( hwnd, WM_COMMAND, GET_WM_COMMAND_MPS( SPY_EXIT, 0, 0 ) );
break;
case WM_ENDSESSION:
if( wparam ) {
SpyFini();
}
break;
case WM_DESTROY:
HintWndDestroy( StatusHdl );
HintFini();
StatusWndFini();
DestroyMonoFonts();
DestroySpyTool();
WWinHelp( hwnd, "spy.hlp", HELP_QUIT, 0 );
PostQuitMessage( 0 );
break;
case WM_MOVE:
GetWindowRect( hwnd, &area );
if( !SpyMainWndInfo.minimized ) {
SpyMainWndInfo.last_xpos = SpyMainWndInfo.xpos;
SpyMainWndInfo.last_ypos = SpyMainWndInfo.ypos;
SpyMainWndInfo.xpos = area.left;
SpyMainWndInfo.ypos = area.top;
}
break;
case WM_SIZE:
if( wparam != SIZE_MAXIMIZED && wparam != SIZE_MINIMIZED ) {
GetWindowRect( hwnd, &area );
SpyMainWndInfo.xsize = area.right - area.left;
SpyMainWndInfo.ysize = area.bottom - area.top;
} else {
SpyMainWndInfo.xpos = SpyMainWndInfo.last_xpos;
SpyMainWndInfo.ypos = SpyMainWndInfo.last_ypos;
}
SpyMainWndInfo.minimized = ( wparam == SIZE_MINIMIZED );
GetClientRect( hwnd, &area );
area.top = area.bottom - statusHite;
hinthwnd = GetHintHwnd( StatusHdl );
MoveWindow( hinthwnd, area.left, area.top,
area.right - area.left, statusHite, TRUE );
if( SpyMainWndInfo.show_hints ) {
ResizeSpyBox( LOWORD( lparam ), HIWORD( lparam ) );
} else {
ResizeSpyBox( LOWORD( lparam ), HIWORD( lparam ) );
}
ResizeSpyTool( LOWORD( lparam ), HIWORD( lparam ) );
showHintBar( hwnd );
return( DefWindowProc( hwnd, msg, wparam, lparam ) );
break;
#if defined (__NT__)
case WM_ERASEBKGND: {
static RECT r;
GetClientRect( hwnd, &r );
FillRect( (HDC)wparam, &r, (HBRUSH)(COLOR_BTNFACE+1) );
return 1;
}
#endif
default:
return( DefWindowProc( hwnd, msg, wparam, lparam ) );
}
return( 0 );
} /* SpyWindowProc */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -