通行证: 用户 密码 网站建设  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>C#语言>>正文 新版上线![旧版]
注:打开慢时请稍等

从任务通知区启动屏幕保护程序

http://www.iyit.net  日期:2006-11-2 13:13:55  来源:iyit.net录入  点击:
参加讨论】  本文通过一个快速启动屏幕保护程序的小程序SSLaunch,来介绍应用程序如何向任务栏通知区加入图标、如何禁止多个Win32实例以及屏幕保护程序的有关内容。

  SSLaunch用C语言编写,用Visual C++ 5.0编译,是一个基于无模式对话框的程序,同时禁止多个实例,即一次只能有一个实例运行。任务栏通知区图标在对话框初始化时加入,对话框响应程序定义的回调消息,当鼠标左键按下时,弹出一由屏幕保护程序名填充的上下文菜单。对话框关闭(即程序退出)时删除任务栏通知区图标。如果读者有兴趣可以很容易地把它移植成基于 MFC 的程序。

  1、任务栏通知区

  Windows 95的任务栏中有一个通知区, 应用程序可以把一个图标放入其中,以表示操作状态,并可以有与之相关联的工具用作说明控制。当鼠标出现在此图标的矩形边界内时,向相应的应用程序发送应用程序定义的回调消息。 应用程序通过发送消息增加、修改、删除任务栏图标。消息的发送通过调用函数Shell_NotifyIcon来完成,如果调用成功,则返回TRUE;否则,返回FALSE。Shell_NotifyIcon函数原形如下:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
  DWORD dwMessage, // 消息标识符
  PNOTIFYICONDATA pnid // NOTIFYICONDATA 结构
  );
     消息标识符可以是 :
  NIM_ADD 向任务栏通知区加入图标
  NIM_DELETE 从任务栏通知区删除图标
  NIM_MODIFY 改变任务栏通知区图标
     NOTIFYICONDATA 结构:
  typedef struct _NOTIFYICONDATA {
   DWORD cbSize;
   HWND hWnd;
   UINT uID;
   UINT uFlags;
  UINT uCallbackMessage;
  HICON hIcon;
  char szTip[64];
  } NOTIFYICONDATA, *PNOTIFYICONDATA;
     其中:
  cbSize NOTIFYICONDATA 结构大小
  hWnd 接收回调消息窗口句柄
  uID 任务栏通知区图标标识
  uFlags 指定该结构中那些成员有效
  uCallbackMessage 应用程序定义的回调消息
  hIcon 任务栏通知区图标句柄
  szTip 任务栏通知区提示字符串
     参数uFlags可以是下列值的组合:
  NIF_ICON 任务栏通知区图标有效
  NIF_MESSAGE 应用程序定义的回调消息有效
  NIF_TIP 任务栏通知区提示字符串有效
  a.任务栏通知区图标的加入
  BOOL SSLaunch_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)

  {

   // Add an notification icon to the taskbar

   NOTIFYCONDATA nid;

   NOTIFYICONDATA nid;

  

   nid.cbSize = sizeof(nid);

   nid.hWnd = hwnd;

   nid.uID = IDI_SSLAUNCH;

   nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;

   nid.uCallbackMessage = WM_SSLAUNCHICONNOTIFY;

   nid.hIcon=LoadIcon(GetWindowInstance(hwnd),

  KEINTRESOURCE(IDI_SSLAUNCH));

   lstrcpyn(nid.szTip,g_szAppName,sizeof(nid.szTip) /sizeof(nid.szTip[0]));

  

   return(Shell_NotifyIcon(NIM_ADD, &nid))

  }

  b.任务栏通知区图标的删除

   应用程序退出时,应该删除任务通知区上相应的图标:
  void SSLaunch_OnDestroy(HWND hwnd)

  {

   // Remove the notification icon from the taskbar

  

   NOTIFYICONDATA nid;

   nid.cbSize = sizeof(nid);

   nid.hWnd = hwnd;

   nid.uID = IDI_SSLAUNCH;

  

   Shell_NotifyIcon(NIM_DELETE, &nid);

  }

  c.应用程序定义回调消息的接收

  若为任务栏通知区指定了回调消息,则系统会于鼠标事件在此区域发生时

  向应用程序发送此消息,其中wParam是任务栏通知区图标标识,lParam

  是鼠标事件发生后的鼠标信息。

  

  void SSLaunch_OnIconNotify(WPARAM wParam, LPARAM lParam)

  {

   UINT uID = (UINT)wParam;

   UINT uMsg = (UINT)lParam;

  

   if(uID == IDI_SSLAUNCH){

   switch(uMsg){

本新闻共4页,当前在第1页  1  2  3  4  


编辑:iyit.net [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:C#中如何插入照片到Excel
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
从任务通知区启动屏幕保护程序
C#中如何插入照片到Excel
用C#把文件转换为XML
写好C程序的秘籍(强!)
C++程序设计最佳实践
安装IE7.0密技 绕过WGA 完美轻松搞定
新版迅雷5让Opera实现批量高速下载
应用readyboost实测闪存是否能提高VIS
最新永久免费网游年列表,免费3d网游
VBScript编码规范格式
xml写的无限级的树
从任务通知区启动屏幕保护程序
让Win XP桌面的文字消失无踪
Windows操作系统十大隐患服务细评说
永久免费网游《刀OL》11月3日开放新服
用C#把文件转换为XML
C#中如何插入照片到Excel
从任务通知区启动屏幕保护程序
写好C程序的秘籍(强!)
C++程序设计最佳实践
破解QQ密码如此简单 
DOS教程 DOS命令基础应用
低格、分区、高格的应对--DOS命令应用
合并VCD片断、快速删除文件夹--DOS命令
一劳永逸--批处理命令(一)
破解Windows密码如此简单!
SQL Server安装文件挂起错误解决办法
三分钟让你的系统变处女:Acronis Tru
QQ号码激活的常见问题及案例分析 
Q-Zone鼠标指针免费用
从任务通知区启动屏幕保护程序
安装IE7.0密技 绕过WGA 完美轻松搞定
新版迅雷5让Opera实现批量高速下载
应用readyboost实测闪存是否能提高VIS
VBScript编码规范格式
xml写的无限级的树
从任务通知区启动屏幕保护程序
让Win XP桌面的文字消失无踪
Windows操作系统十大隐患服务细评说
永久免费网游《刀OL》11月3日开放新服
IE7惊现又一安全漏洞 弹出恶意代码窗口

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息