【Win32】
文章平均质量分 90
encoderlee
十年码龄,专注于Web爬虫、区块链、逆向工程、游戏脚本、自动化、后端开发。如需联系我,关注公众号【挨踢老李】获取联系方式
展开
-
MFC程序运行时注册自身所需要的COM组件
我们可以在网上找到很多开发好的COM组件,这些组件提供了接口,我们可以对其进行二次开发,比如mp3play.ocx,通过这个控件,我们可以简单快速开发出自己的MP3播放器,COM组件可以是.ocx后缀,也可以是.dll后缀。熟悉VB开发的同志们对这些控件应该很熟悉吧。这些控件不仅可以用在VB中,同样可以用在VC等开发环境中。在使用该控件时应该保证该电脑上已经注册了该控件。通常,我们都是通过安装原创 2012-12-27 19:23:44 · 3686 阅读 · 1 评论 -
WebBrowser无法显示招商银行密码输入控件的问题
之前就看到CSDN论坛上有人提问,自己写的程序中的WebBrowser打开招商银行的登录页面后(https://pbnj.ebank.cmbchina.com/CmbBank_GenShell/UI/GenShellPC/Login/Login.aspx),无法显示密码输入控件,但是在IE中可以正常显示。不卖关子,先把解决方法告诉大家,相信有不少人在头疼这个问题。先把你手头的问题解决了,如果有兴趣再继续往下看解决这个问题的过程。1.如果你的程序是VC6.0、VC2003、VC2005写的,应该什么都不用原创 2014-06-13 13:53:45 · 14994 阅读 · 6 评论 -
CreateProcess的前两个参数究竟怎么用
CreateProcess是Windows下用于创建进程的API函数,其第一个参数为lpApplicationName,从字面意思上看应该是一个可执行文件的名字,第二个参数为lpCommandLine,从字面意思上看应该是一个启动进程时传给程序的命令行。实际上并没有想象中的那么简单,MSDN上关于该API的这两个参数的说明,长达两屏幕。何耐这些说明都是纯英文的,包括我在内的很多程序员英文都不好,一原创 2015-02-26 22:58:57 · 7613 阅读 · 1 评论 -
VC与JavaScript交互(三) ———— JS调用C++
太监的原因: 时隔两年,VC与JavaScript交互系列的最后一篇关于JavaScript如何调用c++的文章终于出炉了。为什么会隔了那么久?因为本来打算太监的,可是看到热情的网友们的眼神,从期望变成了失望,在我的心里激起了层层波澜。两年后的今天,还是坚持把它写了出来。其实当时刚写完VC与JavaScript交互(二)的时候,参考网上的资料,已经把JavaScript调用c++原创 2016-03-26 14:06:37 · 26553 阅读 · 23 评论 -
VC与JavaScript交互(一) ———— 如何实现
为什么要让VC与JavaScript交互?在Windows平台上用VC开发的程序,如何与JavaScript交互?关于WebBrowser:关于IDispatch:说了这么多COM对象,和VC调用JS有什么关系?原创 2014-01-18 15:35:26 · 25909 阅读 · 7 评论 -
VC与JavaScript交互(二) ———— 调用JS函数
VC调用无参JS函数VC调用有参JS函数VC传递数据给JS函数JS函数返回一个值给VCJS函数返回多个值给VC原创 2014-01-18 15:35:48 · 22770 阅读 · 40 评论 -
C++处理UTF8编码的字符串
在windows下打开一个记事本,保存文件,下面有四种编码选择:①ANSI,也就是多字节字符集,在中文系统下约等于GB2312。②Unicode,就是UTF16 LE,小端序存储的UTF16。③Unicode big endian ,就是UTF16 BE,大端序存储的UTF16。④UTF8,网页上很多都是用UTF8,UTF8用1-4个字节来编码所有的字符,英文只需要1个 字节,中文原创 2013-03-26 21:57:50 · 27340 阅读 · 1 评论 -
Windows程序奔溃后,禁止弹出“停止工作”对话框
在Win7及以后的系统中,如果一个程序发生了奔溃,系统会弹出一个“XX已停止工作”的对话框,如果不去这个窗口上点击“关闭程序”,那么这个窗口会一直存在,最为关键的是,奔溃的进程并没有真正结束,还一直挂起在那里。这在自动化无人值守程序开发中是不允许的,有时候有的程序只能运行一个示例,如果奔溃的这个进程一直没有真正结束,新进程就无法启动。一开始我们想到的解决方案是去模拟点击这个“XX已停止工作”的对话原创 2016-12-29 00:10:34 · 19638 阅读 · 5 评论 -
用游戏外挂的方式修复有道云笔记的BUG
由爱到痛有道云笔记是个好东西,在认识它之前,我一直使用Windows记事本来保存网上摘抄的文档资料和学习心得体会。某天朋友推荐了有道云笔记,我安装后就不可收拾的爱上了它。那种感觉,就好比一夜之间手扶拖拉机换成了奥迪Q7,从此驶上了码字界的康庄大道。可就在我对它的爱如火如荼的进行中时,一件痛心疾首的事情发生了。宋体,是我钟爱的字体,而有道云笔记钟爱的字体则是微软雅黑。就是那么一个兴趣爱好的不同,使我们原创 2017-04-22 08:12:30 · 5544 阅读 · 9 评论 -
Windows抓包指南①:Proxifier+Fiddler对第三方程序强制抓包
HOW & WHY如果只看标题,类似的文章在网上已经一搜一大把了,关于Fiddler抓包的文章不计其数,但大多只告诉你How,没有告诉你Why。HTTPS不是加密的吗,为什么Fiddler还能抓到包?我按照网上的文章使用Fiddler抓包,为什么有的程序抓得到,有的程序抓不到?有的程序可以抓到,但是似乎只能抓到一部分,关键的HTTP请求都没有抓到,这是怎么回事?我们该怎么办?本文尽可能的...原创 2019-05-21 02:12:12 · 9342 阅读 · 7 评论 -
将数组中的RGBA序列绘制出来——GDI、MFC_GDI、GDI+实现
如果你有一个字节数组,里面存放着R/G/B/A颜色值序列,如何将它所表示的图片绘制在窗口上呢?之前在论坛上看到有人提了这么一个问题:http://bbs.csdn.net/topics/390663627这个用GDI、MFC封装的GDI、GDI+均可实现。不过要注意的是GDI不支持透明通道A,透明通道A的值读进去以后不起作用。欲支持透明通道,应使用GDI+实现。GDI实现://原创 2013-12-10 13:03:29 · 4474 阅读 · 0 评论 -
WindowsAPI “奇葩”的函数传参方式
前段时间使用windows SDK中的wininet写http客户端。遇到了一些个”奇葩”的API函数,InternetSetOption和InternetQueryOption。看看MSDN上这两个API的函数原型:BOOL InternetSetOption( _In_ HINTERNET hInternet, _In_ DWORD dwOption, _In_ L原创 2013-08-01 19:34:17 · 9558 阅读 · 3 评论 -
winSDK编程与MFC编程的区别
可以发现MFC的很多成员函数除了和API函数名字几乎相同之外,有个不同之处就是MFC的函数不需要句柄这个参数,它用对象指针代替了句柄。一开始我还以为这样的话MFC就只能操作它自己本身的东西,不能操作它外部其它程序的东西,因为要操作其它程序的窗口的话需要用到其它程序的窗口的句柄,而MFC的函数不需要句柄作参数。比如winSDK编程,可以用FindWindow函数获取IE浏览器的句柄,然后用SendM原创 2013-01-23 13:18:45 · 4550 阅读 · 0 评论 -
windows消息机制的有趣发现(二)
3.一个有窗口和窗口过程函数但没有消息循环的程序一个程序,如果我们创建了窗口,也定义了窗口过程函数,但是没有建立消息循环会怎样呢?我们在win32控制台项目下编写如下代码:#include #define WM_TEST 10000LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); void main(){ static原创 2013-04-01 19:59:37 · 2976 阅读 · 1 评论 -
windows消息机制的有趣发现(一)
最近琢磨windows的消息机制,发现一些有趣的地方,可能是对的,也可能是错的,分享出来让大家评判评判。1:每个线程都有消息队列不仅仅是有窗口的线程,没有窗口的线程也有消息队列!编写一个win32控制台程序,代码如下:#includevoid main(){ DWORD dwThread = GetCurrentThreadId(); ::PostThreadMessa原创 2013-04-01 19:28:32 · 2779 阅读 · 1 评论 -
GDI绘图中的映射模式CDC::SetMapMode()
在GDI绘图前,一般要设置映射模式。映射模式是什么呢?它是逻辑长度单位与实际长度单位的一中转换关系,比如我要画一个长为800单位,宽为600单位的矩形,那么在不同的映射模式下,一个单位可能相当于一个像素,也可能相当于一毫米,也可能相当于一微米。也就是说在有的映射模式下,我们指定的800单位的长度相当于800像素,在有的映射模式下,我们指定的800单位的长度相当于800毫米,等等…..我们来看一原创 2012-12-06 13:27:03 · 5915 阅读 · 1 评论 -
解析SendMessage和PostMessage的区别
从MSDN上的说明来看,PostMessage将消息寄送到目标消息队列后立即返回。所以返回值是布尔型,只有成功和不成功。而SendMessage把消息寄送过去以后,要等目标窗口的窗口过程函数处理完,return一个值以后才返回。怎么理解呢。这样来说把,有AB两个线程,B线程是UI线程,有一个窗口。A线程用SendMessage给B线程的窗口发送了一个消息,B线程接收到消息后调用对应的窗口过程函数来原创 2013-03-24 14:57:35 · 2346 阅读 · 0 评论 -
MFC通过URL下载并保存文件代码
我们知道,windows有关网络连接的API在wininet.h里,而在MFC里,这些API被封装成了类。CInternetSession类:直接继承自CObject类,该类用来建立与某个Internet服务器的会话CInternetConnection类:帮助用户管理与Internet服务器的连接,同时还提供一些函数完成和响应服务器的通信CInternetConnection类又派生原创 2013-03-12 23:32:22 · 11242 阅读 · 9 评论 -
MFC递归搜索文件函数代码
自己写了一个MFC下的搜索文件的函数,递归遍历各级子目录搜索,对大小写不敏感。递归是个好东西啊,用递归写出来的东西往往代码简短,但不容易理解,并且容易出错,要多加注意。此函数毕竟只是个代码不足30行的小东西。目前存在缺点:不支持通配符*?等。后续将改进。 调用示例:CStringArray aStrFile; int i = CFindFile(_T("D:\\"),_T("qq.原创 2013-03-08 00:35:24 · 4343 阅读 · 0 评论 -
Hello Win32 之疯狂注释版
回想刚刚学习WIN32编程的时候,打开《windows程序设计》这本书,书中给的第一段代码就是一个Hello Win32的小程序。看得我头大,书中讲解的很详细,几乎每行代码都给了解释。但解释归解释,我一行一行的琢磨这些代码,还是不知道它们是什么意思。于是我把代码一行一行的敲到了编译器里,并找着书上的讲解,给每行代码都标上了长长的、详细的注释。尽管有的注释写上去后我还是不懂,但总算完成了这个Hell原创 2013-05-31 19:35:14 · 2076 阅读 · 1 评论 -
Hello MFC 之疯狂注释版
回想刚刚学习MFC编程的时候,打开《MFC windows程序设计》这本书,书中给的第一段代码就是一个Hello MFC的小程序。看得我头大,书中讲解的很详细,几乎每行代码都给了解释。但解释归解释,我一行一行的琢磨这些代码,还是不知道它们是什么意思。于是我把代码一行一行的敲到了编译器里,并找着书上的讲解,给每行代码都标上了长长的、详细的注释。尽管有的注释写上去后我还是不懂,但总算完成了这个Hell原创 2013-05-31 19:47:37 · 2416 阅读 · 1 评论 -
Windows抓包指南②:Fiddler抓不到的包是怎么回事?
抓不住的HTTPS包Windows程序抓包(一):Proxifier+Fiddler强制对第三方程序抓包分析HTTP/HTTPS通信内容回顾上一篇文章,我们使用Proxifier将第三方程序的所有TCP流量导向Fiddler的HTTPS代理,于是Fiddler便可以解析HTTP/HTTPS协议的通信内容,倒是在实际使用过程中,我们会发现HTTP请求解析没有问题,但是有的第三方程序,无法解析其H...原创 2019-05-23 20:00:11 · 22585 阅读 · 4 评论