2019-01-05 20:21:43 +08:00
// 2015Remote.cpp : <20> <> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
//
# include "stdafx.h"
# include "2015Remote.h"
# include "2015RemoteDlg.h"
# ifdef _DEBUG
# define new DEBUG_NEW
# endif
2019-01-10 19:35:03 +08:00
// dump<6D> <70> <EFBFBD> <EFBFBD>
# include <io.h>
# include <direct.h>
# include <DbgHelp.h>
# pragma comment(lib, "Dbghelp.lib")
/**
* @ brief <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> δ ֪ BUG <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֹ ʱ <EFBFBD> <EFBFBD> <EFBFBD> ô ˺ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> dump <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> dumpĿ ¼ .
*/
long WINAPI whenbuged ( _EXCEPTION_POINTERS * excp )
{
// <20> <> ȡdump<6D> ļ<EFBFBD> <C4BC> У <EFBFBD> <D0A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڣ<EFBFBD> <DAA3> <EFBFBD> ֮
char dump [ _MAX_PATH ] , * p = dump ;
GetModuleFileNameA ( NULL , dump , _MAX_PATH ) ;
while ( * p ) + + p ;
while ( ' \\ ' ! = * p ) - - p ;
strcpy ( p + 1 , " dump " ) ;
if ( _access ( dump , 0 ) = = - 1 )
_mkdir ( dump ) ;
char curTime [ 64 ] ; // <20> <> ǰdump<6D> ļ<EFBFBD>
time_t TIME ( time ( 0 ) ) ;
2019-01-13 13:13:59 +08:00
strftime ( curTime , 64 , " \\ YAMA_%Y-%m-%d %H%M%S.dmp " , localtime ( & TIME ) ) ;
2019-01-10 19:35:03 +08:00
strcat ( dump , curTime ) ;
HANDLE hFile = : : CreateFileA ( dump , GENERIC_WRITE , 0 , NULL , CREATE_ALWAYS ,
FILE_ATTRIBUTE_NORMAL , NULL ) ;
if ( INVALID_HANDLE_VALUE ! = hFile )
{
MINIDUMP_EXCEPTION_INFORMATION einfo = { : : GetCurrentThreadId ( ) , excp , FALSE } ;
: : MiniDumpWriteDump ( : : GetCurrentProcess ( ) , : : GetCurrentProcessId ( ) ,
hFile , MiniDumpWithFullMemory , & einfo , NULL , NULL ) ;
: : CloseHandle ( hFile ) ;
}
return EXCEPTION_EXECUTE_HANDLER ;
}
2019-01-05 20:21:43 +08:00
// CMy2015RemoteApp
BEGIN_MESSAGE_MAP ( CMy2015RemoteApp , CWinApp )
ON_COMMAND ( ID_HELP , & CWinApp : : OnHelp )
END_MESSAGE_MAP ( )
// CMy2015RemoteApp <20> <> <EFBFBD> <EFBFBD>
CMy2015RemoteApp : : CMy2015RemoteApp ( )
{
// ֧<> <D6A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART ;
// TODO: <20> ڴ˴ <DAB4> <CBB4> <EFBFBD> <EFBFBD> ӹ<EFBFBD> <D3B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 룬
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> ij<EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> InitInstance <20> <>
2019-01-13 00:04:50 +08:00
m_Mutex = NULL ;
2025-04-07 18:18:36 +08:00
m_iocpServer = new IOCPServer ( ) ;
2025-06-08 15:38:41 +08:00
srand ( static_cast < unsigned int > ( time ( 0 ) ) ) ;
2019-01-05 20:21:43 +08:00
}
// Ψһ <CEA8> <D2BB> һ <EFBFBD> <D2BB> CMy2015RemoteApp <20> <> <EFBFBD> <EFBFBD>
CMy2015RemoteApp theApp ;
// CMy2015RemoteApp <20> <> ʼ <EFBFBD> <CABC>
BOOL CMy2015RemoteApp : : InitInstance ( )
{
2019-01-13 00:04:50 +08:00
m_Mutex = CreateMutex ( NULL , FALSE , " YAMA.EXE " ) ;
if ( ERROR_ALREADY_EXISTS = = GetLastError ( ) )
{
CloseHandle ( m_Mutex ) ;
m_Mutex = NULL ;
return FALSE ;
}
2019-01-10 19:35:03 +08:00
SetUnhandledExceptionFilter ( & whenbuged ) ;
2019-01-05 20:21:43 +08:00
// <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Windows XP <20> ϵ<EFBFBD> Ӧ<EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> 嵥ָ<E5B5A5> <D6B8> Ҫ
// ʹ <> <CAB9> ComCtl32.dll <20> 汾 6 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ߰汾<DFB0> <E6B1BE> <EFBFBD> <EFBFBD> <EFBFBD> ÿ<EFBFBD> <C3BF> ӻ<EFBFBD> <D3BB> <EFBFBD> ʽ <EFBFBD> <CABD>
//<2F> <> <EFBFBD> <EFBFBD> Ҫ InitCommonControlsEx()<29> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F2A3ACBD> <EFBFBD> <DEB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڡ<EFBFBD>
INITCOMMONCONTROLSEX InitCtrls ;
InitCtrls . dwSize = sizeof ( InitCtrls ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> Ӧ<EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> õ<EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ؼ<EFBFBD> <D8BC> ࡣ
InitCtrls . dwICC = ICC_WIN95_CLASSES ;
InitCommonControlsEx ( & InitCtrls ) ;
CWinApp : : InitInstance ( ) ;
AfxEnableControlContainer ( ) ;
// <20> <> <EFBFBD> <EFBFBD> shell <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է<EFBFBD> <D4B7> Ի<EFBFBD> <D4BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> κ<EFBFBD> shell <20> <> <EFBFBD> <EFBFBD> ͼ<EFBFBD> ؼ<EFBFBD> <D8BC> <EFBFBD> shell <20> б <EFBFBD> <D0B1> <EFBFBD> ͼ<EFBFBD> ؼ<EFBFBD> <D8BC> <EFBFBD>
CShellManager * pShellManager = new CShellManager ;
// <20> <> <EFBFBD> <D7BC> ʼ <EFBFBD> <CABC>
// <20> <> <EFBFBD> <EFBFBD> δʹ <CEB4> <CAB9> <EFBFBD> <EFBFBD> Щ<EFBFBD> <D0A9> <EFBFBD> ܲ<EFBFBD> ϣ<EFBFBD> <CFA3> <EFBFBD> <EFBFBD> С
// <20> <> <EFBFBD> տ<EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ļ<EFBFBD> <C4BC> Ĵ<EFBFBD> С <EFBFBD> <D0A1> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> Ƴ<EFBFBD> <C6B3> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> ض<EFBFBD> <D8B6> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ洢<DAB4> <E6B4A2> <EFBFBD> õ<EFBFBD> ע<EFBFBD> <D7A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// TODO: Ӧ<> ʵ<EFBFBD> <CAB5> ĸ<DEB8> <C4B8> ַ<EFBFBD> <D6B7> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA> ˾<EFBFBD> <CBBE> <EFBFBD> <EFBFBD> ֯<EFBFBD> <D6AF>
SetRegistryKey ( _T ( " Remoter " ) ) ;
2025-04-07 18:18:36 +08:00
CMy2015RemoteDlg dlg ( m_iocpServer ) ;
2019-01-05 20:21:43 +08:00
m_pMainWnd = & dlg ;
INT_PTR nResponse = dlg . DoModal ( ) ;
if ( nResponse = = IDOK )
{
// TODO: <20> ڴ˷<DAB4> <CBB7> ô<EFBFBD> <C3B4> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
// <20> <> ȷ<EFBFBD> <C8B7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> رնԻ<D5B6> <D4BB> <EFBFBD> <EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD>
}
else if ( nResponse = = IDCANCEL )
{
// TODO: <20> ڴ˷<DAB4> <CBB7> ô<EFBFBD> <C3B4> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
// <20> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> رնԻ<D5B6> <D4BB> <EFBFBD> <EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD>
}
// ɾ<> <C9BE> <EFBFBD> <EFBFBD> <EFBFBD> 洴<EFBFBD> <E6B4B4> <EFBFBD> <EFBFBD> shell <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( pShellManager ! = NULL )
{
delete pShellManager ;
}
// <20> <> <EFBFBD> ڶԻ<DAB6> <D4BB> <EFBFBD> <EFBFBD> ѹرգ <D8B1> <D5A3> <EFBFBD> <EFBFBD> Խ<EFBFBD> <D4BD> <EFBFBD> <EFBFBD> <EFBFBD> FALSE <20> Ա<EFBFBD> <D4B1> ˳<EFBFBD> Ӧ<EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ<EFBFBD> á<EFBFBD>
return FALSE ;
}
2019-01-13 00:04:50 +08:00
int CMy2015RemoteApp : : ExitInstance ( )
{
if ( m_Mutex )
{
CloseHandle ( m_Mutex ) ;
m_Mutex = NULL ;
}
2025-04-07 18:18:36 +08:00
if ( m_iocpServer ! = NULL )
{
m_iocpServer - > Destroy ( ) ;
delete m_iocpServer ;
m_iocpServer = NULL ;
}
2019-01-13 00:04:50 +08:00
return CWinApp : : ExitInstance ( ) ;
}