一个简单的保护视力的软件

原创 2004年08月22日 10:04:00

身体是革命的本钱,眼睛是程序员的本钱

保护视力最好的办法是远离显示器,对于需要长期工作在显示器前的人来说,只要保持适当的距离,不要常时间盯着屏幕,工作一段时间后看看远方,就能很大程度的保护好自己的眼睛!

如果使自己离开屏幕呢?做一个定时提醒的小工具就行了!但是,提醒是一回事,能不能主动执行又是一回事,怎么强制执行呢?最好的办法是创建另外一个桌面,并将这个桌面切换到前面,让自己无法处理任何操作,只好去看看远方了;等过一段时间后,销毁桌面,再将计算机操作权交还给用户。

以下是就源代码,很简单,就不说明了

 

VOID CALLBACK TimerAPCProc(LPVOID lpArgToCompletionRoutine,
         DWORD dwTimerLowValue,
         DWORD dwTimerHighValue)
{
 static HDESK hDesk = NULL;
 if (hDesk)
 {
  return;
 }

 SYSTEMTIME st;
 GetSystemTime(&st);

 if (st.wMinute == 0 && st.wSecond == 0)
 {
  hDesk = CreateDesktop("Protect Eye",
   NULL,
   NULL,
   0,
   GENERIC_ALL,
   NULL);
  
  if (NULL == hDesk)
  {
   DWORD dwErr = GetLastError();
   return;
  }
  SwitchDesktop(hDesk);
  
  HANDLE hTimer = CreateWaitableTimer(NULL, TRUE, NULL);
  LARGE_INTEGER liDueTime;
  liDueTime.QuadPart = -300000000;
  SetWaitableTimer(hTimer, &liDueTime, 0, NULL, NULL, 0);
  WaitForSingleObject(hTimer, INFINITE);
  CloseHandle(hTimer);
  CloseDesktop(hDesk);
  hDesk = NULL;
 }
}

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 HANDLE hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
 if (! hTimer)
 {
  return 0;
 }

 LARGE_INTEGER liUTC = {0};
 BOOL bSuccess = SetWaitableTimer(hTimer, &liUTC, 800, TimerAPCProc, NULL, FALSE);

 if (bSuccess)
 {
  while(1)
  {
   SleepEx(INFINITE, TRUE);
  }
 }

 CloseHandle(hTimer);

 return 1;
}

Win7系统激活工具之小马工具-您关闭了软件保护服务,请在服务中开启后重新激活

使用小马工具激活
  • hezikui1987
  • hezikui1987
  • 2014年06月02日 17:13
  • 41426

剖析:从软件加密到软件授权保护

一直在关注软件授权保护相关的技术内容,发现一些基本概念经常容易被我们混淆,比如软件保护,软件加密,硬件加密,软件授权等,下面就阐述一下我对上述概念的理解,以及它们之间的关系。 AD:网+线下沙龙...
  • baidu_18607183
  • baidu_18607183
  • 2016年05月04日 23:06
  • 856

信息安全——对称算法与非对称算法

信息化时代的飞速发展,给人们的生活带来了翻天覆地的变化。人们在享受网络数据便利交互的同时,也面临着一个重大的问题——信息安全.从开始的邮件沟通、QQ聊天,演变到现在的手机移动支付,保护个人信息与数据,...
  • linksafe2014
  • linksafe2014
  • 2016年06月03日 15:19
  • 558

一个简单的屏幕保护例子

Demos简介:      当屏幕或按键没有被触碰的时间超过5s时,会进入屏幕保护模式。屏幕保护模式下,原来的布局文件被隐藏,只显示图片背景,且每1s图片切换一次,图片切换时有淡入、淡出效果。...
  • xifens
  • xifens
  • 2014年05月06日 23:14
  • 520

壳的编写(1)-- 简介与搭建框架

“壳”是一种现实比较常见的东西,比如:花生壳、瓜子壳等等。这些壳主要是用来保护其自身的果实的,要想吃到这些果实,我们就需要将其剥掉。在我们的软件行业也存在这样类似的东西,这种东西我们也称之为“壳”,我...
  • oBuYiSeng
  • oBuYiSeng
  • 2016年01月02日 14:06
  • 1571

绕过驱动保护经典例子

刚刚接触软件破解还有驱动编写,好多东西都不熟,折腾了好久,把中间可能对大家有价值的过程记录下来。 刚开始碰到的问题就是不能内核调试,因为要写驱动,需要用到。一般禁用内核调试都...
  • a949308398
  • a949308398
  • 2014年07月01日 18:59
  • 745

企业源代码加密软件保护机制

企业办公信息化,防泄密需求不断的扩大。功能单一的产品注定要被淘汰。对于防泄密产品,需要具备以下的几个功能: (1)解密方案是否完整   文档因为业务来往需要发送给客户时,就需要员工向管理人员进行申...
  • shenxinda_lu
  • shenxinda_lu
  • 2015年10月20日 16:00
  • 501

IOS之利用Xcode创建一个简单的IOS应用程序

1.前言 现在就让我们踏入神奇的IOS开发之旅吧~ 2.Hell IOS World项目构建 2.1 点击Xcode->File->New->Project,选择Page-Based Appli...
  • u010013695
  • u010013695
  • 2013年04月12日 17:59
  • 2806

绕TX驱动保护TesSafe.sys方法

前段时间看过 wanleidawa 兄弟发的帖子 【原创】搞定QQ游戏系列(寻仙,DNF等等)驱动保护TesSafe.sys,给我启发很大。 不过很多人可能对上面的内容不太能理解。我先简单说下他那里的...
  • u014563989
  • u014563989
  • 2016年12月14日 14:03
  • 2066

如何修改和访问方法中受保护的实例变量

1.实例变量的可见度有三种. 公共的(public) 实例变量可以在类的内部和外部操作。 受保护的(protected)实例变量只能在该类的内部及其子类中进行操作 私有的(private...
  • wangxuejuan1125
  • wangxuejuan1125
  • 2015年11月07日 15:44
  • 397
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个简单的保护视力的软件
举报原因:
原因补充:

(最多只允许输入30个字)