自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

God,please give me a little more time ....

路漫漫其修远兮,吾将上下而求索 ...

  • 博客(74)
  • 资源 (14)
  • 论坛 (91)
  • 收藏
  • 关注

原创 监控Windows系统音量变化通知

// Header File#pragma once#include <mmdeviceapi.h>#include <endpointvolume.h>#include <corecrt_math.h>typedef void (CALLBACK* PFN_NOTIFYCALLBACK)(DWORD dwVolume, LPVOID lpCo...

2019-07-03 09:44:46 900 1

原创 删除最近几天的LOG记录文件

// Delete Expire Log FilesBOOL DeleteExpireFiles(LPCTSTR lpszFileExt, SYSTEMTIME* pSystemTime, int nReservedDays){ BOOL bRet = FALSE; do { ASSERT(NULL != lpszFileExt); ASSERT(NULL != pSyste...

2019-07-03 09:27:21 335

原创 获取EXE文件版本信息(版本格式:xx.xx.xx.xx)

BOOL GetVersion(LPTSTR lpszVersion, size_t nLength, LPCTSTR lpszExecute){ BOOL bRet = FALSE; TCHAR* pVersion = NULL; do { if ((NULL == lpszVersion) || (nLength &lt;= 0) || (NULL == lpszExecut...

2018-06-08 10:28:04 2127 7

原创 监控屏幕背光Brightness变化的通知

MS网站上给出了用Power Shell的方式用来设置/获取Brightness的值。为了方便使用,将相关接口进行了封装:#pragma once#include &lt;initguid.h&gt;#include &lt;cguid.h&gt;#include &lt;atlcomcli.h&gt;#include &lt;atlcoll.h&gt;#include &lt;com...

2018-06-06 16:55:53 844

原创 登录系统以后,在Windows服务进程中启动需管理员权限(带盾牌图标)的应用程序

// 创建交互式服务安装完成以后,启动UI的程序BOOL LaunchApplication(LPCTSTR lpszExecute, LPCTSTR lpszCmdLine){ BOOL bRet = FALSE; HANDLE hUserTokenDup = NULL; LPVOID pEnv = NULL; do { DWORD dwSessionId = 0; if ...

2018-05-08 23:10:17 2750 5

原创 应用程序版本号比对

BOOL CompareVersion(LPCTSTR lpszVer1, LPCTSTR lpszVer2, int&amp; nResult){ BOOL bRet = FALSE; do { if ((NULL == lpszVer1) || (NULL == lpszVer2)) { break; } // Version: a.b.c.d #define DEFA...

2018-05-03 22:24:12 432

原创 Win32 Dialog对话框处理WM_KEYDOWN事件

MFC中重写虚函数PreTranslateMessage里是可以过滤WM_KEYDOWN消息的。但是如果是Win32 SDK中利用DialogBox/DialogBoxParam创建模态对话框一般行为是不处理WM_KEYDOWN消息的。如果该对话框中没有任何的子控件的话,在对话框的窗口回调函数DlgProc()中是可以过滤到WM_KEYDOWN消息的,不过并不是所有的键的消息都可以捕获到,例如像T

2014-12-10 13:22:22 4852 6

原创 《反入侵的艺术——黑客入侵背后的真实故事》 书评

第一次知道凯文•米特尼克(Kevin D. Mitnick)这个名字,是在大学的图书馆里,这个被誉为世界头号黑客,他的黑客生涯充满了丰富精彩而又富有传奇。现今他是全球广受欢迎的信息安全专家,他将所采访的多个黑客的入侵公司、政府和组织的故事记录下来,并进行专业分析,与读者分享。《反入侵的艺术——黑客入侵背后的真实故事》一书就是由此而来的。书籍本身并没有涉及到太多太高深的专业黑客技术知识的

2014-09-22 10:57:43 2717

原创 动态调整对话框属性(去掉标题栏,去掉边框,修改类似成Border:NONE样式)

// 动态修改对话框属性,去掉对话框标题栏,设置Border为NONE属性。if(dlg.GetSafeHwnd()){ dlg.ModifyStyle(WS_CAPTION, 0); // 去掉标题栏 dlg.ModifyStyleEx(WS_EX_DLGMODALFRAME, 0); // 去掉边框 dlg.SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSI

2014-02-20 10:42:01 10420 2

原创 输出进程相关联的环境变量信息

void DumpEnvironmentStrings(){#define MAX_ENVIRONMENT_NAME_LENGTH (128)#define MAX_ENVIRONMENT_VALUE_LENGTH (1024) LPTSTR lpszEnvString = GetEnvironmentStrings(); if(NULL == lpszEnvString) {

2012-10-28 21:28:03 1723

原创 字符串编码之间的转换(GB2312<->UTF8<->Unicode)及URLEncoding

LPWSTR GB2312ToUnicode(LPCSTR lpszInBuf){ if(NULL == lpszInBuf) { return NULL; } WCHAR* pBuf = NULL; int nLen = MultiByteToWideChar(CP_ACP, 0, lpszInBuf, -1, pBuf, 0); pBuf = new WCHAR[nLen];

2012-10-28 20:49:39 4738 6

原创 _CrtDumpMemoryLeaks报告程序中的内存泄露问题(简单示例代码)

#include "stdafx.h"#include #include #ifdef _DEBUG //这个要加上,否则不会输出定义到那个文件中(及不包含存在内存泄露的该cpp文件的相关信息) #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)#endifint _tmain(int argc, _TCHAR* argv[])

2012-09-11 07:40:46 9133 1

原创 创建专有命名空间单实例程序

// Singleton.h#pragma onceclass CSingleton{public: CSingleton(LPCTSTR lpszBoundary = _T("MyAppBoundary"), LPCTSTR lpszNamespace = _T("MyAppNamespace")); virtual ~CSingleton(void);public: BOO

2012-08-25 12:50:57 2279

原创 一个简单的以User权限启动外部应用程序

BOOL ExecuteAsUser(LPCWSTR lpszUserName, LPCWSTR lpszPassword, LPCWSTR lpszApplication, LPCWSTR lpszCmdLine){ if(NULL == lpszUserName) { return FALSE; } if(NULL == lpszApplication) { return

2012-06-07 07:46:39 4410 5

原创 一个简单的将GUI程序的log信息输出到关联的Console窗口中

// .h 文件#pragma onceclass CConsoleDump{public: explicit CConsoleDump(LPCTSTR lpszWindowTitle = NULL); virtual ~CConsoleDump(void);public: BOOL DUMP(LPCTSTR lpszFmt, ...); BOOL Show

2012-06-03 19:46:12 2834

原创 ReadDirectoryChangesW 监控文件夹 (一个简单的监控示例程序)

// .h文件#pragma oncetypedef void (*PFN_NotifyAction)(DWORD dwAction, LPWSTR szFile, DWORD dwLength);class CDirectoryWatch{public: CDirectoryWatch(void); virtual ~CDirectoryWatch(void);public

2012-05-13 12:31:38 6140 3

原创 FormatMessage格式化错误信息

// ErrorMsg.h#pragma onceclass CErrorMsg{public: CErrorMsg(void); virtual ~CErrorMsg(void);public: DWORD GetLastError(DWORD dwErrorId, LPTSTR lpszError, DWORD dwLength);private: LPCTSTR m

2012-05-09 22:22:31 2372

原创 Win32 SDK创建RichEdit Control控件

HMODULE hRichEditDll = NULL;WM_CREATE:{ hRichEditDll = LoadLibrary(_T("RICHED20.dll")); HWND hRichEdit = CreateWindowEx(WS_EX_CLIENTEDGE, _T("RichEdit20W"), NULL, WS_CHILD | WS_VISIBLE | W

2012-04-19 09:47:41 3466 1

原创 取消用鼠标拖动或者用键盘在编辑框中选择的文本内容

// 0x0118这个消息是MS未文档化的消息WM_SYSTIMER (caret blink) BOOL CXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class CEdit* pEdit = (CEdit*)GetDlgItem

2012-03-04 14:30:38 2183 5

原创 VS2008SP1/VS2010 展开所有菜单下的子菜单项(默认是部分菜单折叠显示)

VS2008SP1/VS2010新建的SDI/MDI窗口默认有些菜单是折叠的,如下图所示:如果要想展开该菜单项的话,可以修改CMainFrame类的OnCreate函数中的代码,里面有这样一段:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CMDIFrameWndEx::OnCreate(lpCreat

2012-02-27 10:33:16 5811 2

原创 获取其它进程窗口中的状态栏信息

HWND hWnd = ::FindWindow(NULL, _T("XXXXX"));  if(NULL == hWnd) {  return ; }  HWND hWndStatusBar = ::FindWindowEx(hWnd, NULL, _T("msctls_statusbar32"), NULL); if(NULL == hWndStatusBar)

2012-02-23 12:03:57 3175 5

原创 Debug模式应用程序输出Debug调试信息

// Debug模式,主要输出一些调试的信息。#ifdef UNICODE #define _FILE_ _STR2WSTR(__FILE__) #define _FUNCTION_ _STR2WSTR(__FUNCTION__)#else #define _FILE_ __FILE__ #define _FUNCTION_ __FUNCTION__#endif#

2012-01-19 17:09:51 2641

原创 在对话框上拖动按钮并移动该按钮

// 派生自CButton类,主要过滤WM_LBUTTONDOWN 、WM_LBUTTONUP和WM_MOUSEMOVE消息。BOOL m_bFlag = FALSE; // 成员变量,用来标示鼠标是否按下, 初始化为FALSECPoint m_pt; // 成员变量,用来保存当前坐标值BOOL CXXButton::PreTranslateMessage(MSG* pMsg)

2012-01-05 12:47:35 4361

原创 VS2008SP1/VS2010上菜单项加速键不响应的问题

// 在resource view中的Menu和Accelerator中定义你的资源//CMainFrame类中定义HACCEL m_hAccel;// CMainFrame类中OnCreate函数加入:m_hAccel = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));// CMai

2012-01-03 07:32:36 2020

原创 在父对话框上创建凹下/凸起的子对话框样式

// 在父对话框窗口上创建凹下或者凸起的子对话框// 子对话框样式Style:Child,Border:NONE风格CNewDlg* pDlg = new CNewDlg;pDlg->Create(IDD_DIALOG1, this);pDlg->ModifyStyleEx(0, WS_EX_DLGMODALFRAME); // 这里是凸起的样式,如果是凹下风格,将这里的WS_EX_DL

2012-01-03 06:21:27 1515

原创 MDI程序,添加多文档模板,点击New菜单项的时候弹出New对话框要求让用户选择的问题

//在CXXApp类的InitInstance函数中添加一个文档模板CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_XXXTYPE, RUNTIME_CLASS(CXXXDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame

2011-11-25 10:56:33 4967 15

原创 keybd_event函数模拟键盘输入的问题

// keybd_event函数可以模拟键盘输入,但是下面的例子你会发现只能输入字母和数字,对于符号不能输入,// 如果需要输入标点符号,可以参考MSDN上的Virtual-Key Codes表。例如'.'对应VK_OEM_PERIOD。char buf[] = {"Hello, World! 0123456789"}; for(size_t i=0; ; i++) { if(i >=

2011-10-20 22:48:24 5167

原创 Win32 SDK程序创建一些控件

在Win32 SDK中创建一些控件的时候需要注意一下(具体是哪些控件请参看MSDN文档中列出来的)/* MSDN:Carries information used to load common control classes from the * dynamic-link

2011-10-10 10:25:45 3009

原创 点击CComboBox控件的下拉按钮控制下拉框ListBox的显示和隐藏

/*The WM_CTLCOLORLISTBOX message is sent to the parent window of a list box before the system draws the list box. By responding to this m

2011-09-19 21:42:42 4423

原创 VS2008SP1/VS2010新建的SDI/MDI程序,为菜单项添加ToolTip信息

//在CMainFrame类中添加处理虚函数//virtual BOOL OnMenuButtonToolHitTest(CMFCToolBarButton* pButton, TOOLINFO* pTI);// MSDN: Override this method if

2011-09-02 08:34:11 3197

原创 模拟登陆115网盘(MFC版)

// 模拟登陆115网盘#include // 包含相关的头文件/* 用抓包工具抓包可得到需要提交的数据,然后模拟提交即可。*(有的时候需要得到cookie信息,你可以使用CInternetSession::GetCookie()函数得到该cookie信息)

2011-08-03 11:11:57 17407 26

原创 创建TreeView控件,响应NM_CLICK消息得到当前点击的节点的信息(SDK版本)

// 创建TreeView控件case WM_CREATE: { INITCOMMONCONTROLSEX icc = {sizeof(icc), ICC_TREEVIEW_CLASSES}; if(InitCommonControlsEx(&icc))

2011-08-01 15:30:42 5540 5

原创 处理鼠标右键在CListCtrl控件的表头CHeaderCtrl上的响应

// 在CListCtrl控件的父窗口上添加OnNotify虚函数BOOL CXXXDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { // TODO: Add your specia

2011-07-24 22:11:50 3375

原创 CComboBox控件的下拉列表框,用鼠标在该ListBox上滑动的时候显示出当前具有focus的item项的索引

// 在CComboBox控件的下拉列表中滑动鼠标,会显示当前focus的item项,同时会将对应的item项以蓝色标记出来。通过spy++可以看到父窗口CComboBox控件收到一个WM_CTLCOLORLISTBOX消息。这里示例是得到该item项的索引值,同时将它显示到主对

2011-07-21 10:58:27 7008 12

原创 Win32 SDK程序中拖动Thin边框窗口来改变窗口大小

主要需要添加处理WM_NCHITTEST,WM_SETCURSOR和WM_NCLBUTTONDOWN消息case WM_NCHITTEST: POINT point; point.x = LOWORD(lParam);

2011-07-12 15:05:30 3090 2

原创 初始化隐藏对话框程序

// 添加处理WM_WINDOWPOSCHANGING消息void CXXDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) { lpwndpos->flags &= ~SWP_SHOWWINDOW; // 去掉SWP_SHOWWINDOW标记 CDialog::OnWindowPosChanging(lpwndpos);

2011-06-05 13:56:00 3025 4

原创 在View视图类中使用CSplitterWnd来拆分视图窗口(不在CMainFrame类的虚函数OnCreateClient中拆分视图框架窗口)

<br />// View.hCSplitterWnd m_wndSplitter;BOOL m_bSplitter; // 初始化为FALSE// View.cppint CXXXView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFormView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creatio

2011-06-02 08:40:00 5903 3

原创 窗口按钮不出现任务栏上,并且窗口风格保持原来的样式

// App类的InitInstance函数中,将原来的代码替换为下面的代码即可,对话框风格保持和原来一样,任务栏上也不会显示该对话框的按钮。// CXXDlg dlg;// m_pMainWnd = &amp;dlg;// int nResponse = dlg.DoModal();// if (nResponse == IDOK)// {// // TODO: P...

2011-05-19 23:58:00 3364 14

原创 枚举桌面应用程序lnk路径并得到对应程序的绝对路径

<br />// 枚举桌面上应用程序的lnk路径void EnumDesktopLnkPath(){ WCHAR szPath[MAX_PATH] = {0}; SHGetSpecialFolderPathW(NULL, szPath, CSIDL_DESKTOPDIRECTORY, 0); IShellFolder* pShell = NULL; if(FAILED(SHGetDesktopFolder(&pShell))) { return ; } ISh

2011-05-19 22:33:00 2408

原创 模拟双击其它进程窗口中的CListCtrl控件的某一项

<br />之前写过一个模拟点击本进程窗口CListCtrl控件的某一项,请参考这里。<br />HWND hWnd = ::FindWindow(NULL, _T("XXX")); if(hWnd) { HWND hList = ::FindWindowEx(hWnd, NULL, _T("SysListView32"), NULL); if(hList) { DWORD PID = 0; ::GetWindowThreadProcessId(hList, &PI

2011-05-08 16:05:00 5957 9

Windows Driver Development (Windows驱动开发电子书).rar

Windows驱动开发资料(均为英文版资料) 1)Windows NT File System Internals 2)Developing Drivers with the Windows Driver Foundation 3)Programming the Microsoft Windows Driver Model(2nd) 4)Windows Internals 6th (Part 1/Part 2) 5)Windows.Internals 7th (Part 1)

2019-07-22

cppcheck tool

cppcheck tool for C/C++ project cppcheck tool for C/C++ project

2018-01-22

Developing Drivers with the Windows Driver Foundation.pdf

Windows Driver Developement, WDF Development, WDM WDF Development

2018-01-22

Windows驱动开发技术详解

Windows驱动开发技术详解

2017-03-21

Windows设备驱动程序WDF开发

Windows设备驱动程序WDF开发

2017-03-21

Microsoft Windows驱动程序模型设计

Microsoft Windows驱动程序模型设计

2017-03-21

Developing Drivers with the Microsoft Windows Driver Foundation

Brought to you from the team who developed Windows Driver Foundation, this comprehensive guide gives you the in-depth, expert guidance you need to start developing robust drivers for Windows.

2017-03-21

VC图形图像技术篇.chm

VC图形图像技术篇.chm VC图形图像技术篇.chm

2008-09-09

OpenGL基础图形编程.chm

OpenGL基础图形编程.chm OpenGL基础图形编程.chm

2008-09-09

MFC类库详解.chm

MFC类库详解.chm MFC类库详解.chm

2008-09-09

MFC程序员的WTL指南 (第二版).chm

MFC程序员的WTL指南 (第二版).chm MFC程序员的WTL指南 (第二版).chm

2008-09-09

ESAN2

TCP下的端口扫描器,开源代码

2008-04-23

ESAN1

tcp下端口扫描器,开源代码

2008-04-23

ESCAN扫描器

TCP下的端口扫描器,开源代码

2008-04-23

Eleven的留言板

发表于 2020-01-02 最后回复 2020-03-27

兔子党上线后的官方名投票

发表于 2011-08-20 最后回复 2019-10-14

结贴通知:VC/MFC - 网络编程小版块请发帖人注意及时结贴

发表于 2010-05-17 最后回复 2019-10-12

如何通过Gas gauge读取电池相关信息?

发表于 2016-08-03 最后回复 2018-10-19

Win10+VS2015 双机调试 WDF驱动无法单步Debug问题?

发表于 2016-06-02 最后回复 2016-06-12

WinCE/WM嵌入式,S3C 6410平台关于JPEG硬解码

发表于 2013-09-09 最后回复 2016-04-15

关于UTF-8的URLEncode的问题?急。。。

发表于 2008-06-12 最后回复 2015-11-13

[散分] MVP renew成功,散分~

发表于 2013-01-06 最后回复 2015-05-11

[散分]祝大家新年快乐~

发表于 2013-02-07 最后回复 2015-03-04

【已反馈】配色不好,白底蓝字看的很累

发表于 2012-11-04 最后回复 2013-02-16

[散分]恭喜VC/MFC界面版版主xianglitian(技术总监)大牛 MVP连任成功!

发表于 2012-10-09 最后回复 2013-01-06

[散分]收到CSDN的中秋礼物,感谢CSDN和广大网友的支持

发表于 2012-09-26 最后回复 2012-09-28

[散分]大版申请成功,散分~

发表于 2012-08-23 最后回复 2012-09-20

申请VC/MFC大版版主

发表于 2012-08-15 最后回复 2012-08-23

关于3G拨号上网的问题?

发表于 2012-08-17 最后回复 2012-08-20

[向ALL提问]年终了,出来晒晒你的年终奖...

发表于 2012-01-12 最后回复 2012-03-20

[散分]MVP散分

发表于 2012-01-05 最后回复 2012-01-19

[散分]快过年了,祝各位新年快乐

发表于 2012-01-17 最后回复 2012-01-18

谈谈异步socket的问题?

发表于 2008-12-09 最后回复 2012-01-04

[散分]2011年的最后一天

发表于 2011-12-31 最后回复 2011-12-31

[DirectShow问题]Windows Mobile平台,CameraCapture的Preview的问题

发表于 2011-12-19 最后回复 2011-12-24

[散分]光棍节散分

发表于 2011-11-11 最后回复 2011-11-11

[活动]兔子党上线后的官方名投票结果

发表于 2011-09-09 最后回复 2011-11-04

[散分]国庆了,散个分

发表于 2011-09-30 最后回复 2011-10-02

[散分]散分了,没有可用分的童鞋要注意了。。。

发表于 2011-09-07 最后回复 2011-09-10

[散分]散分,不说什么了,你懂的(三)

发表于 2011-09-09 最后回复 2011-09-10

[散分]离职了,散分,不说什么了,你懂的(二)

发表于 2011-09-07 最后回复 2011-09-09

[散分]离职了,散分,不说什么了,你懂的(三)

发表于 2011-09-08 最后回复 2011-09-08

[散分/活动]散分,没有可用分的童鞋请注意了...

发表于 2011-09-07 最后回复 2011-09-07

[散分]离职了,散分,不说什么了,你懂的

发表于 2011-09-06 最后回复 2011-09-07

[散分]散分,不说什么了你懂的。。。

发表于 2011-09-05 最后回复 2011-09-05

[散分]散分,不为别的。。。

发表于 2011-07-05 最后回复 2011-08-09

关于MTK平台下的开发?

发表于 2008-04-30 最后回复 2011-06-30

[散分]"精彩生活"贴兔子党2人上榜

发表于 2011-05-23 最后回复 2011-06-01

[散分]散分,拉票散分~

发表于 2011-05-13 最后回复 2011-05-17

[散分] 五一节快乐!

发表于 2011-04-29 最后回复 2011-05-03

[散分]散分,不说什么了~

发表于 2011-04-19 最后回复 2011-04-19

[散分]明天回家,散分

发表于 2011-01-30 最后回复 2011-03-05

[散分]要过年了,散分

发表于 2011-01-28 最后回复 2011-02-14

[散分] 年前散分

发表于 2011-01-20 最后回复 2011-02-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除