- 博客(179)
- 资源 (7)
- 收藏
- 关注

原创 注册表添加策略方法及实现,添加桌面右键菜单
Windows Registry Editor Version 5.00//////////////////////注册表添加协议方法///////////////////////////[HKEY_CLASSES_ROOT\destoplancher]@="destoplancher Protocol""URL Protocol"=""[HKEY_CLASSES_ROOT\dest
2017-12-21 10:02:15
564

原创 使用ICON动态修改exe文件图标
前言:这两天为exe文件做一个随机图标的功能,要求每次运行后图标都动态改变,在网上找了很多代码,都有一部分缺陷,参考了一些文档后进行了修改,现在在此进行总结:一个icon资源(可以是*.ico文件,也可以是windows资源节区里的icon group),可以包含多张图片。这些图片有着各自的size或者颜色深度,这些图片可以是bmp格式或者png格式(vista之后支持,一般256*256时使
2017-09-29 16:42:04
6134
原创 (转)同一客户端下使用多个 Git 账户
:转自:同一客户端下使用多个 Git 账户_tortoisegit 多账号_MurphyZhao的博客-优快云博客
2023-04-13 14:40:34
461
原创 VC 使用MSXML2创建SVG文档中的新结点时出现xmlns="" 属性解决方法
博文借鉴:https://blog.youkuaiyun.com/lujunql/article/details/6989571https://www.cnblogs.com/mq0036/p/3564955.html由于最近有需求需要把素材下载到P2介质中,相关的xml文件需要自己写入,在写入xml时遇到了根结点下第一个子结点会自动添加xmlns=""属性。上网一查才发现是MXSML原本存在...
2019-08-16 14:32:48
718
原创 VS添加数据断点-用于监控某个地址数据变化
作用:调试时如果不知道打断点的位置,可以对某个变量的地址进行监控,使用数据断点来监控这个地址内数据变化使用方法:1.Ctrl+Alt+B 打开断点窗口,点击左上角New Data BreakPoint添加地址断点2.如果是全局变量,或者同一类的变量被多次调用,则需要同时打多个数据断点用于监控多端对这个变量修改的行为3.如果要监控int m_a变量,则添加的方式是&m_a,或...
2019-05-14 17:27:55
5481
转载 win7消息放行或消息移除 - ChangeWindowMessageFilter
调用ChangeWindowMessageFilter函数,放行WM_DROPFILES消息和WM_COPYGLOBALDATA消息,以解决Win7系统中文件拖放失效的问题由于Win7的安全机制,导致与文件拖放的WM_DROPFILES消息和WM_COPYGLOBALDATA消息被系统拦截了,从而导致了文件拖放失效的问题。解决问题的办法就是,调用ChangeWindowMessag...
2018-08-15 20:42:49
3842
翻译 TCP之 Event select模型
前记:select模型主要用于解决传统tcp通信线程过多的问题,而EventSelect模型则用于解决select模型的效率问题,因为select模型的内部是使用Sleep函数来阻塞线程,然后消耗系统时间片,从而降低了效率,而event select模型则使用WSAEVENT的通知机制。服务端:// 20180527_socket.cpp : 定义控制台应用程序的入口点。//#include...
2018-07-04 17:40:07
1032
原创 TCP之 select模型
前记:select模型主要用于解决tcp通信中,每次处理一个独立的客户都要单独的开线程,这样会导致客户连接数很大时,线程数也会很多。服务端:#include "stdafx.h"#include <stdio.h>#include <WinSock2.h>//必须放在windows.h前面#include <Windows.h>#include <...
2018-07-04 17:39:51
3836
原创 Dll高级技术之【延迟加载】
【DLL的隐式加载】:1.在Lib中包含导入库MyLib.lib2.cpp中包含头文件MyLib.h3.运行目录里面包含MyLib.dll【DLL的显式加载】:1.运行目录里面包含MyLib.dll2.LoadLibrary及GetProcAddress【DLL的延迟加载】:1.需要DLL,MyLib.lib导入库及MyLib.h 进行【隐式加载】的全步骤3.属性->配置属...
2018-05-30 17:19:28
4685
2
转载 解决番茄插件visual assist x 不能安装的问题
因为之前使用过破解版的visual assist x问题,导致安装新的visual assist x一直失败。方法:1.卸载visual assist2.删除HKEY_CURRENT_USER/SOFTWARE/WHOLE TOMATO项3.百度搜索Trial reset并下载4.右键管理员打开trial-reset, 点击左边第三项(armadillo)向下箭头,选择扫描。5.扫描完成后,再选择...
2018-05-02 09:25:18
7856
1
原创 c++删除字符串特殊符号
std::string RemoveSpcSymbol(std::string strSource)//删除符号{ char *str = strSource.c_str(); char buf[MAX_PATH] = { 0 }; int j = 0; for (int i = 0; i < strlen(str); i++) { if (str[i] > 0 &a...
2018-04-17 16:36:54
6681
原创 近期汇总:锁定任务栏 - 托盘图标重载 - 获取win10系统版本号
//1. 锁定任务栏并置灰BOOL LockTaskBar(){ BOOL bSuc = FALSE; DWORD dwDisposition = REG_CREATED_NEW_KEY; HKEY hCheckKey; //勾选 锁定任务栏(不能先置灰再勾选) if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER, "Softw...
2018-03-15 16:00:07
677
转载 创建快捷方式到桌面、任务栏、开始菜单、快速启动栏、程序组中
//得到快速启动栏的路径 BOOL GetIEQuickLaunchPath(WCHAR *pszIEQueickLaunchPath){ LPITEMIDLIST ppidl; if (SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &ppidl) == S_OK) { BOOL flag = SHGetPathFromID
2017-12-01 16:35:46
2268
转载 jsoncpp中获取key的方法
首先,铺一下需求:$arr = array('key1'=>array('value1'),'key2'=>array('value2'),'key3'=>'value3');echo $json = json_encode($arr);输出的内容如下:{“key1″:["value1"],”key2″:["value2"],”key3″:”value3″}熟悉
2017-11-08 17:33:35
11824
5
转载 MFC中使用COM组件更改桌面壁纸或图标
需要包括的头文件方法如下所示:一、在 stdafx.h 文件中添加如下头文件:#pragma once#ifndef VC_EXTRALEAN#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料#endif#include "targetver.h"#define _ATL_CSTRING_EXPLICIT_CON
2017-10-26 15:42:43
705
原创 vc创建注册表协议,使用协议启动进程
下面是创建注册表协议的方法,及隐藏协议启动进程时的警告对话框#pragma once#include #include #include // 创建注册表项BOOL CreateSubkey(HKEY hKey, LPCWSTR lpszSubkey, HKEY& hResult){ DWORD dwDisposition = REG_CREATED_NEW_KEY; if
2017-10-24 15:45:17
541
转载 利用CLSID在WINDOWS桌面 创建系统图标
利用CLSID在Windows Explorer里创建像我的电脑那样的系统图标今天突然想到在桌面新建一些有功能的特殊图标* 玩玩。不懂什么意思?恶意软件的那些讨人厌的删不掉的桌面图标有印象吧?原理就是在CLSID里插项写数值,然后把ID放到注册表对应的NameSpace里面。恶意软件们玩剩的把戏,其实对于我们来说还是有用的。(自己脑补用处吧噗噗。。)首先要使用 Guidgen.
2017-10-23 14:32:03
1711
原创 Shell_NotifyIcon 修改托盘图标失败的问题
最近需要完成托盘图标闪烁的功能,但是一直没有达到效果,使用Shell_NotifyIcon 一直返回1460的错误。后面找了很多资料发现问题;NOTIFYICONDATA结构只能在NIM_ADD里面定义一次,多次定义会导致修改托盘图标失败。NOTIFYICONDATA m_nc;//定义在全局,只定义一次void CFrameWnd::AddToTray(){ m_nc.cbSiz
2017-08-29 10:56:01
2628
原创 vc下文件下载的两种方法
文章中有使用到libcurl相关文件,请自行到官网下载编译后导入使用:下面示例仅供参考#include "stdafx.h" #include #include #include #include "curl/curl.h"#include "resource.h" #include #include #include "HttpClient.h"#include #
2017-08-18 11:52:00
1917
1
原创 PE文件结构详解
PE文件结构详解:1.PE文件时windows下可执行文件的总称,常见的包括OCX,SYS,DLL,EXE等。 注意:一个文件是否是PE文件和后缀名无关。2.PE结构: |----------------| | DOS头 | |----------------| | |PE签名 | | NT头 |PE文件头| | |PE可选头| |----------------|
2017-08-08 18:14:13
1226
转载 PE文件 节表IMAGE_SECTION_HEADER的正确定位方法
网络上大部分资料对PE文件的节表的定位方式都是下面这样的1 (LPVOID)((BYTE *)a + ((PIMAGE_DOS_HEADER)a)->e_lfanew + SIZE_OF_NT_SIGNATURE + sizeof(IMAGE_FILE_HEADER) + sizeof(IMAGE_OPTIONAL_HEADER):其意思是这样的:为了在解释上面的代码之
2017-08-08 17:13:06
2845
原创 安全获取操作系统位数
// 安全的取得真实系统信息void SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo){ if (NULL == lpSystemInfo) return; typedef VOID(WINAPI *LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo); LPFN
2017-08-03 14:05:19
568
转载 替换桌面快捷方式图标
给桌面快捷方式替换图标#include #include bool ChangeLinkIcon(const CString &strLnkName, const CString &strIconPath){ if (strLnkName.IsEmpty() || strIconPath.IsEmpty()) { return false; } HRESULT hres;
2017-07-20 11:59:56
2045
转载 rdtsc指令,测量程序的运行速度
文章转载自:http://blog.chinaunix.net/uid-24774106-id-2779245.html最近发现了rdtsc指令,可以获取CPU指令周期数,喜出望外,wiki了下相关的知识,写了代码利用CPU周期来测量程序的运行时间。 rdtsc指令返回的是自开机始CPU的周期数,返回的是一个64位的值EDX:EAX(高32在EDX,低32位在EAX)。
2017-07-19 13:43:56
6741
1
原创 VS一直显示“正在从以下位置***加载符号”的解决办法
解决方法:进入VS---工具---选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,(可能还有删除下面的那个缓存)。然后就不会在调试时加载了!
2017-06-28 13:42:05
50584
29
转载 作业(Job)内核对象
Windows提供了一个作业(job)内核对象,它允许你将进程组合在一起并创建一个"沙箱"来限制进程能够做什么.最好将作业对象想象成一个进程容器.但是,即使作业中只包含一个进程,也是非常有用的,因为这样可以对进程施加平时不能施加的限制.1、CreateJobObject功能:创建一个新的作业内核对象(若该作业已经存在,则返回一个指向该作业的句柄)函数定义:HANDLE WI
2017-06-21 15:21:20
1308
转载 MFC学习——设置对话框的背景颜色及设置透明
转载自:http://blog.sina.com.cn/s/blog_673ccb5b01010uwr.html设置背景颜色: 我用了很多方法都不行,查了很多资料,现在说一下解决方案吧。 在XXXXXXDlg.头文件的protected:中加入CBrush m_brush; 在XXXXXXDlg.cpp文件中的OnInitDialog()初始化函数中加入画刷m_b
2017-05-04 10:50:24
7451
3
原创 进程同步之事件(Event)
事件做为内核对象,即可用户线程间同步,又可用于进程同步,下面的测试代码用于进程间同步,不清楚的同学请留言。A进程Demo:#include "stdafx.h"#include#include using namespace std;DWORD _stdcall ThreadFunc (_In_ LPVOID p){ int x=1; HANDLE pEvent = *(
2017-03-22 22:13:02
5296
转载 C++全局变量和静态变量的使用
参考:http://wrchen.blog.sohu.com/71617539.html(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。 那么,错误可能在两个地方产
2017-03-16 13:43:08
2087
原创 windows消息机制
参考自:http://blog.youkuaiyun.com/sshhbb/article/details/60761561.消息是windows系统发送给应用程序的一个通告,它告诉应用程序某个事件发生了,最终处理消息的是应用程序的窗口函数,如果不处理,系统会默认处理。2.从数据结构讲,消息是一个MSG的结构体,包含了消息的类型标识符和一些附加信息。typedef struct
2017-03-01 15:09:25
434
原创 冒泡排序、插入排序、快速排序的简单实现
#include "stdafx.h"#include #include using namespace std;//冒泡排序void BubbleSort(int *arr, int sz){ int iTemp = 0; for (int i = 0; i < sz; i++) { for (int j = sz-1; j > i; j-- ) { if (a
2017-02-21 14:58:24
512
原创 迭代器模式iterator
概念:Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。结构:Iterator(迭代器接口): 该类定义实现迭代功能的最小定义方法集,比如提供hasNext()和next()方法。ConcreteIterator(迭代器实现类):迭代器接口Iterator的实现类。可以根
2017-02-20 13:24:08
457
原创 策略模式Strategy
概念:行为模式之一,它对一系列的算法或实现进行封装,为所有算法或实现定义统一接口,并通过继承该抽象接口对所有的实现加以封装和实现,具体的实现选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法或各种实现的切换。结构:Strategy: 各种实现的抽象基类。ConcreteStrategy:各种实现的具体子类Context: 策略的外壳,或者说策略的
2017-02-20 11:57:44
318
原创 桥接模式bridge
概念:桥接模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,遵循开闭原则(类的改动通过增加代码来实现,而不是修改源代码),通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。接口实现:Client 使用者
2017-02-15 16:43:33
319
原创 观察者模式Observer
概念:观察者模式是一种行为模式,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。应用:1.侦听事件驱动程序设计中的外部事件2.侦听/监视某个对象的状态变化3.发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息
2017-02-15 12:02:44
289
原创 单例模式
定义:保证一个类,只有一个实例存在,同时提供可以对该类进行访问的全局方法。作用:一般用于:1.全局变量来共享资源 2.初始化全局socket等资源,这些资源往往只需要初始化一次3.在大规模系统中,为了节省对象创建的时间,用此模式来减少对象的创建时间等。实现方法:1.构造函数私有化2.提供一个全局的访问方法3.在类中定义一个静态指针,指向本类的
2017-02-15 11:52:18
284
原创 适配器模式
概念:Adapter模式也叫适配器模式,是构造型模式之一,通过Adapter模式可以改变已有类(或外部类)的接口形式。应用场景:是将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。实例:#include "stdafx.h"#include using namespace std;class C
2017-02-15 11:29:52
430
原创 GDI图像基本操作
GDI图像基本操作:借鉴自:http://blog.youkuaiyun.com/harvic880925/article/details/9129011实例:void CMFC_GDI_TESTDlg::OnLoadImg(){ // 基本变换 CDC* cdc = GetWindowDC(); Gdiplus::Graphics graphics(cdc->GetSafeHdc());
2017-01-18 11:58:59
1369
转载 std list/vector sort 自定义类的排序
转载自:http://blog.youkuaiyun.com/marising/article/details/4567531如下:三种方式都可以,如重写1、容器中是对象时,用操作符2、容器中是对象指针时,用()和比较函数排序都可以,比较函数参数是指针。3、list用成员方法sort4、vector用sort函数 [cpp] view
2017-01-17 11:20:14
1611
转载 C++/CLI与C#常用语法对比
转载自:http://www.cnblogs.com/areliang/archive/2011/11/16/2251573.html十分清晰的展示了版本2语言中设计的简洁和与原生语言的接近。值得参考: 描述C++/CLIC#创建引用类型的对象ReferenceType^ h = gcnew Referen
2016-12-02 16:44:01
1698
yzmcms-v6.2.zip
2021-09-09
deituiCMS-feilei-v4.5.zip
2021-09-09
ytqlt-v7.7.16.zip
2021-09-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人