12 Eleven

尚未进行身份认证

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

等级
TA的排名 9k+

监控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

删除最近几天的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

获取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 <= 0) || (NULL == lpszExecut...

2018-06-08 10:28:04

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

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

2018-06-06 16:55:53

登录系统以后,在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

应用程序版本号比对

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

2018-05-03 22:24:12

Win32 Dialog对话框处理WM_KEYDOWN事件

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

2014-12-10 13:22:22

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

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

2014-09-22 10:57:43

动态调整对话框属性(去掉标题栏,去掉边框,修改类似成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

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

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

字符串编码之间的转换(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

_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

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

// 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

一个简单的以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

一个简单的将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

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

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

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

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

// 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

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

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

2012-02-27 10:33:16

查看更多

CSDN身份
  • 论坛版主
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 微软mvp
    微软mvp
    授予通过CSDN博客平台积极分享微软相关技术知识和专业技能,并做出突出贡献的用户。
  • 红花
    红花
    子板块内专家分月排名榜第一
  • 黄花
    黄花
    子板块内专家分月排名榜第二
  • 蓝花
    蓝花
    子板块内专家分月排名榜第三
  • 金牌
    金牌
    总榜技术专家分月排行榜第一
  • 银牌
    银牌
    总榜技术专家分月排行榜第二
  • 铜牌
    铜牌
    总榜技术专家分月排行榜第三
  • 探花
    探花
    总榜技术专家分年内排名榜第三
  • 进士
    进士
    总榜技术专家分年内排名榜第四
  • 名人
    名人
    名人称号
  • 优秀版主
    优秀版主
    优秀小版主