网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
从任务通知区启动屏幕保护程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
(!bIsFirstInstance){

   MessageBox(NULL, _TEXT("Screen Saver Launcher is already running."), g_szAppName,

   MB_OK | MB_ICONINFORMATION);

   }

  
  使共享段内变量加1,没使用 g_lInstanceCount ++,而是使用InterlockedIncrement(&g_lInstanceCount),因为InterlockedIncrement函数对变量的访问进行同步(Synchronize),阻止多个线程同时访问同一个变量。有关线程同步的内容请参阅有关Win32 SDK的文档。

  禁止多个Win32实例的方法很多,如Win32核心对象(Mutex, Semaphore)、全局原子等都可以用来禁止多个Win32实例,在这里我们只简单地介绍以上两种方法。

  
  3.Screen Saver Launch:

  屏幕保护程序是以scr为扩展名的标准Windows可执行程序。当编辑可用屏幕保护程序的列表时,Control Panel Desktop Applet在Windows启动目录(Windows目录和系统目录)下查找扩展名是scr的基于Windows的可执行程序,如果Windows目录和系统目录下同时存在相同文件名的屏幕保护程序,则忽略Windows目录下的那一个。任何蓄意的捣乱(如将文本文件或是基于DOS的可执行文件扩展名改为scr)Window95都不予理睬,但是将标准Windows可执行程序的扩展名改为scr时,Windows95及NT将不会察觉。这只是很极端的情况,相信用户不会采用这种做法来"测试"你的Windows.

  标准的基于Win32的屏幕保护程序必须按照严格的标准编写,有关详细介绍请参阅有关Win32 SDK文档。这里需要提到的一点是所有的基于Win32的屏幕保护程序都要求有一个不超过25个字符的说明字符串。在屏幕保护程序的资源字符串表中,这个说明字符串的标识必须是1。

  但我们发现在Windows 95下的屏幕保护程序不完全是严格按照标准编写的,当编辑可用屏幕保护程序的列表时,Control Panel Desktop Applet只是简单地把屏幕保护程序的文件名加入列表,而不是加入上面提及的说明字符串。而在Windows NT下,系统严格区分标准的和非标准的屏幕保护程序。对于标准的屏幕保护程序,系统取得它的说明字符串并将其显示在屏幕保护程序的列表中;对于非标准的屏幕保护程序,系统只把它的文件名加入列表。

  由于Windows 95和Windows NT下屏幕保护程序的列表显示略有不同,所以这里分别加以说明。为区别起见,Windows 95下的SSLaunch用SSLaunch95表示,Windows NT下的SSLaunch用SSLaunchNT表示。

  SSLaunch95 采用Window 95调用屏幕保护程序的方法,在Windows95的启动目录下搜索屏幕保护程序,把文件名加到任务栏通知区图标上下文菜单中,单击鼠标即可启动相应的屏幕保护程序。Windows 95把用户选中的屏幕保护程序名保存在 System.ini文件中\boot\SCRNSAVE.EXE 下。SSLaunch95比较系统保存的用户选中的屏幕保护程序名和搜索到的屏幕保护程序名,如果相同,则在任务栏通知区图标上下文菜单的相应菜单项设置检查标志,以表示这个屏幕保护程序是否是当前用户选中的。SSLaunch95没有判断Windows启动目录下的屏幕保护程序是否是真正的屏幕保护程序,因为Windows 95下的Win32不能轻易地判断一个scr文件是否是基于GDI的Windows可执行文件(NE 或PE格式)。作者找到了两个可用于判断文件类型的函数:SHGetFileInfo,GetBinaryType。SHGetFileInfo可以判断出.exe、.com、.bat几种文件类型,但认为.scr文件不是可执行文件;GetBinaryType可以轻易地判断出文件类型,但Windows 95不支持,只是简单地返回ERROR_NOT_IMPLEMENT,而Win32却支持它。

  点击示意图

  SSLaunch95也可以在Windows NT 下运行,不过弹出的上下文菜单不能用屏幕保护程序说明字符串填充,并且不能判断scr是否是基于GDI的Windows可执行程序。

  下面介绍SSLaunchNT在Windows NT下对scr文件的判
  • 下一篇资讯: 获得OnOK退出控制
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号