获取进程快照
12345678910111213141516171819202122232425262728293031#include "windows.h"#include "tlhelp32.h"#include "stdio.h"int main(int argc, char* argv[]){ PROCESSENTRY32 pe32; //在使用这个结构前,先设置它的大小 pe32.dwSize = sizeof(pe32); //给系统内所有的进程拍个快照 HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (hProcessSnap == INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot 调用失败.\n"); return -1; } //遍历进程快照,轮流显示每个进程的信息 B ...
MFC关闭进程
123456789101112DWORD nProcessID;HANDLE hProcess = NULL; ::GetWindowThreadProcessId((HWND)handle,&nProcessID); // handle要关闭的进程句柄,可以使用FindWindow获取hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,nProcessID);if (!::TerminateProcess(hProcess, 0)){ DWORD derror = GetLastError(); return FALSE;}return TRUE;
MFC检测程序未响应
12345678910111213141516171819202122232425262728UpdateData(); CWnd* hwnd = FindWindow(NULL, m_szName);// m_szName 程序名称 if (NULL != hwnd) { HINSTANCE hDll = LoadLibrary(_T("user32.dll")); if (NULL != hDll) { typedef BOOL(WINAPI *PROCISHUNGAPPWINDOW)(HWND); PROCISHUNGAPPWINDOW IsHungAppWindow = (PROCISHUNGAPPWINDOW)GetProcAddress(hDll, "IsHungAppWindow"); if (IsHungAppWindow(hwnd->GetSafeHwnd())) { m_szStatus = "未响应"; } else ...
取得程序运行目录
1234// 获取当前进程的当前目录char path[MAX_PATH];memset(0, path, MAX_PATH);GetCurrentDirectory(MAX_PATH,curr_all_path);
123456789101112131415161718// 取得程序运行目录TCHAR szPathName[MAX_PATH]; memset(szPathName, 0, MAX_PATH); if (0 == GetModuleFileName(NULL, szPathName, MAX_PATH)) { return _T(""); } CString rValue; rValue = szPathName; for (int i = rValue.GetLength(); i > 0; --i) { if ('\\' == rValue[i-1]) { rVal ...
web网页调用 c++写的OCX控件
web网页调用 c++写的OCX控件12345678<object classid="clsid:8321EA50-51F1-464E-B0D0-11B2092DEDA4" id="8321EA50-51F1-464E-B0D0-11B2092DEDA4" codebase="testOcx.ocx" size="500" width="500" height="500"> </object>
把后台窗口调至前台显示
把后台窗口调至前台显示123456789101112131415// FindWindow取得窗口句柄 CWnd* hwnd = FindWindow(NULL, _T("PSS V4.06")); if (NULL != hwnd) { CRect rect; // 取得窗口大小 hwnd->GetWindowRect(rect); // 显示 hwnd->SetWindowPos(NULL, rect.left, rect.top, rect.right, rect.bottom, TRUE); }
MFC CComboBox CProgressCtrl控件操作
CComboBox 下拉条
CComboBox::ResetContent()删除所有文本
CComboBox::AddString()增加一行
CString szTmp;
CComboBox::GetWindowText(szTmp);取得当前文本
CProgressCtrl 进度条
CProgressCtrl::SetRange(0,1000);设置范围
CProgressCtrl::SetStep(设置当前步长);
CProgressCtrl::SetPos()设置当前进度
各种数据库连接字符串查询网址
各种数据库连接字符串查询网址http://www.connectionstrings.com/
在线程中弹出自定义对话框
弹出对话框的代码 :
主要是弹出对话框的时候可以在后台做某些动作:
与直接弹出对话框前开启线程,在线程中做某些动作效果相同。
12345MsgBoxThread mbt;mbt.MesgBoxPopup(10, "do something");// do something // do somethingmbt.WaitFor(); // 等待线程退出
使用到的MsgThread和对话框类
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313 ...
ODBC连接数据库使用动态密码
先修改使用到的记录集的GetDefaultConnect()函数为:1234CString CTask_Info::GetDefaultConnect(){ return _T("ODBC;DSN=DSN_NAME");}使用方法:
1234567891011121314CDatabase sqldb; sqldb.OpenEx("DSN=DSN_NAME;UID=;PWD=密码", CDatabase::noOdbcDialog); // LOGMANAGE_GUNARK数据源名称if (sqldb.IsOpen()) { CTask_Info ti(&sqldb); ti.m_strFilter.Format(""); ti.Open(CRecordset::dynaset); for (int i =0; !ti.IsEOF(); ++i) { CString ss ...