int main(int argc, char ** argv) { if (argc >= 2) { pthread_t network_thread; printf("\nCode testing..."); InitGlobalConfig(&GC); Init(); InitSearch(); GPIO_Init(0xFFFFFFFF); pthread_create(&network_thread, NULL, thread_network, NULL); CodeTest(atoi(argv[1])); GPIO_Close(); } else { pthread_t network_thread; printf("\n电力电压和开关状态上传"); InitGlobalConfig(&GC); Init(); InitSearch(); GPIO_Init(0xFFFFFFFF); pthread_create(&network_thread, NULL, thread_network, NULL); thread_CommonSearch(Search); GPIO_Close(); } return 0; }
BOOL CEmbTestApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); MACRO_CREATEOUTPUTCONSOLE AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); AllocConsole(); g_hconsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); GetTxLogMgr()->AddNewLogFile(1, TEXT("tesetlog")); InitGlobalConfig(); CDlgTestTask dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
//------------------------------------------------------------------------------ //init GUI configuration //------------------------------------------------------------------------------ DWORD WINAPI InitGUIConfig(LPVOID lParam) { if (GetFileAttributes(SQLITE_LOCAL_BDD) == INVALID_FILE_ATTRIBUTES)ExtractSQLITE_DB(); BOOL reinit = (BOOL)lParam; if (reinit) { //clean sqlite3_close(db_scan); } //hidden DOS form #ifndef DEV_DEBUG_MODE hideDOSForm(); #endif //global init B_AUTOSEARCH = FALSE; h_AUTOSEARCH = NULL; search_rootkit = FALSE; search_rootkit_process_tool= FALSE; ExportStart = FALSE; TRI_RESULT_VIEW = FALSE; TRI_PROCESS_VIEW = FALSE; TRI_REG_VIEW = FALSE; column_tri = -1; NB_TESTS = 0; pos_search = 0; pos_search_reg = 0; current_OS[0] = 0; current_OS_BE_64b = FALSE; nb_current_columns = 0; current_lang_id = 1; follow_sniff = FALSE; reg_file_start_process = FALSE; AVIRUSTTAL = FALSE; VIRUSTTAL = FALSE; SQLITE_FULL_SPEED = TRUE; B_SCREENSHOT = FALSE; B_SCREENSHOT_START = FALSE; enable_magic = FALSE; enable_remote = FALSE; DISABLE_GRID_LV_ALL = FALSE; h_Hexa = 0; last_search_mode = DEFAULT_MODE_SEARCH_HX; last_pos_hex_search = 0; use_proxy_advanced_settings = 0; use_other_proxy = 0; if (!reinit) { Trame_buffer = malloc(100*sizeof(TRAME_BUFFER)); hMutex_TRAME_BUFFER = CreateMutex(0,FALSE,0); } //open sqlite file if (sqlite3_open(SQLITE_LOCAL_BDD, &db_scan) != SQLITE_OK) { char local_path[MAX_PATH]="",file[MAX_PATH]; GetLocalPath(local_path, MAX_PATH); snprintf(file,MAX_PATH,"%s\\%s",local_path,DEFAULT_TM_SQLITE_FILE); //if tmp sqlite file exist free !! //for bug case if (GetFileAttributes(file) != INVALID_FILE_ATTRIBUTES) { DeleteFile(file); } sqlite3_open(SQLITE_LOCAL_BDD, &db_scan); } if (!reinit) { //Init language cb HANDLE H_ImagList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 , /*nb icones*/2, 0); ImageList_AddIcon(H_ImagList,(HICON)LoadIcon((HINSTANCE) hinst, MAKEINTRESOURCE(ICON_LANGUAGE_EN))); ImageList_AddIcon(H_ImagList,(HICON)LoadIcon((HINSTANCE) hinst, MAKEINTRESOURCE(ICON_LANGUAGE_FR))); ImageList_SetBkColor(H_ImagList, GetSysColor(COLOR_WINDOW)); SendMessage(hCombo_lang,CBEM_SETIMAGELIST,0,(LPARAM)H_ImagList); } //init la combo box des langues SendMessage(hCombo_lang, CB_RESETCONTENT,0,0); FORMAT_CALBAK_READ_INFO fcri; fcri.type = TYPE_SQLITE_FLAG_LANG_INIT; SQLITE_LireData(&fcri, SQLITE_LOCAL_BDD); SendMessage(hCombo_lang, CB_SETCURSEL,0,0);//default select English //list of sessions !!! SendMessage(hCombo_session, CB_RESETCONTENT,0,0); nb_session = 0; fcri.type = TYPE_SQLITE_FLAG_SESSIONS_INIT; SQLITE_LireData(&fcri, SQLITE_LOCAL_BDD); SendMessage(hCombo_session, CB_SETCURSEL,0,0); //icons for tests if (!reinit) { H_ImagList_icon = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 , /*nb icon*/2, 0); ImageList_AddIcon(H_ImagList_icon,(HICON)LoadIcon((HINSTANCE) GetModuleHandle(0), MAKEINTRESOURCE(ICON_FOLDER))); ImageList_AddIcon(H_ImagList_icon,(HICON)LoadIcon((HINSTANCE) GetModuleHandle(0), MAKEINTRESOURCE(ICON_FILE))); ImageList_SetBkColor(H_ImagList_icon, GetSysColor(COLOR_WINDOW)); } //all others datas InitGlobalConfig(0, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE); //init help messages AddtoToolTip(htoolbar, htooltip, hinst, 2, NULL, cps[TXT_TOOLTIP_NEW_SESSION].c); AddtoToolTip(htoolbar, htooltip, hinst, 5, NULL, cps[TXT_TOOLTIP_SEARCH].c); //init load of externes tools or actions : LoadTools(); if (WINE_OS) { EnableMenuItem(GetMenu(h_main),IDM_TOOLS_PROCESS,MF_BYCOMMAND|MF_GRAYED); } CheckMenuItem(GetMenu(h_main),BT_SQLITE_FULL_SPEED,MF_BYCOMMAND|MF_CHECKED); sqlite3_exec(db_scan,"PRAGMA journal_mode = OFF;", NULL, NULL, NULL); //init dd menu to copy only driver in disk format char letter; char tmp[] = "C:\\"; for (letter='Z';letter>='A';letter--) { tmp[0] = letter; switch(GetDriveType(tmp)) { case DRIVE_FIXED: case DRIVE_REMOVABLE:break; default: RemoveMenu(GetSubMenu(GetSubMenu(GetMenu(h_main),2),5),letter-'A',MF_BYPOSITION); //-E au lieu de -A car 5 menus en + break; } } return 0; }
BOOL CEMBClientApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); AfxEnableControlContainer(); ST_UICLIENTCONFIG config; CString strRet; config.ToString(strRet); if (!InitGlobalConfig()) { ASSERT(FALSE); return FALSE; } WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); if (wsaData.wVersion != MAKEWORD(2,2)) { int nErr = WSAGetLastError(); ASSERT(FALSE); return FALSE; } MACRO_CREATEOUTPUTCONSOLE // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CEMBClientDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }