托盘编程例子
摘要:有关托盘编程的基础知识呢,也就上面这些了。下面呢,我们就进入具体的实战演练阶段,举几个托盘编程的例子瞧瞧,加深理解。 1、将程序最小化到系统托盘区的函数toTray()。void CTimeWakeDlg::toTray(){NOTIFYICONDATA nid;nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);nid.hWnd=this->m_hWnd;nid.uID=IDR_MAINFRAME;nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;nid.uCallbackMessage=WM_SHOWTASK;//自定义
阅读全文
posted @
2011-02-20 16:03
°ι 、曲 终
阅读(387)
推荐(0)
窗体的扩展样式GWL_EXSTYLE: 用于SetWindowLong
摘要:SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED ); WS_EX_ACCEPTFILES = 0x00000010 指明了一个已创建视窗具有拖拽文件功能 WS_EX_APPWINDOW = 0x00040000 强制一个可见的顶级视窗到工具栏上 WS_EX_CLIENTEDGE = 0x00000200 使一个视窗具有凹陷边框 WS_EX_COMPOSITED = 0x02000000 Windows XP:将一个窗体的所有子窗
阅读全文
posted @
2011-02-20 16:02
°ι 、曲 终
阅读(344)
推荐(0)
VC中的CWnd指针和HWnd的区别于联系
摘要:HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。由HWnd得到CWnd*:CWnd wnd;HWnd hWnd;wnd.Attach(hWnd);通常一个窗口资源已经和一个CWnd类的对象关联起来的,由于一般来说这个类是自己创建的,所以自然知道怎么得到指向这个类的指针。如果没有就创建一个CWnd对象,将这个对象与窗口资源的hWnd句柄关联起来。(如上边的语句)。如果用static CWnd*
阅读全文
posted @
2011-02-20 16:00
°ι 、曲 终
阅读(536)
推荐(0)
用VC++生成接口的COleDispatchDriver包装类来调用COM组件
摘要:一般地,可以使用CoCreateInstance来调用COM组件。但对于实现了IDispatch接口的COM组件,还有更容易的方法——用VC++自动生成接口的COleDispatchDriver包装类来调用COM组件。举例说明:在VC++中执行脚本语句,比如VBScript语句。系统提供了一个控件:C:\WINDOWS\system32\msscript.ocx,它提供了一个叫做IScriptControl的接口,通过它,我们就可以执行脚本语句了。1.用VC++自动创建包装类用VC++建立一个支持MFC的工程,添加一个类,选择“类型库中的MFC类&rdquo
阅读全文
posted @
2011-02-19 21:44
°ι 、曲 终
阅读(2692)
推荐(0)
VC怎样调用COM控件的接口函数
摘要:COM库函数 -------------------------------- 利用COM库函数使用代码组件的方法是本文介绍的三种方法中实现起来最麻烦和困难的方法。它要求开发人员必须具有对COM原理的深入理解。该方法实现步骤如下: 1. 首先添加COM初始和终止代码。在应用程序类的初始化实例函数InitInstance()中添加如下代码: CoInitialize(NULL); …… CoUnInitialize(); 上述语句运行在MFC框架/非MFC框架中,但由于本文程序使用MFC框架,所以也可以利用AfxOleInit()函数对其进行初始化。 2. 然后用#i
阅读全文
posted @
2011-02-19 21:41
°ι 、曲 终
阅读(783)
推荐(0)
vc防止运行多个程序,重复运行,同一个程序
摘要:在App::InitInstance()中加入把m_pszAppName换成你程序的GUIDe值即可。一般在stdafx.h有,例如 #if !defined(AFX_STDAFX_H__A5EA48F2_0257_4B04_B771_A2E1635741D8__INCLUDED_) #define AFX_STDAFX_H__A5EA48F2_0257_4B04_B771_A2E1635741D8__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 则GUID为:A5EA48F2_0257_4
阅读全文
posted @
2011-02-16 16:41
°ι 、曲 终
阅读(806)
推荐(0)
鼠标移到cstatic,改变光标/鼠标。 setcursor
摘要:老哥刚好有这样一段现成的程序,功能比你的不多一点:增加了改变为红色的功能,还是比较简单: 1 定义手形鼠标资源: #ifndef IDC_HAND #define IDC_HAND MAKEINTRESOURCE(32649) #endif 2 定义好字体变色色开关bool m_bColorSwitchOpened;不为TRUE时字体变红,初始化为FALSE, 3 定义下画线函数,以便于调用 4 增加WM_CTLCOLOR消息函数,以改变CStatic的颜色和加上下划线 4 增加WM_MOUSEMOVE消息函数,当鼠标移到CStatic上时为手形鼠标,并触发改变字体颜色开关
阅读全文
posted @
2011-02-16 16:39
°ι 、曲 终
阅读(1011)
推荐(0)
shellexecute 和 createprocess,运行一个程序直到其结束,偷偷运行一个程序
摘要:如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(this->m_hWnd,"open","notepad.exe","c:\\MyLog.log","",SW_SHOW );正如您所看到的,我并没有传递程序的完整路径。Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this->m_hWnd,"open", "c:\\abc.txt","","",SW_SHOW );Q: 如何打开一个网页? ShellExecute(this-&
阅读全文
posted @
2011-02-16 16:37
°ι 、曲 终
阅读(340)
推荐(0)
怎么侦测USB端口上有设备插拔
摘要:WM_DEVICECHANGLE消息,nEventType为DBT_DEVICEARRIVAL且dwData = 7时就是U盘连接事件(没弄错的话)我想RegisterDeviceNotification中参数DEV_BROADCAST_DEVICEINTERFACE结构体的GUID dbcc_classguid;为设备的GUID,填什么参数啊?
阅读全文
posted @
2011-02-16 16:35
°ι 、曲 终
阅读(753)
推荐(0)
对话框嵌入到对话框 或者:窗口嵌入到窗口,一个窗口嵌入到另一个窗口
摘要:1、用vc新建一个dialog1工程。属性默认。2、insert一个dialog2,改为child。3、在dialog1中包含dialog2头文件,在一个按钮事件中显示dialog2:Cdialog2 *p = new Cdialog2(this);p->Create(IDD_Dialog2);p->SetParent(this);//设置dialog1为父窗口p->ShowWindow(SW_SHOW);这样,dialog2便嵌到dialog1了,比用tabcontrol方便吧。现在很多应用程序的“设置”界面应该就是这样做的。
阅读全文
posted @
2011-02-16 16:33
°ι 、曲 终
阅读(457)
推荐(0)
获取当前程序所在路径/目录
摘要:char path_buffer[_MAX_PATH]; char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_FNAME]; char ext[_MAX_EXT]; GetModuleFileName(NULL, path_buffer, _MAX_PATH); _spli...
阅读全文
posted @
2011-02-16 16:32
°ι 、曲 终
阅读(308)
推荐(0)
《天龙八部2》2.30.1607 人物与宝宝基址,是最新的
摘要:基址有3个,任选1. CurRoleBase=00775AD4 =00775ad0 =00775AEC角色名 db [[[[CurRoleBase]+0c]+1b4]+4]+0x30角色等级 dd[[[[[CurRoleBase]+0c]+1b4]+4]+0x60 角色当前血值 dd[[[[CurRoleBase]+0c]+1b4]+4]+0x1e18角色最大血值 dd[[[[CurRoleBase]+0c]+1b4]+4]+0x1e8c 角色当前蓝值 dd[[[[CurRoleBase]+0c]+1b4]+4]+0x1e1c 角色最大蓝值 dd[[[[CurRoleBase]+0c]+1b4
阅读全文
posted @
2011-02-15 16:29
°ι 、曲 终
阅读(698)
推荐(0)
VC读写INI文件
摘要:在VC中读写INI文件相对比较简单,读INI文件我们只需用到GetPrivateProfileString系统API,而写INI文件也只需用到WritePrivateProfileString系统API,他们的使用例子如下:读:写:
阅读全文
posted @
2011-02-15 11:25
°ι 、曲 终
阅读(326)
推荐(0)
在VC6.0下设置Unicode编译环境
摘要:VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 使用VC++ 6.0进行Unicode编程主要做以下几项工作: 1、为工程添加UNICODE和_UNICODE预处理选项: 具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,...
阅读全文
posted @
2011-02-15 11:25
°ι 、曲 终
阅读(251)
推荐(0)
VC设置程序热键
摘要:为程序设置热键就是用到一个RegisterHotKey系统API。当然些API的使用相对简单,但也需要注意一些地方,所以在使用API前请参考MSDN相关文档。本文只给出一个设置程序热键的例子代码如下:1.在OnInitDialog中调用RegisterHotKey设置热键RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_SHIFT,'S');2.在对话框的头文件中声明热键处理函数afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);3.在对话框的实现文件中实现热键处理函数LRESULT CTestDlg:
阅读全文
posted @
2011-02-15 11:24
°ι 、曲 终
阅读(1171)
推荐(0)
VC读取资源中文件
摘要://查找目标资源 HRSRC hResource = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MAINPROG), TEXT("exe")); if(hResource) { //加载资源 HGLOBAL hg = LoadResource(GetModuleHandle(NULL), hResource...
阅读全文
posted @
2011-02-15 11:24
°ι 、曲 终
阅读(1532)
推荐(0)
VC为对话框添加状态栏
摘要:实现为对话框程序添加状态栏主要步骤如下:1.在资源的String table添加两个字符串资源资源ID资源值IDS_PANEL1第一个PanelIDS_PANEL2第二个Panel2.在对话框类中加入CStatusBar成员变量CStatusBarm_wndStatusBar;3.在StdAfx.h文件里定义如下分割数组static UINT indicators[] ={IDS_PANEL1,IDS_PANEL2,};4.OnInitDialog里创建并显示状态栏
阅读全文
posted @
2011-02-15 11:23
°ι 、曲 终
阅读(407)
推荐(0)
VC实现不规则窗口
摘要:在VC下创建不规则窗口非常简单,无非就是创建一个HRGN,然后再调用SetWindowRgn就行了,如我们要创建一个原形的窗口只需要如下代码:本文中的例子为一个透明位图不规则窗口,其主要函数如下:
阅读全文
posted @
2011-02-15 11:22
°ι 、曲 终
阅读(445)
推荐(0)
VC动态更改窗口图标
摘要:动态的更改窗口的图标非常的简单,其原来就是给目标窗口发送一个WM_SETICON消息既可。我们可以调用SendMessage系统API来给窗口发送消息,当然在MFC程序里我们使用如下更为简单的方法:
阅读全文
posted @
2011-02-15 11:21
°ι 、曲 终
阅读(951)
推荐(0)
VC实现半透明窗口
摘要://加入WS_EX_LAYERED扩展属性 SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); HINSTANCE hInst = LoadLibrary("User32...
阅读全文
posted @
2011-02-15 11:21
°ι 、曲 终
阅读(434)
推荐(0)
VC输入法控制
摘要:使用过Access的人都知道,在表数据输入时Access自动切换输入法,如某字段需要输入英文时自动切换到En输入状态,如另一字段需要输入中文自动切换到某中文输入状态;这给我们的数据输入提供了极大的方便。如果在应用程序中也如Access那样为用户提供输入法智能自动切换,那么这样的应用程序不仅给用户带来了方便同时也显得我们更加专业化;这样我们的应用程序也就更加具有竞争力。如大多数的系统配置一样,输入法的控制也是通过对相应的注册表项的修改来实现的;在本文里我们就不对相关注册表项的具体位置及相关项的说明进行解说;为了实用起见,我们就以代码来说话吧;具体代码如下:
阅读全文
posted @
2011-02-15 11:20
°ι 、曲 终
阅读(1853)
推荐(0)
VC多线程编程实例
摘要:在本文中我们以实例的形式来介绍一下VC中的多线程编程,本文中没有涉及线程的相关同步问题我们更多的是讲述VC下的线程相关操作与编写方法等,至于线程的同步问题请参见《WinCE线程同步》;也许你会问为什么是参见WinCE的东西而不是参见Wincows的东西呢?因为我们知道WinCE、WinMoblie、Windows等的相关API与内核对象其本相同。一、多线程概述 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。 线程是进程内部的
阅读全文
posted @
2011-02-15 11:20
°ι 、曲 终
阅读(714)
推荐(1)
VC实现微秒(十万分之一秒)休眠
摘要:VC自带的SDK中为我们提供了一个Sleep函数,此函数的最小单位为毫秒(既千分之一秒);但在实际的应该中(特别是网络数据传输)我们需要更小的休眠单位(微秒),而系统又没有提供相关API,那么我们如何实现微秒(既十万分之一秒)的休眠呢? 我们知道系统中为我们提供了QueryPerformanceFrequency与QueryPerformanceCounter等相关API,而这些API的时间单位都是微秒及的;这为我们实现微秒休眠提供了思路;为了实用起见我们就直接给出函数代码,代码如下:
阅读全文
posted @
2011-02-15 11:19
°ι 、曲 终
阅读(1938)
推荐(0)
VC双缓冲画图实例
摘要:void CTest::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here // Do not call CWnd::OnPaint() for painting messages CPo...
阅读全文
posted @
2011-02-15 11:16
°ι 、曲 终
阅读(501)
推荐(0)
VC常用数据类型使用转换详解
摘要:为了说明这些问题我们先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="女侠薛凤君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换长整型(long)ltoa(l,temp,10);二、从其它包含字符串
阅读全文
posted @
2011-02-15 11:15
°ι 、曲 终
阅读(186)
推荐(0)
VC 获取鼠标下面的窗口
摘要:POINT pt; GetCursorPos(&pt); // 得到鼠标下面的窗口句柄 HWND hWnd=WindowFromPoint(pt); // 得到鼠标所在的子窗口句柄 HWND hChild=ChildWindowFromPoint(hWnd,pt);
阅读全文
posted @
2011-02-15 11:14
°ι 、曲 终
阅读(702)
推荐(0)
VC中精确获取字符串长宽
摘要:void CTestDlg::OnButton1() { // TODO: Add your control notification handler code here CDC* pDC; LOGFONT tLogFont; tLogFont.lfHeight = 21; tLogFont.lfWidth = 0; tLo...
阅读全文
posted @
2011-02-15 11:13
°ι 、曲 终
阅读(883)
推荐(0)
VC实现对话框窗口指定颜色透明
摘要:以上代码加入OnInitDialog()中,其中SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY);里,maskColor为将进行透明处理的颜色,192为透明度,LWA_COLORKEY为透明方式。若要透明整个对话框,则LWA_COLORKEY=2;若要对选定颜色透明,则LWA_COLORKEY=1;
阅读全文
posted @
2011-02-15 11:13
°ι 、曲 终
阅读(428)
推荐(0)
创建类似软键盘的无焦点对话框程序
摘要:如果想创建一个类似windows里的屏幕键盘式的程序,由于需要将模拟键盘的输入发送到原来处于活动状态的程序,因此,我们的程序应该不改变原来的焦点。在vc6和vc#中可以通过以下方式实现:1. VC6.0中在对话框的OnInitDialog()函数最后的初始化处,添加以下代码:// TODO: Add extra initialization hereLONG exs = GetWindowLong(this->m_hWnd, GWL_EXSTYLE);exs |= 0x08000000;//始终不处于活动状态SetWindowLong(this->m_hWnd,GWL_EXSTYL
阅读全文
posted @
2011-02-15 11:12
°ι 、曲 终
阅读(416)
推荐(0)
枚举当前打开的所有窗口
摘要:#include #include BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam); int main( int argc, char* argv[] ) { EnumWindows( EnumWindowsProc, NULL ); return 0; } HWND m_hwndFind[100...
阅读全文
posted @
2011-02-15 11:09
°ι 、曲 终
阅读(344)
推荐(0)
vc-api-枚举所有子窗口实例
摘要:我经常想枚举一个父窗口的所有子窗口,网上搜索了很多都没有搞的太懂,经过多次实践,总算搞明白了,发一个最简单的实例,希望能给大家带来帮助实例:枚举QQ登陆这个窗口所有的子窗口
阅读全文
posted @
2011-02-15 10:58
°ι 、曲 终
阅读(2264)
推荐(0)
VB中不会造成假死的延时
摘要:在VB编程中,一般的延时都是用的sleep这个API函数,既Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)可是若果在编写GUI界面的程序的时候,使用此API延时的时候,会造成程序停止响应,既造成程序假死,不响应windows的请求。如此,为保证程序将控制权交给电脑,保证假死情况不会出现。我们可以使用以下子程序:如若我们需要延时一秒的时候,就使用Delay1000,而不是Sleep 1000.此子程序可以完美解决程序失去相应的问题。
阅读全文
posted @
2011-02-11 22:31
°ι 、曲 终
阅读(1039)
推荐(0)
VC++最小化到托盘
摘要:一、托盘简介 所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。其实,托盘区的编程很简单,下面简要阐述一下子喽^_^ 二、托盘编程相关函数 其实呢,把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了。 绘制图标以及确定图标所传送消息的函数只有一个,那就是—————— WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICO
阅读全文
posted @
2011-02-01 17:09
°ι 、曲 终
阅读(320)
推荐(0)
VC++实现插件支持
摘要:引言 目前,不少流行软件都提供有对外挂插件的支持功能,如Winamp、Realplay等等。这些软件通过对插件技术的使用为日后的软件升级和功能扩展提供了相当的便利条件。 尤为重要的是,通过使用插件技术,使得对软件的功能扩展将不再完全受限于软件厂商,任何第三方开发商或是程序员个人只要遵循了软件提供的插件接口标准去开发插件就完全可以同主体软件有很好的兼容,从而使用户对应用程序进行个性化功能扩展成为了可能。基于插件技术的以上诸多优势,本文下面将围绕插件的制作、应用程序对插件的支持等具体问题对其展开讨论。 设计思路及插件接口标准 通常支持插件的应用程序多将外挂扩展插件集中放置于某个指定的目录下,程序
阅读全文
posted @
2011-02-01 17:06
°ι 、曲 终
阅读(389)
推荐(0)
VC++ 输入法编程
摘要:一直想写一点关于输入法编程的东西,今天终于有点时间,希望对后来者有点帮助。在此要特别感谢“自由拼音”的作者李振春,我刚开始的几个问题都是在他的帮助下才解决。首先我们需要明白输入法是什么东西。目前常用的输入法基本上有两种类型:外挂式(如早期的万能五笔)及输入法接口式(Input Method Editor-IME)。外挂式比较简单,就是一个exe文件,通过模拟一些Windows输入消息来给当前处于活动状态的编辑窗口输入文字,一个显著的优点是输入法只要启动一次,就可以在所有进程中使用;但缺点不不容忽视,首先实现起来也不容易,一个更大的不足是兼容性不够好,通常一个Windows版本需要一人对应的输入
阅读全文
posted @
2011-02-01 17:01
°ι 、曲 终
阅读(1628)
推荐(0)
一切从零开始外挂教程(翻录)
摘要:不要去花这个冤枉钱了,另外再附送一课征途的多开原理.http://u.115.com/file/f794a8c007郑重申明请勿将此视频用于商业用途,否则导致一切后果与作者和网络传播人员皆无关.还麻烦管理把这帖子删除了吧.http://www.3600gz.cn/thread-36597-1-1.html上面地址的这个帖子,内容不是很全,少了多开原理,注意,这个多开原理适用于允许双开或者四开,但不能更多开的大部分游戏.初级篇_第一课http://u.115.com/file/f780a3ba1e初级篇_第二课http://u.115.com/file/f7731957d4初级篇_第三课http
阅读全文
posted @
2011-02-01 16:42
°ι 、曲 终
阅读(1633)
推荐(0)
OD模糊查找特征码
摘要:为了更新数据,我们常常需要搜索特征码,但是OD里不能直接查找模糊数据.近两天通过看壳的世界(前两课免费),我发现其实还是可以实现的,只是以前太粗心不会用.比如我们搜索如下语句:内存地址 二进制 汇编指令 备注00735EC3 33C0 XOR EAX,EAX//这条确定00735EC5 83FF 1A CMP EDI,1A//不确定00735EC8 0F95C0 SETNE AL//确定00735ECB 83C0 03 ADD EAX,3//不确定00735ECE 8BE8 MOV EBP,EAX//确定具体是按CTRL+B,也就是二进制搜索那么我们将确定的二进制码打进去,然后不确
阅读全文
posted @
2011-02-01 16:33
°ι 、曲 终
阅读(3325)
推荐(0)
突破游戏驱动级反外挂保护
摘要:现在大多数网络游戏都使用驱动级的反外挂保护,使其他程序无法获得其游戏窗口句柄,下面驱动代码可以恢复被TesSafe.sys Hook掉的API。
阅读全文
posted @
2011-02-01 16:29
°ι 、曲 终
阅读(1208)
推荐(0)
另类键盘钩子 DLL自己安装钩子
摘要:然后再用2个输出函数:一个安装钩子,一个卸载钩子CreateRemoteThread 去调用安装钩子的导出函数
阅读全文
posted @
2011-02-01 16:27
°ι 、曲 终
阅读(980)
推荐(0)