
MFC/C++
MFC/C++
Greless
这个作者很懒,什么都没留下…
展开
-
Windows上的高DPI桌面应用程序开发
MSDN:Windows上的高DPI桌面应用程序开发DPI Unaware(DPI未知)1. 始终以96DPI显示,运行状态DPI改变不会模糊,DPI改变重新运行模糊System DPI Awareness(系统DPI意识)1.运行状态,DPI改变模糊,重新运行不会模糊且以当前新DPI显示Per-Monitor and Per-Monitor (V2) DPI Awareness(每个监视器和每个监视器(V2)DPI意识)1.DPI改变始终以最初运行DPI显示,重新运行不会模糊且以当.原创 2020-10-22 19:45:02 · 784 阅读 · 0 评论 -
c++获取系统代理信息
一、注册表方式BOOL GetProxyServer(OUT LPSTR lpHostName_, OUT int& nport_){ DWORD _dwProxyEnable = 0; QKPlugin_GetRegistryDw(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), _T("ProxyEnable"), _dwProxyEnable);原创 2020-10-12 17:33:32 · 4483 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号
右键-项目-添加现有项原创 2020-08-28 16:12:57 · 235 阅读 · 0 评论 -
获取运行中的Word,excel对象
参考 获取运行中的Word对象:https://blog.youkuaiyun.com/seker_2006/article/details/1335702PPT在CreateDispatch _T("Word.Application")可以直接使用获取当前文档,word和excel不能获取当前激活文档,需要采用以下两种方式。1.使用AccessibleObjectFromWindow func...原创 2020-08-13 16:08:24 · 696 阅读 · 0 评论 -
系统字体总结
计算机\HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\M原创 2020-08-11 16:05:06 · 1786 阅读 · 0 评论 -
像素比对 - 类似找茬游戏
///* 当前获得当前文件夹下同等大小图片,比对像素,如果不一样就为空,一样就保留。类似找茬游戏*/#include "pch.h"#include <iostream>#include<atlimage.h>#include<vector> #include <direct.h>#pragma warning (disable : 4996)#include <iostream>#include <fstr...原创 2020-06-05 11:08:43 · 310 阅读 · 0 评论 -
重启程序
三种方法记录:1.OnDestroy消息,(最好的方法)void CMFCApplication9Dlg::OnDestroy(){ CDialogEx::OnDestroy(); int _nRestart = GetPrivateProfileInt(_T("App"),_T("Restart"),NULL,_T("c:\\1.ini")); if(_nRe...原创 2020-04-23 17:59:08 · 466 阅读 · 0 评论 -
fopen ,cstdioFile,ifstream速率
// TODO: 在此添加控件通知处理程序代码 CString lpszFilePath= _T("C:\\cn.txt"); if (!PathFileExists(lpszFilePath)) return; __int64 nRows = 0, nRows1 = 0, nRows2=0, nRows3 = 0; FILE *fp; int nLen =...原创 2019-12-25 12:37:02 · 406 阅读 · 0 评论 -
com 相关说明
1. 金山WPS 的try catch捕获能力弱,所以增加m_lpDispatch判断!!! 不过也是在容易出错的地方增加。2.打开一个文档,在获取这个文档实例的时候需要相应的权限。 如果你是管理员打开的ppt文件,那么程序运行也需要管理员权限。3.word,excel(通WPS文档,表格)采用InitGetQueryAPP才能获得激活程序实例,InitCreateApp不...原创 2019-11-27 17:09:05 · 563 阅读 · 0 评论 -
VC INI文件实现多语言版本
参考:VC开发多语言界面 多种方法(很简单) 有源码VC2008以资源形式实现多语言版本VC++通过INI配置文件,实现多国语言切换界面方法一:通过控件ID设置,快速但缺少标题栏,单独设置 CWnd *pCtrl = GetWindow(GW_CHILD); while (pCtrl != NULL) { UINT ctrlID = pC原创 2017-06-12 15:05:14 · 1294 阅读 · 0 评论 -
C/C++生成错误-连接器工具错误
链接器工具错误和警告原创 2017-08-09 08:47:47 · 1298 阅读 · 0 评论 -
C++实现系统补丁查询-systeminfo系统命令查询补丁信息,c++从文件中查找特定的字符串
1.VS2015编码为unicode,fopen打开文件也应该是Unicode文件,才能从文件中查找特定的字符串2.系统命令systeminfo保存为Unicode文件systeminfo.batpowershell -c "systeminfo | Out-File -Encoding unicode systeminfo.txt"或者powershell -c "Set-C原创 2017-03-31 15:44:19 · 4700 阅读 · 0 评论 -
WUA 系统更新补丁获取
Windows自动更新API(1)使用windows update API 获取补丁更新情况列表1.systeminfo 命令ANSI:systeminfo.exe >systeminfo.txtUNICODE:systeminfo.batpowershell -c "systeminfo | Out-File -Encoding unicode s原创 2017-08-01 10:14:00 · 4551 阅读 · 0 评论 -
注册表获取系统驱动版本信息
MSDN设备GUID定义:System-Defined Device Setup Classes Available to Vendors一、设备GUID位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class Battery DevicesClass = BatteryClassGuid = {72631原创 2017-06-05 15:34:24 · 7939 阅读 · 0 评论 -
遍历注册表得到所有USB驱动
遍历注册表得到所有USB驱动,并对比是否存在指定驱动,这是为了解决USB驱动重复安装会导致鼠标键盘不可用问题,存在跟驱动包相同的版本,则不安装// bios.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//#include "windows.h"#pragma warning(disable:4996)#pragma comment原创 2017-07-31 16:18:03 · 1423 阅读 · 1 评论 -
Axialis IconWorkshop图标制作软件一次性制作多个尺寸图标ico
图标制作软件:IconWorkshop根据缩放比例,系统会自动选择适当大小的图标。所以一个ico格式图标包含有多个尺寸的图片,才能保证程序显示会自动选择合适的图标 IconWorkshop制作多个尺寸ico图标 1. 首先我们在Axialis IconWorkshop当中建立一个windows图标项目,具体新建方法有好几种,可以在“新建”选项中选择,也可以直接点击提示面板中原创 2017-07-20 19:23:42 · 10290 阅读 · 1 评论 -
鼠标光标更改总结
1.从文件加载光标图标HCURSOR hcur = ::LoadCursorFromFile(_T("Excalibur.cur"));//加载光标 ::SetClassLong(GetSafeHwnd(), GCL_HCURSOR, (LONG)hcur); return true;2.从资源加载光标HCURSOR hCur = LoadCursor(AfxGe原创 2017-07-14 15:06:27 · 1460 阅读 · 0 评论 -
对话框背景图六种方法-PictureEx类实现对话框背景图和xSkinButton类实现按钮样式
PictureEx类下载1.声明CPictureEx m_BG;2.定义OnInitDialog()函数加入m_BG.Load(_T("res\\Main_background.bmp")); m_BG.Draw();3.改变Picture control Tab顺序为1原创 2017-03-14 10:56:59 · 1616 阅读 · 0 评论 -
RS485串口调试案例(带CRC校检)
淘宝某款三合一光照温湿度传感器 实现RS485串口通信一、说明书关于通信协议的介绍 二、案例讲解写个上位机来实现数据收发过程,界面设计如下1、温湿度检测我们在问询帧里发送010300000002,返回01030401BE011C9BB2返回的数据解释:01:设备地址03:modbus_RTU通讯协议里是读取寄存器的意思04:返回的四个字节数,湿度2byte+温度2byte01BE:0x01BE=...原创 2018-05-17 09:50:37 · 29735 阅读 · 11 评论 -
软件点击没反应的问题occont.cpp
Release版本软件移植到其他电脑没反应,debug版本发现是这是由于ActiveX控件没注册引起的,在运行电脑注册下就好了 ,比如我用了串口控件,regsvr32 mscomm32.ocx...原创 2018-05-11 18:13:59 · 1258 阅读 · 1 评论 -
Microsoft Visual Studio 2017 初体验
微软下载:Microsoft Visual Studio 20171.安装界面原创 2017-03-09 14:34:05 · 1436 阅读 · 0 评论 -
c++ 修改系统默认字体
警告:这个很危险,当然,可以百度恢复。LOGFONT lf;lstrcpy(lf.lfFaceName,_T("宋体");HFONT HFONThFontNew = CreateFontIndirect(&lf); SystemParametersInfo(SPI_GETICONTITLELOGFONT,sizeof(LOGFONT),&lf,SPIF_SENDCH...原创 2018-11-28 10:52:41 · 3005 阅读 · 1 评论 -
CInternetSession 不能连接到吊销服务器,或者未能获得最终响应
方法1、这是由于系统时间不是当前真实时间引起的,时间只能往前调不能往后调,同步下Internet时间即可方法2、关闭IE 的“检查服务器证书是否已吊销”...原创 2018-11-05 11:36:30 · 10155 阅读 · 4 评论 -
附加进程 - SetForegroundWindow(激活窗口至前端)
SetForegroundWindow函数将创建指定的窗口,并激活到前台窗口的线程 。键盘输入窗口,并为用户更改不同的视觉线索。该系统分配一个优先略高前景的窗口,比它其他线程创建的线程。语法BOOL SetForegroundWindow( HWND HWND );参数HWND[in]应该被激活,并带到前景的窗口句柄。返回值如果窗口被带到前台,返回值为非零。如果窗口...原创 2018-10-30 15:06:32 · 5865 阅读 · 0 评论 -
获得菜单项目名称
while(true) { char _szClassName[128] = {NULL}; POINT _ptPos; GetCursorPos(&_ptPos); HWND _hWndCurrent = WindowFromPoint(_ptPos); GetClassNameA(_hWndCurrent, _szClassName, sizeof(_szCl...原创 2018-10-18 11:12:31 · 1075 阅读 · 0 评论 -
ClearType检索方法
// ClearTypeTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<Windows.h>#include <ios>#pragma comment(lib,"USER32.lib")#pragma comment(lib,"Gdi32.lib")int _tmain(int argc, ...原创 2018-09-13 11:58:44 · 548 阅读 · 0 评论 -
设置输入法
TCHAR _szKBName[MAX_PATH]; GetKeyboardLayoutName( _szKBName);//获取当前输入法KLID,该名称是由语言标识符(低位字)的十六进制值和设备标识符(高位字)组成的字符串 printf("GetKeyboardLayoutName:%s\n",_szKBName); HKL hkl= LoadKeyboardLayout...原创 2018-09-07 19:02:48 · 732 阅读 · 4 评论 -
InstallShield vs2015 的安装与激活
当时看了网上一些关于激活的方法,居然需要VPN,翻墙啥的 ,我一脸懵逼,后来自己试了试,完全不用啊首先,你需要原创 2018-05-15 17:18:38 · 16054 阅读 · 11 评论 -
实现mscomm32.ocx自动注册的程序(ActiveX控件注册/注销/检测 )
一、参考资料在MFC程序中如何注册/注销/检测ActiveX控件(.OCX)查看ocx控件CLSID的方法二、详细介绍1.新建MFC程序,并增加管理员权限,控件注册需要管理员权限,否则会打开DllRegisterServer失败。2、注册控件void CMFCApplication1Dlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 //装载...原创 2018-05-12 13:21:54 · 4001 阅读 · 0 评论 -
逻辑驱动器个数和盘符获取GetLogicalDrives和GetLogicalDriverStrings
获取逻辑驱动器有两个函数GetLogicalDrives和GetLogicalDriverStringsMSDN:GetLogicalDrives函数介绍MSDN :GetLogicalDriverStrings函数介绍一、盘符和标卷的获取 GetLogicalDriverStrings// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。原创 2017-06-22 14:33:37 · 5928 阅读 · 0 评论 -
VC获取系统临时文件夹temp
MSDN:创建和使用一个临时文件一、介绍系统临时文件夹可用%tmp%或者%temp%查看,路径为C:\Users\pc\AppData\Local\Temp获取临时文件夹路径GetTempPath, GetTempFileName获取临时文件夹下文件名二、案例这个应用程序打开一个文件指定的用户,并使用一个临时文件将文件转换为大写字母。注意,给定的源文件被认为是一个ASCII文本原创 2017-06-09 11:02:19 · 11160 阅读 · 0 评论 -
使用WinInet获取网页
参考: 使用WinInet实现http协议1.VS2015 ANSI#include "stdafx.h"//GET 方法#include #include #include #pragma comment(lib, "WinInet.lib") int main(){ HINTERNET hInternet = InternetOpen("Testing", INTER原创 2017-05-23 17:43:02 · 616 阅读 · 0 评论 -
WaitForMultipleObject与MsgWaitForMultipleObjects用法
来源:http://www.cnblogs.com/shangdawei/p/4015772.htmlhttp://blog.youkuaiyun.com/byxdaz/article/details/5638680用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程转载 2017-05-23 13:50:37 · 1326 阅读 · 0 评论 -
IAudioEndpointVolume编程调节Win7/Win8系统音量的一种方法
来源:http://www.cnblogs.com/memset/p/SetWindowsMasterVolume.html?utm_source=tuicool&utm_medium=referral#include #include #include #include //参数:// -2 恢复静音// -1 静音// 0~100:音量比例bool转载 2017-04-12 15:58:21 · 3100 阅读 · 1 评论 -
MultiByteToWideChar&WideCharToMultiByte 函数介绍
// unicode.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include //------------------------------------------------------------------------------------- //Description: // This function maps a chara原创 2017-03-31 15:35:08 · 877 阅读 · 0 评论 -
MFC 主界面函数中线程等待避免界面卡死函数封装
// thread.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <afxwin.h>//#include "afxcmn.h"unsigned int __stdcall ThreadProc_Chipset(LPVOID lpParameter){ printf("this is Thead"); s...原创 2017-03-30 09:02:52 · 2687 阅读 · 0 评论 -
C++ 复制文件到C:\windows\system32\失败问题
程序是32位的,在64位系统下,所有对system32的操作都会被转向syswow6464位系统下文件重定向和注册表重定向Wow64EnableWow64FsRedirection function if( Wow64EnableWow64FsRedirection(FALSE) ) { // Any function calls in this block of原创 2017-03-22 15:42:12 · 5822 阅读 · 0 评论 -
【VS2015】c++实现windows系统版本、类型、语言识别
一、VS2015 新建项目->win32 控制台应用程序以下操作实现跨平台(1).配置属性-常规-MFC的使用->使用标准Windows库或者在静态库中使用MFC(2).配置属性-c/c++-代码生成-运行库->多线程(/MT)二.头文件1.stdafx.h// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目原创 2016-09-30 13:20:57 · 5928 阅读 · 0 评论 -
通过Doevent()方式 主线程安全关闭子线程
参考http://blog.youkuaiyun.com/lwbeyond/article/details/56861651. 主线程定义HANDLE hEvent;2,主线程新建线程UINT MyThread(LPVOID pParam){ CMFCApplication2Dlg *pDlg = (CMFCApplication2Dlg*)pParam; CProgressCtrl原创 2017-03-02 18:48:44 · 720 阅读 · 0 评论 -
CRect类 实现点击控件跳转网页
鼠标左键点击静态框跳转网页baidu.com1.IDC_STATIC1控件添加变量m_static2.添加消息处理函数void CMFCApplication1Dlg::OnLButtonDown(UINT nFlags, CPoint point)3.消息处理函数代码void CMFCApplication1Dlg::OnLButtonDown(UINT nFlags,原创 2017-02-17 15:40:39 · 528 阅读 · 0 评论