现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-20 06:23 工业·编程 ⁄ 共 1790字 暂无评论
Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,”open”,”calc.exe”,”",”", SW_SHOW );或 ShellExecute(this->m_hWnd,”open”,”notepad.exe”,”c://MyLog.log”,”",SW_SHOW );正如您所看到的,我并没有传递程序的完整路径。 Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this->m_hWnd,”open”,”c://abc.txt”,”",”",SW_SHOW ); Q: 如何打开一个网页? ShellExecute(th...
阅读全文
2012-08-20 06:22 工业·编程 ⁄ 共 1662字 暂无评论
[问题提出] 有的程序需要自定义组合键完成一定功能,如何实现? [解决方法] RegisterHotKey函数原型及说明: BOOL RegisterHotKey( HWND hWnd, // 接收WM_HOTKEY的窗口句柄 int id, // hot key的ID号. UINT fsModifiers, // 响应那个热键. UINT vk // 与热键配合的键. 其中: 1)id的说明: id为你自己定义的一个ID值,对一个线程来讲其值必需在0×0000 – 0xBFFF范围之内,对DLL来讲其值必需在0xC00...
阅读全文
2012-08-20 06:21 工业·编程 ⁄ 共 573字 暂无评论
BOOL SetAutoRun(CString strPath)//开机自动运行 { CString str; HKEY hRegKey; BOOL bResult; str=_T(“Software//Microsoft//Windows//CurrentVersion//Run”); if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS) bResult=FALSE; else { _splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetLength(MAX_PATH+1),NULL); strPath.ReleaseBuffer(); str.Relea...
阅读全文
2012-08-20 06:19 工业·编程 ⁄ 共 512字 暂无评论
void CPage1::OnXiuMian() { if(MessageBox(“确实要休眠吗?”,”关机程序”,MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION)==IDYES) { static HANDLE hToken; static TOKEN_PRIVILEGES tp; static LUID luid; if(::OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)) { ::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid); tp.PrivilegeCount=1; ...
阅读全文
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对 话框设置为蓝色背景和红色文本,步骤如下: ① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。 ② 在CExampleDlgApp ::InitInstance()中添加如下代码: BOOL CExampleDlgApp: : InitInstance ( ) { … CExampleDlgDlg dlg; m_pMainWnd = &dlg...
阅读全文
删除: void COperationDlg::OnDel2(CString m_strFileDictory) //参数就是目录的路径 { if(m_strFileDictory.GetLength()==0) { ::AfxMessageBox (“目录名非法!”,MB_OK|MB_ICONEXCLAMATION); return; } char FromFileName[80]=”/0″; strcpy(FromFileName,m_strFileDictory); strcat(FromFileName,”/0″); SHFILEOPSTRUCT lpFileOp; lpFileOp.hwnd =GetSafeHwnd(); lpFileOp.wFunc =FO_...
阅读全文
2012-08-20 06:11 工业·编程 ⁄ 共 455字 暂无评论
    模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。在VC里调用api函数是既简单又方便不过的事了。     首先介绍一下Keybd_event函数。Keybd_event能触发一个按键事件,也就是说回产生一个WM_KEYDOWN或WM_KEYUP消息。当然也可以用产生这两个消息来模拟按键,但是没有直接用这个函数方便。     Keybd_event共有四个参数,第一个为按键的虚拟键值,如回车...
阅读全文
char* szFileName = “C://EnochShen.exe”; DWORD dwSize = GetFileVersionInfoSize(szFileName,NULL); LPVOID pBlock = malloc(dwSize); GetFileVersionInfo(szFileName,0,dwSize,pBlock); char* pVerValue = NULL; UINT nSize = 0; VerQueryValue(pBlock,TEXT(“//VarFileInfo//Translation”), (LPVOID*)&pVerValue,&nSize); CString strSubBlock,strTranslation,strTemp; strTemp.Format(“0...
阅读全文
HKEY hKey; char szFileName[256]; GetModuleFileName(NULL,szFileName,256); RegOpenKey(HKEY_LOCAL_MACHINE,”SOFTWARE//Microsoft//windows//currentversion//run”,&hKey); if(m_bAutoRun) { RegSetValueEx(hKey,”RunmeAtStartup”,0,REG_SZ,(BYTE *)szFileName,sizeof(szFileName)); } else { RegDeleteValue(hKey,”RunmeAtStartup”); } RegCloseKey(hKey);
阅读全文
2012-08-19 23:56 工业·编程 ⁄ 共 358字 暂无评论
使用WH_CALLWNDPROC类型钩子,回调函数如下: LRESULT CALLBACK MyProc(int code, WPARAM wParam, LPARAM lParam) { switch (((CWPSTRUCT*)lParam)->message) { case WM_QUERYENDSESSION: { switch( ((CWPSTRUCT*)lParam)->lParam ) { case ENDSESSION_LOGOFF: { FILE *pFile = NULL; ((CWPSTRUCT*)lParam)->message = 0; AfxMessageBox(TEXT(“log off”)); return 0; } b...
阅读全文