⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitrest.cpp

📁 提示每天计划事件;显示倒计时;可输入保存当前或者往下日子的计划;等等
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "UnitRest.h"
#pragma package(smart_init)
#pragma resource "*.dfm"

int myTime = 10 ;
TRestForm *RestForm ;
HHOOK OldHook ;

/*
Private Type KBDLLHOOKSTRUCT '低级键盘钩子的索引值
vkCode As Long      '虚拟按键码(1--254)
scanCode As Long    '硬件按键扫描码
flags As Long       '键按下:128 抬起:0
time As Long        '消息时间戳间
dwExtraInfo As Long '额外信息 
End Type
*/

//---------------------------------------------------------------------------

__fastcall TRestForm::TRestForm(TComponent* Owner)
        : TForm(Owner)
{
}

//-----------------------------------------------------------------------------
//功能:屏蔽系统快捷键
long CALLBACK KeyProc(int code,WPARAM wParam,LPARAM lParam)
{
          HHOOK   OldHook ;
          KBDLLHOOKSTRUCT   *pkbhs;    //键盘钩子索引值
          if ( code < 0 )
          {
            return CallNextHookEx(OldHook,code,wParam,lParam);
          }
          pkbhs = (KBDLLHOOKSTRUCT*)lParam;
          if ( pkbhs->vkCode == 91 || pkbhs->vkCode == VK_RWIN )                //封锁win键
          {
            return 1;
          }
          if ( pkbhs->vkCode == VK_F4 && pkbhs->flags&LLKHF_ALTDOWN )           //封锁alt+f4键
          {
            return 1;
          }
          if ( pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)<0 )   //封锁   CTRL+ESC
          {
            return 1;
          }
          if ( pkbhs->vkCode == VK_TAB && pkbhs->flags&LLKHF_ALTDOWN )          //封锁   ALT+TAB
          {
            return 1;
          }
          if ( pkbhs->vkCode == VK_ESCAPE && pkbhs->flags&LLKHF_ALTDOWN )       //封锁   ALT+ESC
          {
            return 1;
          }
          if ( pkbhs->vkCode == VK_SPACE && GetAsyncKeyState(VK_CONTROL)<0 )    //封锁   CTRL+' '
          {
            return 1;
          }
          return CallNextHookEx(OldHook,code,wParam, lParam);
}
  
//---------------------------------------------------------------------------
void __fastcall TRestForm::FormShow(TObject *Sender)
{
Timer->Enabled = true ;
Tips->Top = ( Screen->Height - Tips->Height ) / 2 - 100 ;
Tips->Left = ( Screen->Width - Tips->Width ) / 2 ;
LeftTime->Top = Tips->Top - 100 ;
LeftTime->Left = Tips->Left + 15 ;
HWND hWnd1 = FindWindow("Progman",NULL) ;    //隐藏桌面
ShowWindow(hWnd1,SW_HIDE);
HWND hWnd2 = FindWindow("Shell_TrayWnd",NULL) ;
ShowWindow(hWnd2,SW_HIDE);
OldHook = SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)KeyProc,HInstance,0); //reg the hook
}

//---------------------------------------------------------------------------
void __fastcall TRestForm::TimerTimer(TObject *Sender)
{
if ( myTime == 0 )
RestForm->Hide();
else
{
 LeftTime->Caption = "剩余时间 " + IntToStr(myTime) + " 秒       " ;
 myTime--;
}
if ( myTime < 0 )
myTime = 10 ;
}

//---------------------------------------------------------------------------
void __fastcall TRestForm::FormHide(TObject *Sender)
{
 myTime = 10 ;
 UnhookWindowsHookEx(OldHook);  //取消钩子
 Timer->Enabled = false ;
 HWND hWnd1 = FindWindow("Progman",NULL) ;   //显示桌面
 ShowWindow(hWnd1,SW_SHOW);
 HWND hWnd2 = FindWindow("Shell_TrayWnd",NULL) ;
 ShowWindow(hWnd2,SW_SHOW);        
}

//---------------------------------------------------------------------------



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -