- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 UI Automation Providers(UI自动化测试支持)
比MSAA更新一下,同样的MS提供。品质一还是有保证的。https://docs.microsoft.com/en-us/windows/win32/winauto/uiauto-providersoverview
2020-01-20 09:27:09
526
原创 WINDOWS API
1、判断原生窗口的滚动条是否显示BOOLbRet=::ShowScrollBar(GetSafeHwnd(),SB_HORZ,FALSE);//先隐藏掉SCROLLBARINFOsbInfo;ZeroMemory((void*)&sbInfo,sizeof(SCROLLBARINFO));sbInfo.cbSize=sizeof(SCROLLBARINFO);B...
2018-04-18 14:08:16
314
原创 好用的WINDOWS API
1、判断内存合法性,实现没办法的时候会用到的函数原型:BOOL IsBadReadPtr(CONST VOID *lp,UINT_PTR ucb);参数:lp 表示要检查的内存指针ucb 要检查的内存块的大小返回:如果调用进程有权限访问该内存,返回0否则,返回非0说明:该函数检查调用进程是否有读取指定内存的内容的权限,微软提供的32位操作系统下的API...
2018-03-26 16:48:51
207
原创 MFC实现拖拽
1、接收拖拽时,需求注册一下。拖放对象的接收。缺省情况下,一般的窗口是不能接收拖放对象的;要使窗口可以接收拖放对象,需要在窗口类定义中加入成员对象COleDropTarget,并在生成窗口时调用函数 COleDataTarget::Register()。详细说明:http://blog.youkuaiyun.com/kkkmmmjjjj/article/details/53515060...
2018-03-08 10:46:44
1184
原创 各种特殊内存填充的含义
* 0xABABABAB : Used by Microsoft's HeapAlloc() to mark "no man's land" guard bytes after allocated heap memory* 0xABADCAFE : A startup to this value to initialize all free memory to catch errant p
2017-12-10 20:48:38
499
原创 自动注册类厂 代码实现
struct CellCreateKey{ INT64 ddwColFlag; CellCreateKey(INT64 ddwColFlag) { this->ddwColFlag = ddwColFlag; } CellCreateKey(const CellCreateKey& oParam) {
2017-11-16 11:42:58
482
原创 vim好用的命令
1、匹配单词,如要匹配word1,word2\b(word1|word2)\b2、在vim中,\< beginning of a word |/zero-width|\> end of a word |/zero-wid3、非贪婪匹配提到使用“\{-}”来代替“*”4、替换与当前行号:%s/^/\=line('.').' '这是也是简...
2016-09-30 08:22:34
344
原创 windows批处理 命令
一、for 命令1)检索目录中的所有文件for %i in (c:/*.*) do (echo %i)2)逐行读文件内容for /f "delims=" %%i in (%cd%/test.bat) do echo %%i(注意:bat脚本中,用%%i, 而cmd窗口中用%i)详解可参考:http://blog.youkuaiyun.com/xhhjin/article/details
2016-01-28 22:45:10
346
转载 windows批处理
1、关于%首先 ,%是批处理变量引导符这个百分号严格来说是算不上命令的,它只是批处理中的参数而已引用变量用%var%,调用程序外部参数用%1至%9等等%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理的参数%0 批处理文件本身,包括完整的路径和扩展名%1 第一个参数%9 第九个参数%* 从第一个参数开始的所有参数参数%0具有特殊
2015-12-02 13:33:55
502
转载 保证SetForegroundWindow执行成功
网上搜索到的办法有两个,第一个没自测保证SetForegroundWindow成功 在SetForegroundWindow之前比较早的时候(比如main函数里)调用一下以下代码:DWORD dwTimeout = -1; SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)&dwTimeou
2015-11-10 10:07:47
7737
原创 adb
在cmd中运行adb shell即可进入到shell中。1. 查看设备 adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2. 安装软件 adb install 这个命令将指定的apk文件安装到设备上 3. 卸载软件 adb uninstall adb uninstall -k
2015-05-19 10:00:45
898
原创 std::string
转换为大/小写wstring strAppName(pszAppName);transform(strAppName.begin(), strAppName.end(), strAppName.begin(), ::toupper);
2015-02-27 17:35:44
343
转载 vim替换详解
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节。一、使用正则表达式的命令使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间
2015-02-06 16:29:39
1213
转载 MSAA 服务端实现
Microsoft Active AccessibilityMSAA的全称是Microsoft Active Accessibility。这是类似DCOM技术。技术模型是这样的,UI程序可以暴露出一个Interface,方便另一个程序对其进行控制。 MSAA技术的初衷是为了方便残疾人使用Windows 程序。比如盲人看不到窗口,但是盲人可以通过一个USB读屏器连接到电脑上, 读屏器通过UI
2014-09-17 22:22:38
695
原创 vs 命令
1、vs 被动拉起命令参数(com中使用)-embedding2、查看last error@err, hr3、去掉注释的拼写检查(vs代码)原因在于visual assist。在VAssistX菜单栏->Visual Assist X Options->展开Advanced->Underlines->把underlines spelling err...
2014-08-26 15:39:27
500
原创 好用的软件
1、管理windows资源管理器的软件clover2、查看/检查 msaa(Microsoft Active Accessibility)中窗口层次、信息的工具inspect.exe(inspect32.exe)3、guid生成器GUIDGEN.EXE4、监视注册表变化的软件regshot.exe5、wireshark网络协议监控程序...
2014-07-30 15:39:57
1456
原创 做界面的各种坑
话说,最近在做界面啊。遇到各种坑,尤其是在维护别人的代码。唉……记性不好,标志一下下各种坑吧。2013.12.61、对于内容会变的static text,要注意它的宽度,一不小心,就显示不全了。2013.12.72、一主窗口,通过隐藏、显示、改变自身大小等等来变出几个窗口来的,这种做法千万要不得。以后要改或者加点东西,就要各种找,各种坑了。留下这种代码的人真该被骂。
2013-12-17 09:49:51
645
原创 ubuntu无线驱动安装
初用ubuntu,宿舍有无线路由啊,总不能再拉那么一根长长的网线吧。于是,开始ubuntu的无线驱动安装之旅。开始总很痛苦的,各种尝试,其实都是只差那么一点点,而已。不过,差那么一点点就是一点点了,结果就是不一样。好吧,开始总结下下经验的。一、首先要知道自己的无线网卡的型号的。我是在windows下用驱动精灵查看到的,如下硬件名称 博通 BCM43227 802.11n Wirel
2013-05-19 10:01:31
2087
原创 内存检查函数 CrtCheckMemory
BYTE* a = new BYTE[10];for (int idx = 0; idx <= 10; ++idx){a[idx] = 1;_ASSERTE(_CrtCheckMemory());}内存越界了,这样就可以及时报错了。//每个dll保证调用一次_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG...
2013-03-05 22:30:23
1385
原创 windbg的好用的命令
1、有时候想对某个函数下断点,可就是记不清楚的函数具体的名字,好吧,使用x命令来列举所有的符号的。命令格式为:x [选项] 模块名字!符号匹配表达式如,>>x et!* //于是,所以的et模块的函数都出来,哈哈~2、64位生成器生成32位的程序的dump文件,查看时,可以使用以下命令转到32位模式下调试。.load wow64exts!sw3、...
2013-01-29 11:42:02
824
1
原创 windbg的系统异常状态设置
sx显示系统异常设置状态, 如下0:001> sx ct - Create thread - ignore 创建线程 et - Exit thread - ignore 退出线程 cpr - Create process - ignore 创建进程 epr - Exit process - break 退出进程 ld - Load module - output 加
2013-01-24 15:27:05
5138
原创 将应用程序绑定到windbg启动
比如要绑定的windbg的应用程序名为 et.exe1、修改注册表首先在注册表中创建以下键值,HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/et.exe然后,在此键上增加名为 Debugger的String Value,其值为windbg的
2013-01-16 15:21:58
1168
转载 远程调试
http://www.2cto.com/kf/201105/91606.html原文:http://www.2cto.com/kf/201105/91606.html怎么说呢,介绍远程调试的文章网络上其实有不少,我这里也会涉及到,但会更加的详细和细致,比如win7(32、64)系统下的调试,家庭版的调试,以及一些常见问题的原因和解决办法。一般我们都会这么操作,比
2012-11-14 15:54:02
548
原创 integer of unlimited size(大数类的加减乘)
闲着,于是写了个大数类。加减乘都不难,所以实现了。除法得以后有空再慢慢研究的。// bigintJ.h//#pragma once#include "link_list.h"class BigInt{public:BigInt(const char* nums);BigInt(const char* nums, const int c);BigInt
2012-09-04 12:44:03
440
原创 QList与QVector
看qt的文档,只要是不要求数据所存放的内存是连续的,都建议用QList,因为QList的查询速度跟QVecotr是差不多的。感觉有点奇怪,至少与我之前所认识的List的查询是一不样的。好吧,看看源码的。原来QList的元素的指针是通过数组来管理的,而不是用next的方式。每当插入或者删除一个元素时,QList就会更新这个指针数组。而查询的时候,QList只需要通过下标从此指针数组中找到元素的指
2012-08-30 10:05:04
5829
原创 qt多语言小记
呃,怕一此东西忘记了,在这里记一下下的。首先,qt中要支持多语言的字符串要在代码中用tr()括起来的。其次就可用lupdate.exe来把需要翻译的字符串给提取出来,生成*.ts文件。于是,就可以linguist.exe来对*.ts文件进行手工翻译。最后,用lrelease.exe来“编译”一下下翻译过的*.ts文件,就可以生成*.qm文件了。好吧,最后,重中之中的是,不是忘记
2012-08-21 16:30:38
599
原创 Qt 的tool tip
今天要给我做的qt控件加个tooltip,嗯,应该不难的。不过,还是先把tooltip的来龙去脉弄清楚先的。tool tip的定时器:QApplication中有一个叫作toolTipWakeUp的定时器,当鼠标移动到某个QWidget时它便会被触发。当鼠标离此QWidget时,它便会被停止。相关代码在QApplication::notify函数中:// 处理QEvent:
2012-08-20 17:28:16
2102
原创 qboxlayout与qt布局(三)
呃,,,记性总是不大好。每次找Qlayout的入口点时都要重新断点,真是的。好吧,把一些东西记一下下的。QLayout是在哪里开始影响使用它的控件的呢? 其实,是这样的, 首先Qt的消息都是要经过 QApplication::notify()预先处理的,而对于 QApplication::notify()未处理的消息,就会通过调用QApplicationPrivate::n
2012-08-09 15:08:04
1869
原创 qboxlayout与qt布局(二)
一直被QLayout::setSizeConstraint()搞得很头大。其实,很大部分原因只能怪小弟我英文水平不过关,因为qt文档里已经说明得够清楚的了。如下:enum QLayout::SizeConstraintThe possible values are:Constant ValueDescription:QLayout::SetDefaultConstr
2012-07-30 12:11:53
6561
原创 erlang的简单数据类型
整数erlang中的整数大小是没有限制的,只与机器的可用内存有关;Base#Value表示基数不是10的整数。Base是一个介于2~32(version 6.1.7600,最大值不同的版本可能会不一样).$Character表示ASCII值。如,$a的整数值是97.可以通过is_integer()函数来判断一个值是不是整数 浮点数表示形式:NUM.NUM[e[-+]
2012-07-24 22:42:18
945
原创 qboxlayout与qt布局(一)
说实在的,qlayout的确很好用。不过,发觉用得越多就越是疑惑。例如动不动,它里面的控件就迭在一起了。唉,忍无可忍了,只好去分析下下它的源码罗~qt有个叫做qGeomCalc()的函数,qboxlayout里面的控件的大小与位置就是通它来计算的(注意,可不是全由它说了算的,这就是叫人疑惑的原因之一吧)。此函数主要是处理传进来的QLayoutStruct链的,QLayoutStruct主要定义
2012-07-24 13:01:25
3290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人