windows 相关编程
海浪
生活要有目标
展开
-
关闭任务管理器中的进程
<br /> HANDLE handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);<br /> HANDLE ProcessHandle;<br /> PROCESSENTRY32 Info;<br /> Info.dwSize = sizeof(PROCESSENTRY32);<br /> if(::Process32First(handle,&Info))<br /> {<br /> do{<br原创 2011-02-11 11:40:00 · 825 阅读 · 0 评论 -
MFC:thunk技术完成窗口类地封装
<br />窗口类的封装,从全局窗口消息处理到窗口对象消息处理的映射方法:<br /> 对界面进行封装,一般都是一个窗口一个类,比如实现一个最基本的窗口类CMyWnd,你一定会把窗口过程作为这个类的成员函数,但是使用WINAPI创建窗口时必须注册类WNDCLASS,里面有个成员数据lpfnWndProc需要WNDPROC的函数指针,一般想法就是把窗口类的消息处理函数指针传过去,但是类成员函数除非是静态的,否则无法转换到WNDPROC,而全局的消息处理函数又无法得到窗口类对象的指针。这里有几种解决办法:<b转载 2011-04-30 16:22:00 · 940 阅读 · 1 评论 -
如何在程序中动态设置墙纸
大家都知道设置WINDOWS桌面墙纸的WIN32 API是SystemParametersInfo, 使用SPI_SETDESKWALLPAPER参数便能设置墙纸:<br />::SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C://ABitmap.bmp", SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);<br />但问题并没有解决,因为这个WIN32 API有很大的局限性<br />1. 无法把jpeg, gi转载 2011-02-11 12:54:00 · 1056 阅读 · 0 评论 -
如何在程序中创建快捷方式
<br />通过手工操作建立这些菜单项或快捷方式并不复杂,在一般Windows使用手册中都有介绍,相信大家都很熟悉,在此不再赘述。笔者在有关资料的基础上,通过实践摸索,找到了在应用程序中完成上述工作的方法。这正是开发安装程序所必需的。<br /> Windows的快捷方式实际上是一个带有扩展名LNK的数据文件,其中包含有用于访问Windows某一对象(即在资源管理器中所能浏览的所有对象,包括文件,文件夹,驱动器及打印机等)的有关信息,如目标对象的路径和名称,工作目录,要传递的命令行参数,运行时的初始显示状转载 2011-02-11 12:52:00 · 3170 阅读 · 0 评论 -
VC/MFC 设置程序与文件关联与双击文件获取文件路径
<br />如何设置程序与文件关联并且双击关联文件时获取文件的路径呢?<br />一般来说可以通过写注册表的方式实现,在函数入口处实现功能。<br />例如在VC/MFC中,可以在应用程序的C**App.cpp文件中InitInstance()函数中实现该功能。<br />#include <string><br />using namespace std;<br />//关联文件的后缀名,如"txt"、"doc"等<br />string m_csExtension;<br />string m_csSh转载 2011-02-11 12:52:00 · 1121 阅读 · 0 评论 -
获取系统版本 XP ,VIS win7 等
<br />解决了WINDOWS7判断的问题<br />BOOL GetOS(LPTSTR lpBuffer, UINT uSize)<br />{ <br />OSVERSIONINFOEX osvi;<br />ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));<br />osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);<br />if( !GetVersionEx ((OSVERSIONINFO *)&osvi)原创 2011-02-11 12:51:00 · 1912 阅读 · 0 评论 -
处理键盘组合键消息
在处理组合键消息时,不能直接用wParam, 而要用GetKeyState(VK_CONTROL)或GetKeyState(VK_SHIFT)来判断是否按下了组合键...<br /><br />你这样用:<br />if( GetKeyState(VK_CONTROL) & 0xF0000000) nCtrlAKeyDown = TRUE;<br />if( GetKeyState(VK_SHIFT) & 0xF0000000) nShiftKeyDown = TRUE;<br /><br />//====转载 2011-02-11 12:49:00 · 1824 阅读 · 0 评论 -
vc++启动和停止服务
<br />包含头文件:#include <winsvc.h><br />以下以web服务为例:<br />#include <winsvc.h><br />void CStartServiceDlg::OnBnClickedButton1()<br />{<br /> // 打开服务管理对象<br /> SC_HANDLE hSC = ::OpenSCManager( NULL, <br /> NULL, GENERIC_EXECUTE);<转载 2011-02-11 12:48:00 · 592 阅读 · 0 评论 -
解决NOD32的误报问题
<br /> <br />本来好好的软件,突然有用户来反映说NOD32报毒,我晕~~,开始找什么问题,老办法把代码一行一行的注释掉看测试,结果注释掉了大半的代码,也没有发现到底是哪行代码出的问题;今天终于找到了解决的方法了,就是通过延迟加载DLL来解决,通过延迟加载WININET.DLL 结果问题就解决了,我晕~~,,无语了<br />VC的解决步骤:<br />DelayImp.lib<br />/DelayLoad:WININET.dll原创 2011-02-11 12:48:00 · 758 阅读 · 0 评论 -
VC6 在Vista Win7 下提高权限问题
<br />以下程序集清单(Assembly Manifest)示例使你的程序在VISTA和WIN7下需要管理员权限,即在程序运行时弹出UAC提升权限对话框。<br /><?xml version="1.0" encoding="UTF-8" standalone="yes"?><br /><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br /><assemblyIdentity<br /> vers转载 2011-02-11 12:48:00 · 724 阅读 · 0 评论 -
实现获取软件自身的版本号
<br />//获取软件当前的版本<br />//该版本号是在资源文件中的../Version/VS_VERSION_INFO/FILEVERSION的值<br />CString CMyPro::GetCurProductVersion()<br />{<br /> TCHAR cPath[400] = _T(""),szVersionBuffer[400]= _T("");<br /> DWORD dwHandle,InfoSize;<br /> CString strVersion;<br /> ::原创 2011-02-11 12:47:00 · 1633 阅读 · 2 评论 -
关于NTDLL.DLL 异常错误问题
<br />通过后台异常统计,发现挺多用户在打开软件时就自动崩溃,直接关掉了,调试下错误地址指向NTDLL.DLL加载错误,汗<br />需要去网络上下个NTDLL.DLL 的库来替换,就不会出问题了,具体的原因是什么? 是软件问题还是用户的NTDLL.DLL 错误原创 2011-02-11 12:46:00 · 30590 阅读 · 0 评论 -
ProcessShellCommand(cmdInfo)函数功能
<br />在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我差了很多资料终于使其漏出庐山真面目。<br />CCommandLineInfo cmdInfo;//定义命令行 <br />ParseCommandLine(cmdInfo);//解析命令行<br />// 调度在命令行中指定的命令。如果 <br />// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回转载 2011-02-11 11:57:00 · 585 阅读 · 0 评论 -
VC 查找进程,关闭进程
<br />//<br />// FindProcess<br />// 这个函数唯一的参数是你指定的进程名,如:你的目标进程<br />// 是 "Notepad.exe",返回值是该进程的ID,失败返回0<br />//<br />DWORD FindProcess(char *strProcessName)<br />{<br /> DWORD aProcesses[1024], cbNeeded, cbMNeeded;<br /> HMODULE hMods[1024];<br />转载 2011-02-11 11:47:00 · 428 阅读 · 0 评论 -
注册表获取默认浏览器
今天因工作的需要,需得到系统的默认浏览器,在网络上找到了一些资料,HKEY_CLASSES_ROOT\http\shell\open\command 等等,在XP系统下,还能得到正常的数据,然而在win7 就不能得到正确的结果,在win7下,比如修改360为默认浏览器后,再把IE原创 2011-10-12 19:35:03 · 2398 阅读 · 0 评论