精华内容
下载资源
问答
  • 该软件可支持根据你得屏幕大小来进行3D渲染,并可自定义设置多种鱼类品种比如:七彩神仙鱼、刺尾鱼、蓝魔鬼小丑鱼、半环刺盖鱼等,同时还可以根据你的想法来添加鱼类和数量。 带有日历和时钟显示功能,还可以显示...
  • 主要为大家详细介绍了python tkinter实现屏保程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 阻止屏幕保护程序

    2015-05-14 23:55:43
    完全绿色,简洁小巧,很实用的小程序,为打游戏时屏幕保护程序不受限制的频繁出现而设计的。
  • Windows屏保程序

    2017-11-11 17:24:10
    漂亮的屏保程序,酷炫的3D宇宙风景。可用于Windows和Mac
  • 自己制作的简单的屏保程序,可以随意修改,有喜欢的欢迎下载。
  • 屏幕保护程序

    2016-12-13 18:24:57
    java写的屏幕保护程序 里面有bat可执行文件
  • 1、将解压出来的文件全部复制到c:\windows目录下,然后在桌面的屏幕属性屏幕保护程序而选择本程序即可 2、MagicImages_Config.lua文件为本屏保程序的配置文件,采用Lua编写,通过修改此文件可自由定制模型显示效果或...
  • 很多xp系统竟然没有自带的屏保,可下载测试用。
  • 为您提供Flying Cube 屏幕保护程序下载,Flying Cube是一款简单的屏幕保护程序,具有图形效果,当你工作的过程中临时有一段时间需要做一些其他的事情,你可以通过来Flying Cube保护你的电脑屏幕。使用方法 1.右键...
  • 主要介绍了python实现屏保程序,适用于背单词,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 屏幕保护程序 VB6.0

    2013-01-15 17:54:25
    程序运行后将不能对当前窗体进行任何操作,单击右键可解除操作限制。 解锁密码:123
  • 易语言屏幕保护程序源码系统结构:子程序_划线,取屏幕宽度_,取屏幕高度_,取窗口名称,是否运行,GetWindowLong,SetWindowLong,GetClientRect,SetParent,SetWindowPos,隐藏鼠标,取窗口标题长度,取窗口标题
  • 我的Chromecast图片的屏幕保护程序。 Chromecast具有出色的壁纸图像。 此扩展程序会在Chrome浏览器中以全屏模式打开它们。 所有的工作已经由谷歌完成,谢谢他们而不是我。 也许将来我可以做出一些选择,做得更好。 ...
  • VC 实现屏幕保护程序,相信屏保程序大家都不陌生吧,本程序可编译生成 scr格式的屏保程序,当然,只是大致的展示这类程序的实现过程,要想真正成为屏保,还要做一些其它的功课,比如动画效果之类的。其实原理还是挺...
  • scr屏幕保护程序

    2012-09-11 17:09:29
    个人收藏的10款精美scr屏保。包括水波纹热带鱼水族馆(附注册码)
  • 屏保程序

    2019-03-06 01:06:03
    博文链接:https://newdebug.iteye.com/blog/82681
  • 屏幕保护程序屏幕保护程序项目
  • Win95 专有的屏幕保护程序
  • 模仿微软的屏幕保护程序系统结构:子程序_划线, ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------子程序_划线 || ||------__启动窗口_将被销毁 || ||------_画板1_鼠标位置被移动 || ||
  • 黑客帝国屏幕保护程序(附程序) 大家都看过《黑客帝国》中不断下落的绿色字母吧,该源码模拟出了这种效果,极其相似!
  • 屏幕保护程序的扩展名虽然是”scr”,但其实是一个可执行的”exe”文件。但他又是一个比较独特的”exe”文件。下面就来探讨一下,用C#是如何编写屏幕保护的整个过程。 二.C#编写字幕显示屏保程序的关键步骤以及解决...
  • 由于有了免费的应用程序,并且对注册表进行了一些更改,因此您可以使默认的屏幕保护程序成为您的专属屏保! Customize the default screensavers 自定义默认屏幕保护程序 If you’ve ever pressed the Customize ...

    Windows 7 and Vista include a nice set of backgrounds, but unfortunately most of them aren’t configurable by default.  Thanks to a free app and some registry changes, however, you can make the default screensavers uniquely yours!

    Windows 7和Vista包含一组不错的背景,但是不幸的是,大多数默认情况下不是可配置的。 由于有了免费的应用程序,并且对注册表进行了一些更改,因此您可以使默认的屏幕保护程序成为您的专属屏保!

    Customize the default screensavers

    自定义默认屏幕保护程序

    If you’ve ever pressed the Customize button on most of the default screensavers in Windows 7 and Vista, you were probably greeted with this message:

    如果您曾经在Windows 7和Vista中的大多数默认屏幕保护程序上都按下过“自定义”按钮,则可能会收到以下消息:

    sshot-14

    A little digging in the registry shows that this isn’t fully correct.  The default screensavers in Vista and 7 do have options you can set, but they’re not obvious.  With the help of an app or some registry tips, you can easily customize the screensavers to be uniquely yours.  Here’s how you can do it with an app or in the registry.

    在注册表中进行的一点挖掘表明这并不完全正确。 Vista和7中的默认屏幕保护程序确实具有您可以设置的选项,但是它们并不明显。 借助应用程序或某些注册表提示,您可以轻松地将屏幕保护程序自定义为您自己的屏幕保护程序。 您可以通过应用或在注册表中执行以下操作。

    Customize Windows Screensavers with System Screensavers Tweaker

    使用系统屏幕保护程序Tweaker自定义Windows屏幕保护程序

    Download the System Screensavers Tweaker (link below), and unzip the folder.  Run nt6srccfg.exe in the folder to tweak your screensavers.  This application lets you tweak the screensavers’ registry settings graphically, and it works great in all editions of Windows Vista and 7, including x64 versions.

    下载System Screensavers Tweaker(下面的链接),然后解压缩该文件夹。 在文件夹中运行nt6srccfg.exe来调整屏幕保护程序。 此应用程序允许您以图形方式调整屏幕保护程序的注册表设置,并且在Windows Vista和7的所有版本(包括x64版本)中都可以正常运行。

    Change any of the settings you want in the screensaver tweaker, and click Apply.

    在屏幕保护程序调节器中更改所需的任何设置,然后单击“应用”。

    sshot-16

    To preview the changes to your screensaver, open the Screen Saver settings window as normal by right-clicking on the desktop, and selecting Personalize.

    要预览对屏幕保护程序的更改,请通过右键单击桌面并选择“个性化”,正常打开“屏幕保护程序”设置窗口。

    image

    Click on the Screensaver button on the bottom right.

    单击右下角的屏幕保护程序按钮。

    image

    Now, select your modified screensaver, and click Preview to see your changes.

    现在,选择修改后的屏幕保护程序,然后单击“预览”以查看所做的更改。

    image

    You can change a wide variety of settings for the Bubbles, Ribbons, and Mystify screensavers in Windows 7 and Vista, as well as the Aurora screensaver in Windows Vista.  The tweaks to the Bubbles screensaver are especially nice.  Here’s how the Bubbles look without transparency.

    您可以为Windows 7和Vista中的气泡,功能区和Mystify屏幕保护程序以及Windows Vista中的Aurora屏幕保护程序更改各种各样的设置。 对Bubbles屏幕保护程序的调整特别好。 这是气泡不透明的外观。

    sshot-18

    And, by tweaking a little more, you get a screensaver that looks more like a screen full of marbles.

    而且,通过进行一些微调,您将获得一个看起来更像是装满大​​理石的屏幕的屏幕保护程序。

    sshot-19

    Ribbons and Mystify each have less settings, but still can produce some unique effects.

    功能区和Mystify的设置较少,但仍可以产生一些独特的效果。

    sshot-22

    How’s that for a brilliant screensaver?

    出色的屏幕保护程序怎么样?

    sshot-24

    And, if you want to return your screensavers to their default settings, simply run the System Screensavers Tweaker and select Reset to defaults on any screensaver you wish to reset.

    而且,如果要将屏幕保护程序恢复为默认设置,只需运行系统屏幕保护程序调整程序,然后在要重置的任何屏幕保护程序上选择“重置为默认值”即可。

    sshot-20

    Customize Windows Screensavers in the Registry

    在注册表中自定义Windows屏幕保护程序

    If you prefer to roll up your sleeves and tweak Windows under-the-hood, then here’s how you can customize the screensavers yourself in the Registry.  Type regedit into the search box in the Start menu, browse to the key for each screensaver, and add or modify the DWORD values listed for that screensaver using the Decimal base.

    如果您喜欢卷起袖子并在后台对Windows进行调整,则可以按照以下方法在注册表中自定义屏幕保护程序。 在“开始”菜单的搜索框中键入regedit,浏览至每个屏幕保护程序的键,然后使用“十进制”基数添加或修改为该屏幕保护程序列出的DWORD值。

    regedit_Start

    Please Note: Tweaking the Registry can be difficult, so if you’re unsure, just use the tweaking application above. Also, you’ll probably want to create a System Restore Point.

    请注意:调整注册表可能很困难,因此,如果不确定,只需使用上面的调整应用程序即可。 另外,您可能需要创建一个系统还原点

    image

    Bubbles

    泡泡

    To edit the Bubbles screensaver, browse to the following in regedit:

    要编辑Bubbles屏幕保护程序,请在regedit中浏览至以下内容:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Bubbles
    
    
    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Bubbles
    

    Now, add or modify the following DWORD values to tweak the screensaver:

    现在,添加或修改以下DWORD值以调整屏幕保护程序:

    • MaterialGlass – enter 0 for solid or 1 for transparent bubbles

      MaterialGlass –输入0表示实心或1表示透明气泡

    • Radius – enter a number between 1090000000 and 1130000000; the larger the number, the larger the bubbles’ radius

      半径–输入介于1090000000和1130000000之间的数字; 数字越大,气泡半径越大

    • ShowBubbles – enter 0 to show a black background or 1 to show the current desktop behind the bubbles

      ShowBubbles –输入0以显示黑色背景或输入1以显示气泡后的当前桌面

    • ShowShadows – enter 0 for no shadow or 1 for shadows behind the bubbles

      ShowShadows –在气泡后面输入0表示没有阴影或在阴影后面输入1表示阴影

    • SphereDensity – enter a number from 1000000000 to 2100000000; the higher the number, the more bubbles on the screen.

      SphereDensity –输入1000000000至2100000000之间的数字; 数字越高,屏幕上的气泡越多。

    • TurbulenceNumOctaves – enter a number from 1 to 255; the higher the number, the faster the bubble colors will change.

      TurbulenceNumOctaves –输入1到255之间的数字; 数值越大,气泡颜色变化的速度越快。

    Ribbons

    色带

    To edit the Ribbons screensaver, browse to the following in regedit:

    要编辑Ribbons屏幕保护程序,请在regedit中浏览至以下内容:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Ribbons
    
    

    Now, add or modify the following DWORD values to tweak the screensaver:

    现在,添加或修改以下DWORD值以调整屏幕保护程序:

    • Blur – enter 0 to prevent ribbons from fading, or 1 to have them fade away after a few moments.

      模糊–输入0以防止色带褪色,或输入1以使它们在片刻后消失。

    • Numribbons – enter a number from 1 to 100; the higher the number, the more ribbons on the screen.

      数字-输入1到100之间的数字; 数字越高,屏幕上的色带越多。

    • RibbonWidth – enter a number from 1000000000 to 1080000000; the higher the number, the thicker the ribbons.

      RibbonWidth –输入介于1000000000至1080000000之间的数字; 数字越高,色带越厚。

    Mystify

    故弄玄虚

    To edit the Mystify screensaver, browse to the following in regedit:

    要编辑Mystify屏保,请在regedit中浏览至以下内容:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Mystify
    
    
    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Mystify
    

    Now, add or modify the following DWORD values to tweak the screensaver:

    现在,添加或修改以下DWORD值以调整屏幕保护程序:

    • Blur – enter 0 to prevent lines from fading, or 1 to have them fade away after a few moments.

      模糊–输入0以防止线条褪色,或输入1以使它们在片刻后消失。

    • LineWidth – enter a number from 1000000000 to 1080000000; the higher the number, the wider the lines.

      LineWidth –输入从1000000000到1080000000的数字; 数字越高,线条越宽。

    • NumLines – enter a number from 1 to 100; the higher the value, the more lines on the screen.

      NumLines –输入1到100之间的数字; 值越高,屏幕上的行越多。

    Aurora – Windows Vista only

    Aurora –仅Windows Vista

    To edit the Aurora screensaver in Windows Vista, browse to the following in regedit:

    要在Windows Vista中编辑Aurora屏幕保护程序,请在regedit中浏览到以下内容:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Screensavers\Aurora
    
    

    Now, add or modify the following DWORD values to tweak the screensaver:

    现在,添加或修改以下DWORD值以调整屏幕保护程序:

    • Amplitude – enter a value from 500000000 to 2000000000; the higher the value, the slower the motion.

      振幅–输入一个介于500000000至2000000000之间的值; 值越高,运动越慢。

    • Brightness – enter a value from 1000000000 to 1050000000; the higher the value, the brighter the affect.

      亮度-输入一个介于1000000000至1050000000之间的值; 值越高,影响越亮。

    • NumLayers – enter a value from 1 to 15; the higher the value, the more aurora layers displayed.

      NumLayers –输入1到15之间的值; 值越高,显示的极光层越多。

    • Speed – enter a value from 1000000000 to 2100000000; the higher the value, the faster the cycling.

      速度–输入介于1000000000至2100000000之间的值; 值越高,循环越快。

    Conclusion

    结论

    Although the default screensavers are nice, they can be boring after awhile with their default settings.  But with these tweaks, you can create a variety of vibrant screensavers that should keep your desktop fresh and interesting.

    尽管默认的屏幕保护程序很不错,但是使用默认设置一段时间后可能会很无聊。 但是,通过这些调整,您可以创建各种充满活力的屏保,这些屏保可以使您的桌面保持新鲜和有趣。

    Link

    链接

    Download the System Screensavers Tweaker

    下载系统屏保调节器

    翻译自: https://www.howtogeek.com/howto/15088/customize-the-default-screensavers-in-windows-7-and-vista/

    展开全文
  • 去做 添加GdkFilter以防止新窗口升至舞台上方 gtk 3.20 ..制作一个新CSS文件,在启动时根据gtk版本检查使用哪个文件进行检查 使样式以后备提供者优先级工作(从1代替600) 时钟定位在Gtk 3.20中被破坏(widget....
  • 使用Win32 SDK开发屏幕保护程序

    千次阅读 2019-01-04 10:26:51
    屏幕保护程序(Screen Saver)的历史几乎与视窗操作系统的历史一样悠久,设计它的目的是为了保护CRT显示器使其的使用寿命更长。但随着技术的进步,新型的CRT显示器及液晶显示器已经无须这样做了,不过屏幕保护程序并未...

    暮鼓集    行走集

    1.引言

    屏幕保护程序(Screen Saver)的历史几乎与视窗操作系统的历史一样悠久,设计它的目的是为了保护CRT显示器使其的使用寿命更长。但随着技术的进步,新型的CRT显示器及液晶显示器已经无须这样做了,不过屏幕保护程序并未消失,因为其绚丽的画面成了人们彰显个性的方式。

    现在,逼真的水族箱,浩瀚的太空以及更吸引眼球的屏幕保护程序不段被开发出来。

    如果你有兴趣开发自己的屏幕保护程序,并且具有Windows程序的开发经验,请深入阅读本文,本文将提供使用Win32 Platform SDK开发屏幕保护程序的指引及范例。

    2.屏幕保护程序是一种应用程序

    屏幕保护程序虽然变化多端,但对开发者而言,它仍然是一种Windows应用程序,虽然屏幕保护程序的扩展文件名是scr,但在文件格式上与exe可执行文件是完全一样的。

    那么,是不是只要是Windows应用程序都可以作为屏幕保护程序呢?

    我们做个一个实验,将Windows自带的“扫雷”程序文件winmine.exe改成winmine.scr,接着我们打开显示器设定,选择屏幕保护程序选项卡,可以发现winmine.scr已经被当成一个屏幕保护程序出现在列表里。我们选中它,看看发生了甚么--扫雷程序运行起来了!但是,随后无论我们如何摆弄键盘和鼠标,程序不会象其他屏幕保护程序那样自动关闭。

    所以,虽然屏幕保护程序一种应用程序,但是它与普通应用程序在人机界面上有所不同,我们可以归纳出以下几点特征:

    操作系统自动运行程序 全屏幕的窗口 用户输入即退出 因此,只要我们在一个应用程序中实现这些特征,那么这个应用程序即可做为屏幕保护程序。

    3.实现屏幕保护程序的基本特征

    3.1 操作系统自动运行程序

    这实际上由系统完成,只要用户将程序设定为系统的屏幕保护程序,那么当用户没有输入一段时间后,系统就会自动调用这个程序。因此,这不需要开发者操心。

    3.2. 创建全屏幕的窗口

    我们在创建Window时设置其坐标及长宽参数即可实现这个目的:

    CreateWindow( WNDCLASS_SSFRAME,
                             NULL,
                             WS_POPUP|WS_VISIBLE,
                             0,
                             0,
                             GetSystemMetrics( SM_CXSCREEN ),
                             GetSystemMetrics( SM_CYSCREEN ),
                             HWND_DESKTOP,
                             NULL,
                             hInst,
                             NULL);
    

    注意,在这里函数参数中的父窗口句柄传入的是HWND_DESKTOP。

    3.3. 用户输入即退出

    用户输入的主要途径是通过键盘或鼠标,在Windows系统中,当键盘或鼠标事件发生时,系统会产生一系列的消息通知应用程序,具体有如下几个:

    WM_LBUTTONDOWN  按下鼠标左键
    WM_MBUTTONDOWN按下鼠标中键   
    WM_RBUTTONDOWN按下鼠标右键
    WM_MOUSEMOVE鼠标移动
    WM_KEYDOWN按下键盘键
    WM_KEYUP抬起键盘键
    WM_SYSKEYDOWN按下键盘系统键

      (注: 系统键指Windows系统定义的用来激活菜单的F10键,以及按下Alt与其它键的组合键)。

    因此,当屏幕保护程序收到这些消息时,应立刻退出运行,在消息处理函数添加如下的代码:

    INT g_nOrigin_X = -1, g_nOrigin_Y = -1;
    
    switch( message )
    {
     ...
    case WM_LBUTTONDOWN:
    case WM_MBUTTONDOWN:
    case WM_RBUTTONDOWN:
    case WM_KEYDOWN:
    case WM_SYSKEYDOWN:
        PostQuitMessage( 0 ); // 退出程序
        break;  
    case WM_MOUSEMOVE:
        {
            INT nNew_X = LOWORD(lParam);
            INT nNew_Y = HIWORD(lParam);
            if( g_nOrigin_X == -1 && g_nOrigin_Y == -1 )
            {
               g_nOrigin_X = nNew_X ;
               g_nOrigin_Y = nNew_Y ;
             }
             else if( g_nOrigin_X != nNew_X  &&  g_nOrigin_Y != nNew_Y )
                PostQuitMessage( 0 );
        }
    ...
    }
    

    请注意,程序对WM_MOUSEMOVE的消息的处理有些特殊。

    当应用程序开始之行时,系统会将当前的鼠标坐标用WM_MOUSEMOVE消息通知应用程序。如果采用收到这个消息就退出处理方法,就会导致程序刚运行就会退出。因此,通过使用两个全局变量g_nOrigin_X和g_nOrigin_Y来纪录下初始化时的鼠标位置值。当再次收到这一消息时,通过比较当前鼠标位置与纪录的位置值可检测出鼠标有没有被移动过,若检测到则退出运行。

    3.4 实现屏幕保护程序的画面

    这与普通应用程序是完全一样的,在WM_PAINT里运用GDI API实现你的想法。在本例中,我们什么也不做,这就是简单实现黑屏的效果。

    按照上面的方法生成的屏幕保护程序已经有模有样了。

    4.成为真正的屏幕保护程序

    尽管上述的应用程序已经很像一个屏幕保护程序了,但是,如果我们深入使用它,就会发现一些问题。

    当我们把这个应用程序的扩展名改成scr并且设定它为系统的屏幕保护程序后,再次在控制面板中选择显示器设定并进入屏幕保护程序选项卡,发现及时我们没有“测试”,它却已经运行了。

    这是因为,Windows系统会通过不同的命令行参数,以三种方式运行屏幕保护程序:

    方式命令行参数
    正常(由系统自动执行,全屏幕显示/s
    配置(屏幕保护程序选项卡中的设定)/c
    预览(显示在屏幕保护程序选项卡的小窗口中)/p

    当我们一进入显示器设定的屏幕保护程序选项卡,系统就会自动在小窗口中预览当前选中的屏幕保护程序,即在命令行中传入/p参数运行了程序。而我们的程序中并未处理命令行参数,所以出现了上述的问题。

    4.1 处理命令行参数

    程序如下

    if( __argc > 1 )
    {
     if( strstr(__argv[1], "/p"))
     {
      if( __argc == 3 )
      {
       hFrameWnd = (HWND)atoi( __argv[2] );
    
      GetClientRect( hFrameWnd, &rect );
      CreateWindow( "ScreenSaverDraw", NULL,
        WS_CHILD|WS_VISIBLE,
        rect.left, rect.top,
        rect.right, rect.bottom,
        hFrameWnd, NULL,
        hInst, NULL);
    
      return 0;
      }
     }
     else if(strchr(__argv[1], 'c') )
     {
      MessageBox( NULL, "This screen saver doesn't have configuration",
       "Blank Screen Saver", MB_OK );
      // Preview mode
      return 0;
     }
    }
    

    我们重点要处理的是/p和/c参数。

    当系统传入/p参数时,一定会将预览窗口的句柄通过第二个命令行参数一并传入。因此在程序中,可以通过

    hFrameWnd = (HWND)atoi( __argv[2] );
    
    

    来获知预览窗口句柄,此后可以在此窗口中显示预览界面。

    当系统传入/c参数时,通常我们要创建一个对话框,并在其中提供一些设定让用户对屏幕保护程序的外观进行定制而使其更具个性。在本程序中,为了简化,所以只其弹出一个对话框,告知用户"This screen saver doesn’t have configuration”。

    4.2 密码验证

    如果在设置屏幕保护程序的时候选择了密码保护选项,则当屏幕保护程序退出前,应该显示密码验证窗口。

    应用程序如何获知用户有没有选择密码保护? Windows会通过发送消息SCRM_VERIFYPW消息来通知应用程序来进行保护。

    我们可以定制一个对话框要求用户输入指定的密码。 也可以通过Windows的Shell API使用共用的密码界面,这会更加简单可靠。

    处理SCRM_VERIFYPW的代码:

    case SCRM_VERIFYPW:
     if( VerifyPassword(hWnd) )
      PostQuitMessage(0);
     break;
    

    函数VerifyPassword的代码:

    BOOL VerifyPassword( HWND hwnd )
    {
        // Under NT, we return TRUE immediately. This lets the saver quit,
        // and the system manages passwords. Under '95, we call VerifyScreenSavePwd.
        // This checks the appropriate registry key and, if necessary,
        // pops up a verify dialog
    
        OSVERSIONINFO osv;
        HINSTANCE hpwdcpl;
        typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd);
        VERIFYSCREENSAVEPWD VerifyScreenSavePwd;
        BOOL bRet;
    
        osv.dwOSVersionInfoSize = sizeof(osv);
     
        GetVersionEx( &osv );
    
        if( osv.dwPlatformId == VER_PLATFORM_WIN32_NT )
             return TRUE;
    
        hpwdcpl = LoadLibrary( "PASSWORD.CPL" );
    
        if( hpwdcpl == NULL )
            return TRUE;
    
        VerifyScreenSavePwd=(VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl,"VerifyScreenSavePwd");
     
        if (VerifyScreenSavePwd==NULL)
        {
            FreeLibrary( hpwdcpl );
            return TRUE;
        }
    
        bRet = VerifyScreenSavePwd( hwnd );
        FreeLibrary(hpwdcpl);
    
        return bRet;
    }
    

    4.3 处理其它消息

    屏幕保护程序还必须处理如下系统消息

    WM_ACTIVATE

    WM_ACTIVATEAPP

    WM_NCACTIVATE   

    这是因为我们没有处理WM_SYSCOMMAND消息。当我们选择最大化,最小化按钮,选择系统菜单时等等,或者是应用程序就会收到这个消息,

    前三个消息指示当程序窗口被系统或其它应用程序解除活动状态时,应退出。(注,wParam为FALSE表示收到这是一个DEACTIVATE消息。WM_SYSCOMMAND是系统通知消息,wParam标示参数类型,SC_SCREENSAVE和SC_CLOSE表示系统要求执行预定的屏幕保护程序和结束程序,这两种情况下,也应该结束程序的执行。

    代码如下:

    switch( message )
    {
     ...  
    case WM_ACTIVATE:
    case WM_ACTIVATEAPP:
    case WM_NCACTIVATE :
        if( wParam == FALSE )
             PostQuitMessage( 0 );
         break;
     
    case WM_SYSCOMMAND:
         if( wParam == SC_SCREENSAVE || wParam == SC_CLOSE )
             PostQuitMessage( 0 );
        break;
     ...
    }
    

    4.4 隐藏光标

    由于屏幕保护程序运行过程中,不需要与用户互动,因此鼠标光标没有必要显示出来。隐藏鼠标的光标可以通过处理WM_SETCURSOR消息来实现。

    case WM_SETCURSOR:  
      SetCursor( NULL );  
      return FALSE;
    

    5.让开发更简单-Screen Saver程序库

    使用上述的方法所开发的应用程序已经具有屏幕保护程序的典型特征了。我们可以了解,任何屏幕保护程序为了实现其共有特征,必须对键盘,鼠标和部分系统消息进行相同的处理。

    Microsoft考虑到了这一点,它对这些处理过程进行封装,这就是Screen Saver程序库scrnsave.lib。

    在这个程序库中,Mircosoft封装了包括WinMain,注册Window Class(窗口类),建立消息循环等过程。开发者要做的只是完成名为”ScreenSaverProc”的消息处理函数。

    下面是用Screen Saver程序库改写的”全屏”程序的完整代码。

    #include <windows.h>
    #include <scrnsave.h>
    
    LRESULT CALLBACK ScreenSaverProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
    {
        switch( message )
        {
            case WM_PAINT:
            {
                PAINTSTRUCT ps;
                HDC hdc;
                RECT rect;
       
                GetClientRect( hWnd, &rect );
       
                hdc = BeginPaint(hWnd, &ps);
       
                hBrush = CreateSolidBrush( RGB(0,0,0) );
                FillRect( hdc, &rect, hBrush );
       
                DeleteObject( hBrush );
                EndPaint( hWnd, &ps );
            }
            break;
     
    
        case SCRM_VERIFYPW:
            ScreenSaverChangePassword( hWnd );
            break;
        }
     
        defScreenSaverProc(hWnd, message, wParam, lParam);
    }
    
     
    
    BOOL WINAPI RegisterDialogClasses (HANDLE hInst)
    {
        return TRUE;
    }
    
     
    
    BOOL WINAPI ScreenSaverConfigureDialog (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch( message )
        {
           case WM_INITDIALOG:
               return FALSE;
        }
        return 0;
    }
    

    6.结束语

    通过阅读本文,相信读者已经掌握了屏幕保护程序的开发方法。对于开发一般的屏幕保护程序,我建议使用Screen Saver程序库进行开发,这样,开发者可以将精力放在屏幕保护程序的内容的开发上,从而提高开发的效率。

    展开全文
  • 易语言源码屏幕保护程序.rar

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,701
精华内容 34,280
关键字:

屏保程序