Windows Develop
windless0530
这个作者很懒,什么都没留下…
展开
-
InternetConnect的URL参数不要加“http://”
否则会出错,而且不是在InternetConnect的时候,而是在HttpSendRequest的时候。 另外,也不要带/后面的部分,那些算object。原创 2010-03-17 18:55:00 · 3900 阅读 · 0 评论 -
枚举占用某DLL的进程
<br />见如下CheckProcess函数:<br /> <br />用法:<br />INT nProc = CheckProcess(_T("wininet.dll");<br /> <br />#include <windows.h>#include <tchar.h>#include <Tlhelp32.h>#include <stdio.h>BOOL CheckModules(DWORD dwPID, LPCTSTR szFileName){ HANDLE hMo原创 2010-08-03 13:21:00 · 1070 阅读 · 0 评论 -
检查系统和程序内存使用情况
检查当前操作系统内存情况:void CheckMemorySystem(){ MEMORYSTATUS memStatus = {0}; memStatus.dwLength = sizeof(MEMORYSTATUS); GlobalMemoryStatus(&memStatus); // to do : memStatus记录了系统内存使用信息} 检查某个程序(以当前程序为例)内存使用情况:void CheckMemoryProcess(){原创 2010-06-09 11:17:00 · 1054 阅读 · 0 评论 -
查找历史纪录的代码
来源:http://topic.csdn.net/u/20090908 ... 4-322d0a5886ca.html可以查到:URL、标题、访问时间、更新时间、过期时间。访问次数暂时没搞定。#include #include #include #include #define OUTPUT_HISTORY_FILE "C://url_history.txt"#define ONLY_QUERY_HTTP // 只显示网页URL纪录,否则会包括本地文件等。原创 2010-06-11 16:58:00 · 1455 阅读 · 1 评论 -
获取IE的user agent
const DWORD c_dwSizeIn = MAX_PATH;DWORD dwSizeOut = 0;char *szAgent = new char[c_dwSizeIn];ZeroMemory(szAgent, c_dwSizeIn * sizeof(char));HRESULT hRes = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, (LPVOID)szAgent, c_dwSizeIn, &dwSizeOut, 0); 不知道原创 2010-06-24 17:12:00 · 3518 阅读 · 0 评论 -
查看进程CPU占用率的方法
<br />typedef struct _THREAD_INFO { LARGE_INTEGER CreateTime; DWORD dwUnknown1; DWORD dwStartAddress; DWORD StartEIP; DWORD dwOwnERPID; DWORD dwThreadId; DWORD dwCurrentPriority; DWORD dwBasePriority; DWORD dwCo原创 2010-08-19 11:24:00 · 790 阅读 · 0 评论 -
获取本地IP地址
<br /> ULONG addr_ip_long = 0; WSADATA winsockData; if (WSAStartup(MAKEWORD(2, 0), &winsockData) != 0) { char szHostName[255] = {0}; if (0 == gethostname(szHostName, 255)) { hostent *ent = gethostbyname(szHostNam原创 2010-09-14 18:49:00 · 579 阅读 · 0 评论 -
QT对话框的几个windows flag
<br />要实现对话框不在任务栏显示,而且无规则边框(用半透明png在paintevent里画),需要把属性设为:<br /> <br />Qt::Popup | Qt::Dialog | Qt::FramelessWindowHint<br /> <br />不过发现这样对话框show()的时候不激活。<br /> <br />解决方式是在showEvent里调用this->activateWindow()<br /> <br />特此备忘。<br /> <br />原创 2011-06-02 11:31:00 · 1881 阅读 · 0 评论 -
vc++ socket实现的支持断点续传的下载器
网上找了一堆代码,有用wininet的,还有用socket的,整理了半天,还是觉得socket靠谱。只支持内存中断点续传。如果要加上在磁盘上断点续传,原理也差不多,不是本文重点。注释:1. CByteBufferVector是一个缓存池,动态分配BYT原创 2011-09-22 11:16:33 · 4486 阅读 · 0 评论 -
COOKIE格式与读写相关
1. COOKIE文件格式:COOKIE文件为操作系统cookies目录下的一堆txt文件。文件名格式为:@[数字].txt即,同一个域下可能有多个cookie文件:elf@sohu[1].txtelf@sohu[2].txtelf@sohu[3].txt文件名中的数字含义不明。实际上,浏览网页时,浏览器会根据cookies目录下index.dat中的索引信息去定位原创 2010-06-07 16:05:00 · 5673 阅读 · 3 评论 -
QDialog子控件禁止构造时parent为NULL
否则如果QDialog::exec(),则直到对话框退出主线程都会处于QDialog::exec()内部的消息循环之内,这个消息循环位于qApp消自习循环之上。而构造时parent为NUILL的widget,其父控件为桌面,因此当windows消息(不管是鼠标、键盘、还是别的)发给它的时候,只有在qApp消息循环里才能处理。换句话说,就是在模态对话框运行期间,根本处理不了……原创 2012-06-14 18:26:19 · 1494 阅读 · 0 评论 -
解决应用程序图标为windows默认图标的问题:清除图标缓存
在windows7下验证通过。 P.S. 刚发现此脚本会导致右下角系统托盘图标无法恢复……这个回头再查怎么搞…… http://webcache.googleusercontent.com/search?q=cache:MInt_CnJ4FkJ:www.2cto.com/os/201212/174728.html+&cd=37&hl=zh-CN&ct=clnk&gl=cn&clie转载 2013-01-06 10:00:26 · 2089 阅读 · 0 评论 -
Visual Studio通过Property Manager建立的*.vsprops文件定义的宏,优先于环境变量
如果宏名称重名,则使用 $(xxx) 访问时以用户自定义宏为准。原创 2013-01-08 19:00:12 · 1916 阅读 · 0 评论 -
获取系统发呆(IDLE)时间(上次用户动作时间)
用GetLastInputInfo得到上次用户操作时的tick count,和当前tick count作对比。原创 2010-05-25 17:35:00 · 929 阅读 · 0 评论 -
关于属性HTTPONLY的COOKIE的获取
IE8以上,InternetGetCookieEx可以传参数INTERNET_COOKIE_HTTPONLY (值为0x2000) 来获取这类COOKIE,但在IE6上就没办法了。所以,获取COOKIE最稳妥的方式还是要属自己去解析文本。原创 2010-05-21 20:31:00 · 8756 阅读 · 0 评论 -
根据日期(年月日)得到星期几的方法
需要包含头文件"AtlComTime.h"。COleDateTime dateTime;dateTime.SetDate(wYear, wMonth, wDay);SYSTEMTIME tmTime;tmTime.wDayOfWeek = dateTime.GetDayOfWeek() - 1;需要注意的是COleDateTime的GetDayOfWeek()方法返回的星期原创 2010-05-19 18:05:00 · 1328 阅读 · 0 评论 -
关于SendMessage的返回
如果目标窗口的创建线程和SendMessage线程是不同线程,则SendMessage会发送消息,并等待目标线程返回后返回。 否则,SendMessage实质会起User32.dll,直接执行窗体的消息响应函数,在函数返回后返回。原创 2010-03-18 16:44:00 · 1771 阅读 · 0 评论 -
窗口阴影效果:窗口类style属性添加CS_DROPSHADOW
但是有一个问题:这个效果会在一开始创建窗口时就生效。如果希望实现创建窗口后,窗口暂时不显示,那么此时这个阴影还是会出现,看起来就很怪。 为了试图在窗口真正显示时才显示边框,我尝试过以下几种办法: 1. 在CreateWindowEx时,不设WS_VISIBLE,而是在之后再SetWindowLongPtr,加上WS_VISIBLE属性;2. 在CreateWindowEx时,窗原创 2010-03-24 12:06:00 · 9425 阅读 · 0 评论 -
两个SYSTEMTIME比较差异(秒数、天数……)的方法
原贴地址:http://topic.csdn.net/t/20040707/08/3151675.html 我稍微加工了一下: ====================Begin==================== time_t FileTimeToTime_t(const FILETIME &ft){ ULARGE_INTEGER ui;转载 2010-03-30 10:25:00 · 10156 阅读 · 2 评论 -
保证SetForegroundWindow成功
在SetForegroundWindow之前比较早的时候(比如main函数里)调用一下以下代码: DWORD dwTimeout = -1; SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)&dwTimeout, 0); if (dwTimeout >= 100) { Sys原创 2010-04-14 11:40:00 · 7493 阅读 · 0 评论 -
内嵌另一个文件,在运行时“吐出来”的办法
这事好像有点流氓: // 在resource.h中:#define IDR_MY_ANOTHER_FILE 120// 在rc文件中:IDR_MY_ANOTHER_FILE RCDATA _T("D:/myfile.txt")// 定义函数:LPVOID GetResourceData(LPCTSTR lpName, LPCTSTR原创 2010-04-02 13:05:00 · 737 阅读 · 0 评论 -
COM的HTML控件
http://www.experts-exchange.com/Programming/Languages/C/Q_24038236.html /* CWebPage.c This is a Win32 C application (ie, no MFC, WTL, nor even any C++ -- just plain C) that demonstratesh转载 2010-04-15 19:18:00 · 2108 阅读 · 0 评论 -
解决COM显示HTML,无法copy、paste的问题
这两个操作默认是被屏蔽了的,需要手动拦截按键消息然后处理。 如果嵌入HTML的窗口拿不到WM_KEYDOWN这样的消息,就只好直接在消息循环里拦截了: { while (0 != (r = GetMessage(&msg, NULL, 0, 0))) { if (r == -1) { break; }原创 2010-04-15 19:23:00 · 1870 阅读 · 0 评论 -
Windows登录、锁屏的判定以及消息捕捉
如果窗口想获取相关消息,需要注册Session的Notification,需要Wtsapi32.dll中的两个函数:WTSRegisterSessionNotification和WTSUnRegisterSessionNotification,分别在窗口创建和销毁的时候调用。typedef BOOL (WINAPI *WTSRegisterSessionNotification)(HWND,原创 2010-04-17 13:39:00 · 13141 阅读 · 1 评论 -
遍历进程、杀进程
这是一段杀自己的其它进程实例的代码(MyProc.exe)。 static void CloseOthers(){ static const int c_sMaxProcesses = 1024; DWORD aProcesses[c_sMaxProcesses]; ZeroMemory(aProcesses, c_sMaxProcesses * size原创 2010-04-17 15:47:00 · 1433 阅读 · 0 评论 -
文本读写与编码格式(1)----文本格式判断(基于文件的FileMap)
class SourceConv{ // ... enum e_fileType { typeInvalid = -1, typeAnsi = 0, // ansi typeUnicode, // unicode typeRevUnicode, // 逆字节序的unic原创 2010-04-07 15:44:00 · 582 阅读 · 0 评论 -
文本读写与编码格式(2)----ansi与unicode文本读写方式
#ifdef _UNICODEtypedef std::wifstream t_ifs;typedef std::wofstream t_ofs;typedef std::wstring t_str;#elsetypedef std::ifstream t_ifs;typedef std::ofstream t_ofs;typedef std::string t_str原创 2010-04-07 15:50:00 · 959 阅读 · 0 评论 -
InternetSetCookieEx和InternetGetCookieEx使用tip(COOKIE文件格式)
这两个函数都要注意,szCookieName这个参数不太好使,最好设为NULL,然后在写cookie时手动写在内容里:"my_cookie_name=my_cookie_value; path=/; expires=Wed, 30-Mar-11 09:00:00 GMT; domain=.csdn.net"读的时候整个读出来然后自己解析。 另外,InternetGetCookieE原创 2010-05-12 17:43:00 · 16475 阅读 · 6 评论 -
NSIS查找和杀进程详解
FindProcDLL::FindProc {process_name}返回值:0 - 未找到1 - 找到KillProcDLL::KillProc {process_name}0 - 杀进程成功603 - 未找到此进程(也有可能是无法访问进程,如因用户权限问题等)其它 - 各种错误所以,在杀进程时,如果返回603,最后再findproc一下,确认是否进程不原创 2013-05-06 12:45:40 · 9478 阅读 · 0 评论