- 博客(9)
- 收藏
- 关注
原创 COM组件返回字符串数组
STDMETHODIMP CDSUpdate::GetUpdateFileList(VARIANT* sFileList){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); SAFEARRAY * psa; SAFEARRAYBOUND rgsabound[1]; VARIANT var; CComBSTR bstrTmp; l
2008-06-20 12:04:00 1725
原创 通过Proxy访问http文件
可参考如下代码//Download http file through proxyCString GeHttptFile(CString sUrl){ CString sContent; char sProxyList[MAX_PATH], sUsername[64], sPassword[64]; //in this case "pro
2008-06-19 16:29:00 1188
原创 在程序或DLL中调用自定义资源
以二进制资源为例,这样可以在资源保存任何形式的数据,包括.exe文件等。HRSRC hRes = NULL;HGLOBAL hResData = NULL;DWORD dwSize = 0;BYTE* pSrc = NULL;HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDR_BIN_DSUM), L"BIN"
2008-06-17 22:10:00 1337
原创 等待指定线程结束
//该函数用于提升程序的权限,使之可以等待进程结束bool CDSUMDlg::EnableDebugPrivilege(){ HANDLE hToken; bool bSucceed = false; if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { TOKE
2008-06-13 13:19:00 4302
原创 获得指定进程名的进程ID列表
该函数可用于获得指定进程名的进程ID列表void CDSUMDlg::GetProcessIDList(CString sProcessName, CArray& arrayProcessID){ HANDLE hProcessSnap = NULL; PROCESSENTRY32 pe32 = {0}; HANDLE hParentProcess = NULL; DWOR
2008-06-13 12:42:00 4291
原创 基于对话框的程序如何启动时不可见
将如下代码加入OnInitDialog中即可。 WINDOWPLACEMENT wp; wp.length = sizeof(WINDOWPLACEMENT); wp.showCmd = SW_HIDE; SetWindowPlacement(&wp);
2008-06-12 16:09:00 1048
原创 通过WM_COPY进行跨进程数据传递
注意事项: 必须用SendMessage,不能用PostMessage。 可以发送自定义的数据结构,但是数据结构中不能有指针,引用等。 发送端:sTmp.Format(L"Test data string.";COPYDATASTRUCT cpd;cpd.dwData = 0;cpd.cbData = sTmp.GetLength() * 2 +
2008-06-12 10:23:00 1719
原创 启动一个进程并获得其主窗口句柄
通过以下两个函数可以实现启动一个进程并获得其主窗口句柄。BOOL CALLBACK CDSUpdate::EnumDSUMWindowsProc(HWND hwnd, LPARAM lParam){ DWORD dwID; EnumParam* pEP = (EnumParam*)lParam; GetWindowThreadProcessId(hwnd, &
2008-06-12 10:18:00 5491
原创 通过内存映射文件实现进程间数据共享
以下方法必须保证进程2启动速度快,在进程1没有关闭内存映射文件前进行读取。其中的Sleep(1000)就是在等待进程2启动后读取数据。//Process 1 HANDLE hMapFile; LPCTSTR pBuf; hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 256, L
2008-06-11 12:18:00 2449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人