A. VC++如何将程序最小化到托盘
一、托盘简介
所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。其实,托盘区的编程很简单,下面简要阐述一下子喽^_^
2
二、托盘编程相关函数
其实呢,把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了。
绘制图标以及确定图标所传送消息的函数只有一个,那就是——————
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA pnid
);
这个函数呢,负责向系统传递消息,以添加、修改或删除托盘区的图标。她的返回值呢,是个布尔类型的。就是说,如果返回0,那就是成仁啦,非0才成功。
参数dwMessage 是表示这个函数的应用功能是哪一方面,是添加、删除,还是修改图标。如果是添加,则它的值为NIM_ADD;删除则是NIM_DELETE;而修改是NIM_MODIFY。参数pnid就是具体的和程序在托盘区的图标有关系的结构了。它的定义如下:
typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
下面就对该结构各个参数进行刨析:
cbSize : 结构的长度,用“位”来做单位。一般在程序中,我们用(DWORD)sizeof(NOTIFYICONDATA) 给它赋值。
HWnd : 一个句柄,如果对托盘中的图标进行操作,相应的消息就传给这个句柄所代表的窗口。自然了,大多数情况下是this->m_hWnd喽。
uID : 在工程中定义的图标ID
uFlags : 这个成员标志着其他哪些成员的数据是有效的,分别为NIF_ICON, NIF_MESSAGE, NIF_TIP,分别代表着数据有效的成员是hIcon, uCallbackMessage, szTip。当然,三个值可以用“|”联系到一起。下面分别对涉及到的成员进行阐述
hIcon : 要增加,删除或修改的图标句柄。如果只知道个uID, 一般可能会用函数LoadIcon来得到句柄。例如LoadIcon ( AfxGetInstanceHandle() ,MAKEINTRESOURCE (IDR_MAINFRAME) )。
uCallbackMessage : 这在对托盘区的操作中,是比较重要的数据成员。这是个消息标志,当用鼠标对托盘区相应图标进行操作的时候,就会传递消息给Hwnd所代表的窗口。所以说,在uFlags中,一般都得标志它有效。这里一般都是自定义的消息。
szTip : 鼠标移动到托盘图标上时的提示文字。
3
三、托盘编程例子
有关托盘编程的基础知识呢,也就上面这些了。下面呢,我们就进入具体的实战演练阶段,举几个托盘编程的例子瞧瞧,加深理解。
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;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip,"计划任务提醒");//信息提示条为“计划任务提醒”
Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
ShowWindow(SW_HIDE);//隐藏主窗口
}
这是个很简单的函数,里面首先给NOTIFYICONDATA赋值,然后调用shell_NotifyIcon, 头一个参数是NIM_ADD,表示添加。然后用函数ShowWindow 隐藏主窗口,这样,就实现了将程序最小化到系统托盘区的任务了。
2、程序已经最小化到托盘区了,但是呢,对托盘图标的操作如何进行呢?这就体现了结构NOTIFYICONDATA的成员uCallbackMessage 的作用了。它所提供的作用就是,当用户用鼠标点击托盘区的图标的时候(无论是左键还是右键),会向hWnd所代表的窗口传送消息,如果是上例,消息的名称就是WM_SHOWTASK。根据VC的消息机制,对自定义消息增加消息响应函数。
在头文件的//{{AFX_MSG和//}}AFX_MSG之间声明消息响应函数:
afx_msg LRESULT onShowTask(WPARAM wParam,LPARAM lParam);
然后在CPP文件中添加消息映射。在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP 之间加入:
ON_MESSAGE(WM_SHOWTASK,onShowTask)将消息和消息响应函数映射起来。
然后就是在CPP文件中加入函数onShowTask的实现了:
LRESULT CTimeWakeDlg::onShowTask(WPARAM wParam,LPARAM lParam)
//wParam接收的是图标的ID,而lParam接收的是鼠标的行为
{
if(wParam!=IDR_MAINFRAME)
return 1;
switch(lParam)
{
case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”
{
LPPOINT lpoint=new tagPOINT;
::GetCursorPos(lpoint);//得到鼠标位置
CMenu menu;
menu.CreatePopupMenu();//声明一个弹出式菜单
//增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已
//隐藏),将程序结束。
menu.AppendMenu(MF_STRING,WM_DESTROY,"关闭");
//确定弹出式菜单的位置
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);
//资源回收
HMENU hmenu=menu.Detach();
menu.DestroyMenu();
delete lpoint;
}
break;
case WM_LBUTTONDBLCLK://双击左键的处理
{
this->ShowWindow(SW_SHOW);//简单的显示主窗口完事儿
}
break;
}
return 0;
}
B. 怎么把一个程序隐藏或者弄到托盘里去
你如果要彻底隐藏软件运行,可以去网上下载一个叫“无忧隐藏”的软件,(此软件是收费的,不过网上已有破解的了),先启动你要隐藏的软件,然后启动“无忧隐藏”,在其主界面使用鼠标右键单击你要隐藏的程序,选择“将本程序添加至快速隐藏列表”,以后只要领导来了,只要按下鼠标滚轮即可。要恢复,按住左键不放,然后单机右键就行了。如果你要把程序最小化到系统托盘,推荐使用Alltotray,在多特有的下,是汉化的。具体使用方法就不说了,很方便的,如果找不到,我可以发到你邮箱。有问题再问我吧,希望我的回答对你有所帮助。
C. 怎样把程序放在系统托盘里
最小化到系统托盘
D. 请问怎样使程序在最小化后图标放在任务栏的托盘上
现在借助Window
Minimizer这款小工具的帮忙便实现
以上操作了。软件下载完毕后进行解压,由于是绿色软件并不需安
装,双击应用程序图标运行Window
Minimizer,这时该软件程序图
标会显示在系统托盘区域中。如果想将某个任务栏窗口最小化到系
统托盘,可以直接在其窗口按钮上单击一下鼠标右键,然后在弹出
的菜单中选择最下方的“最小化到托盘区”一项命令就行了,此时该
窗口图标便移动到托盘中去了。以后如想将其恢到任务栏中,再用
鼠标左键在托盘中点击一下该窗口图标就可以了。
E. 高分求:如何让程序运行后出现在屏幕右下角的"系统托盘"里
新手如何装一个完美的操作系统?
A:相信对于那些大虾级的人物来说装系统根本不是什么难事,不过是不停的点“下一步”罢了!但对于菜鸟级人物也许就是一件难事了。
今天我们就以装windowsXP为例,把本人装系统的一些经验告诉大家,希望会对你们有所帮助。
装系统前:
先想好要将系统装在哪个盘,然后将该盘整理。这里所说的整理,就是将有用的文件放到另一个盘中保存起来,以防格式化的时候误删掉。还有就是如果你的机器硬件驱动盘找不到了,建议使用工具软件将驱动保存下来。Windows优化大师可以做到这点。
需要注意的就是,“我的文档”里的东西都算C盘里的东西,别忘了保存它里面的文件。
至于收藏夹等的路径因系统不同而不同。一般在C:\Documents and Settings下面有一个以你机器登陆名命名的文件夹,打开后就会看到收藏夹,复制到别的盘即可。
做好以上这些,基本上就可以开始装系统了。重新启动计算机,然后按DEL键进入BIOS设置。有的人在这里不知道什么时候按DEL键,那就告诉你个笨办法,只要重启了,就一直按好了。还有就是,因为主板生产厂家的不同,进入BIOS的快捷键也有所区别。有的是F2,有的是F10,一般开机时在屏幕低端都有提示。
进入BIOS后切勿随便改动,因为这里面的东西都是相当重要的,如果改错可能会连系统都进不去。我们只需要改动计算机启动时的盘符顺序就可以了。
这个怎么找还真不好说,因为BIOS设置也会因主板不同而不同。一般在BOOT标签下,设置用光驱启动计算机就可以。BIOS设置时右边都会有相关提示,菜鸟们可根据提示来做。弄好后先别急着重启,要把安装盘放进光驱中,再按F10保存并重新启动。
这时要注意观察,启动时计算机会先检测光驱,屏幕下面出现一行字符(具体英语忘掉了,汗),意思就是让你按任意键进入光盘启动。按一下,听到光驱开始疯转,装系统的过程就正式开始了!
装系统中:
看屏幕中的提示,因为都是中文的所以几乎不需要介绍什么。首先需要用户选择是安装新的操作系统还是修复,选择安装新的操作系统,然后按F8同意那些协议,出现盘符选择界面。
用键盘上下键移动光标至你要安装的盘符上,按“D”键,系统会提示说删除该盘将会删除所有资料,不管它,接着按“L”键再确定删除。完成后屏幕返回到刚才的界面。然后选择“在当前盘安装WindowsXP”(大概意思,原文不记的了)后按回车,系统提示要格式化该盘。选择“快速NTFS方式”格式化,此时出现格式化界面,稍候等进度条到100%时计算机开始自动装入光驱中的安装文件,大概时间8分钟左右(视光驱速度而定),完成后系统自动重启。
注意,此时要将光驱里的安装盘取出,为的是避免重启后又自动读取。
重启后再次进入安装界面,此时将安装盘再放入后安装继续,几乎不需要你做任何设置,点“下一步”就可以。不过中间有一个输入序列号的过程得动动手。
这个过程大概40分钟左右,其间屏幕会显示一些关于windowsXP的相关功能信息,可以留意一下。完成后系统提示将安装盘取出。你拿出来后,重启,顺便进BIOS将开机启动顺序改回至硬盘启动,基本上就完成安装过程了!
装系统后:
一般在进入系统后常用硬件的驱动都已经安装好,但不是全部。这时就需要用户自己来安装。首先查看机器哪些驱动未安装!右键点击“我的电脑”,选“属性”,在“硬件”标签里点击“设备管理器”,凡是在设备前面有一个问号图标的均表示该设备有问题。双击,按上面的提示将驱动安装好。直到前面的“问号”全部消失为止。
需要装的驱动一般有显卡、声卡、网卡、猫,一些比较高级的机器还有红外、蓝牙等适配器的驱动。
下面就是对系统的一些优化设置,如果你的机器配置不高,建议按我说的做。
1〉 右键单击屏幕,选择“属性”。点击“外观”标签,在“外观与按钮”的下拉菜单中选择“windows经典样式”,然后在“设置”标签里,按个人喜好调整屏幕分辨率大写,一般为1024*768。如果你用的是普通CRT显示器,需要再点“监视器”标签,将“屏幕刷新频率”调整至“85赫兹”,点确定!屏幕看起来是不是舒服多了?
2〉 右键单击任务栏,选择“属性”,在“任务栏”标签项中将“显示快速启动”前的复选框选中。然后再点击““开始”菜单”标签,将菜单类改成“经典“开始”菜单”,点“确定”,看看现在的样子是不是要舒服点呢?(嘿,我的个人感觉!)
3〉 右键单击我的电脑,选择“高级”标签。单击性能项里的“设置”按钮。在视觉效果项里先点击“调整为最佳性能”,然后在下面的复选项里选中“在文件夹中使用常见任务”。如下图所示:
做好这步,然后再点“视觉效果”旁边的“高级”标签,在“虚拟内存”处点“设置”按钮。在打开的属性框里,先将光标定位在C盘,点击下面的“无分页文件”,然后再点击D盘(你机器上哪个盘空间大就点哪个),在自定义大小里输入相应数值,点旁边的“设置”按钮,再点击确定。如下图所示:
虚拟内存的设置要根据本身内存容量来定!一般情况为内存本身容量的1.5倍即可!
4〉 右键单击“我的电脑”,选择“系统还原”标签,如果不需要的话选择“在所有驱动器上关闭系统还原”,这个一般人都不需要!
5〉 此时你会发现屏幕右下角系统托盘处有一个“盾”样的图标,那个是windowsXP的安全中心。双击打开它,在你没有安装自己的杀毒软件的时候,将“防火墙”和“病毒防护”都开启。这样安全性会相对较高一些!
6〉 做好这些后单击“开始”,选择“Windows Update”,此时自动打开IE连接到windows升级网站,按照它上面的提示进行升级,步骤必不可少!升级完成后可能会需要重新启动计算机。
7〉 打开任意一个文件夹,从菜单栏里点击“工具”,选择“文件夹选项”。单击“查看”标签,将“不缓存缩略图”、“记住每个文件夹的视图位置”、“鼠标指向文件夹或桌面项时显示提示信息”这三个类前的勾去掉。再点击上方的“应用到所有文件夹”,点确定!
8〉 右键单击IE,选择“属性”,在“常规”标签中,点击“使用空白页”,再点确定!
最后的话
到这里,我们的新手装系统就基本介绍完了,但笔者还想提醒大家几点:
1〉 杀毒软件一定要装,并且经常更新,定期杀毒,不要以为不乱上网站就不会中毒。
2〉 系统一定要打补丁,微软每个月第二个星期发布补丁,届时一定按我上面提到的方法去更新。
3〉 切勿胡乱下载安装软件。很多不正规的网站提供的下载链接可能是带有病毒的,或者是绑定了一堆垃圾软件。请下载的时候一定要注意查看选项,把不需要的软件前的勾去掉。
4〉 不要随便改动计算机设置,不要随意删除计算机的文件 重装系统后第一天没觉出来,等2天后就出现了,进入桌面后哪个图标也打不开,要等1分钟左右吧,才见桌面图标闪一下,就和刷新了一下一样,这样才能打开程序了!!!!并且原来我点的ADSL才出现连接界面,哪个高手知道怎么回事呀,他们有的说是杀毒软件的事
装系统中:
看屏幕中的提示,因为都是中文的所以几乎不需要介绍什么。首先需要用户选择是安装新的操作系统还是修复,选择安装新的操作系统,然后按F8同意那些协议,出现盘符选择界面。
用键盘上下键移动光标至你要安装的盘符上,按“D”键,系统会提示说删除该盘将会删除所有资料,不管它,接着按“L”键再确定删除。完成后屏幕返回到刚才的界面。然后选择“在当前盘安装WindowsXP”(大概意思,原文不记的了)后按回车,系统提示要格式化该盘。选择“快速NTFS方式”格式化,此时出现格式化界面,稍候等进度条到100%时计算机开始自动装入光驱中的安装文件,大概时间8分钟左右(视光驱速度而定),完成后系统自动重启。
注意,此时要将光驱里的安装盘取出,为的是避免重启后又自动读取。
重启后再次进入安装界面,此时将安装盘再放入后安装继续,几乎不需要你做任何设置,点“下一步”就可以。不过中间有一个输入序列号的过程得动动手。
这个过程大概40分钟左右,其间屏幕会显示一些关于windowsXP的相关功能信息,可以留意一下。完成后系统提示将安装盘取出。你拿出来后,重启,顺便进BIOS将开机启动顺序改回至硬盘启动,基本上就完成安装过程了!
装系统后:
一般在进入系统后常用硬件的驱动都已经安装好,但不是全部。这时就需要用户自己来安装。首先查看机器哪些驱动未安装!右键点击“我的电脑”,选“属性”,在“硬件”标签里点击“设备管理器”,凡是在设备前面有一个问号图标的均表示该设备有问题。双击,按上面的提示将驱动安装好。直到前面的“问号”全部消失为止。
需要装的驱动一般有显卡、声卡、网卡、猫,一些比较高级的机器还有红外、蓝牙等适配器的驱动。
下面就是对系统的一些优化设置,如果你的机器配置不高,建议按我说的做。
1〉 右键单击屏幕,选择“属性”。点击“外观”标签,在“外观与按钮”的下拉菜单中选择“windows经典样式”,然后在“设置”标签里,按个人喜好调整屏幕分辨率大写,一般为1024*768。如果你用的是普通CRT显示器,需要再点“监视器”标签,将“屏幕刷新频率”调整至“85赫兹”,点确定!屏幕看起来是不是舒服多了?
2〉 右键单击任务栏,选择“属性”,在“任务栏”标签项中将“显示快速启动”前的复选框选中。然后再点击““开始”菜单”标签,将菜单类改成“经典“开始”菜单”,点“确定”,看看现在的样子是不是要舒服点呢?(嘿,我的个人感觉!)
3〉 右键单击我的电脑,选择“高级”标签。单击性能项里的“设置”按钮。在视觉效果项里先点击“调整为最佳性能”,然后在下面的复选项里选中“在文件夹中使用常见任务”。如下图所示:
做好这步,然后再点“视觉效果”旁边的“高级”标签,在“虚拟内存”处点“设置”按钮。在打开的属性框里,先将光标定位在C盘,点击下面的“无分页文件”,然后再点击D盘(你机器上哪个盘空间大就点哪个),在自定义大小里输入相应数值,点旁边的“设置”按钮,再点击确定。如下图所示:
虚拟内存的设置要根据本身内存容量来定!一般情况为内存本身容量的1.5倍即可!
4〉 右键单击“我的电脑”,选择“系统还原”标签,如果不需要的话选择“在所有驱动器上关闭系统还原”,这个一般人都不需要!
5〉 此时你会发现屏幕右下角系统托盘处有一个“盾”样的图标,那个是windowsXP的安全中心。双击打开它,在你没有安装自己的杀毒软件的时候,将“防火墙”和“病毒防护”都开启。这样安全性会相对较高一些!
6〉 做好这些后单击“开始”,选择“Windows Update”,此时自动打开IE连接到windows升级网站,按照它上面的提示进行升级,步骤必不可少!升级完成后可能会需要重新启动计算机。
7〉 打开任意一个文件夹,从菜单栏里点击“工具”,选择“文件夹选项”。单击“查看”标签,将“不缓存缩略图”、“记住每个文件夹的视图位置”、“鼠标指向文件夹或桌面项时显示提示信息”这三个类前的勾去掉。再点击上方的“应用到所有文件夹”,点确定!
8〉 右键单击IE,选择“属性”,在“常规”标签中,点击“使用空白页”,再点确定!
F. 如何将delphi程序图标放入系统托盘中
去下载一个Delphi下的系统托盘控件,TrayIcon,安装后,将该控件拖到窗体上,稍稍设置一下就好。
随便下载一个For
Delphi版本的就好了,然后下载下来的安装文件中应该有扩展名为.dpk的文件,双击该文件,在随后画面中点击install应该就好了。