// LOCKDlg.cpp : implementation file
//
#include "stdafx.h"
#include "LOCK.h"
#include "LOCKDlg.h"
#include "ShortCut.h"
#include "Splash.h"
//#include "windows.h"
//#include "process.h"
//////////////////////////////////////////////////////////////////////////////////
// //
#define OrgPASSWORD "7890" // OrgPASSWORD 为预设的密码 在这里修改 // //
// //
//////////////////////////////////////////////////////////////////////////////////
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
CButton m_BtnWeb;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
afx_msg void OnBtnWeb();
virtual BOOL OnInitDialog();
afx_msg void OnClickMailToMe();
DECLARE_EVENTSINK_MAP()
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
DDX_Control(pDX, IDC_BTN_WEB, m_BtnWeb);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
ON_BN_CLICKED(IDC_BTN_WEB, OnBtnWeb)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLOCKDlg dialog
CLOCKDlg::CLOCKDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLOCKDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLOCKDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_bIsOnLock=false;
m_bIsShow=true;
//m_bIsStart=true;
PASSWORD1=OrgPASSWORD;
PASSWORD2=OrgPASSWORD;
}
void CLOCKDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLOCKDlg)
DDX_Control(pDX, IDC_BTN_HIDE, m_BtnHide);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLOCKDlg, CDialog)
//{{AFX_MSG_MAP(CLOCKDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_LOCK, OnLock)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BTN_HIDE, OnBtnHide)
ON_BN_CLICKED(IDC_BTN_SHUTDOWN, OnBtnShutdown)
ON_COMMAND(IDR_MENU_EXIT, OnMenuExit)
ON_COMMAND(IDR_MENU_LOCK, OnMenuLock)
ON_COMMAND(IDR_MENU_MAIN, OnMenuMain)
ON_COMMAND(IDR_MENU_HELP, OnMenuHelp)
ON_COMMAND(IDR_MENU_ABOUT, OnMenuAbout)
ON_WM_RBUTTONDOWN()
ON_COMMAND(IDR_MENU_ADD, OnMenuAdd)
ON_WM_CREATE()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLOCKDlg message handlers
BOOL CLOCKDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// Very Interesting & Inportant!
// 用 RegisterServiceProcess 注册为 Service 就不会在Ctrl+Alt+Del中出现
// 需要调用 Kernel32.dll
HINSTANCE hDllInst = LoadLibrary("KERNEL32.DLL");
if(hDllInst)
{
typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC RegisterServiceProcessAlias = NULL;
RegisterServiceProcessAlias = (MYFUNC)GetProcAddress(hDllInst,"RegisterServiceProcess");
if(RegisterServiceProcessAlias)
{
RegisterServiceProcessAlias(GetCurrentProcessId(),1);
}
FreeLibrary(hDllInst);
}
SendDlgItemMessage(IDC_UNLOCK,EM_SETREADONLY,1);
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
// 显示位图按钮 IDB_BITMAP_DOWN
HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_DOWN));
m_BtnHide.SetBitmap(hBitmap);
// 自动隐藏
//SetTimer(1,500,NULL);
//m_bIsStart=false;
return TRUE; // return TRUE unless you set the focus to a control
}
void CLOCKDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CLOCKDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the m_bIsOnLock drags
// the minimized window.
HCURSOR CLOCKDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CLOCKDlg::OnLock()
{
//CRect rect;
//GetClientRect(&rect);
//CDC* pDC=GetDC();
//pDC->Draw3dRect(rect.left+193,rect.top+142,14,14,RGB(100,60,0),RGB(50,255,255));
if(m_bIsOnLock==false)
{
CString pw;
GetDlgItemText(IDC_SET,pw);
if(pw=="")
{
//SetDlgItemText(IDC_MESSAGE,"密码为空,请重新输入");
//GetDlgItem(IDC_SET)->SetFocus();
//return;
}
else
{
GetDlgItemText(IDC_SET,PASSWORD1);
GetDlgItemText(IDC_SETAGAIN,PASSWORD2);
}
if(PASSWORD1!=PASSWORD2)
{
SetDlgItemText(IDC_MESSAGE,"两次的密码不相同\n请重新输入");
SetDlgItemText(IDC_SET,"");
SetDlgItemText(IDC_SETAGAIN,"");
GetDlgItem(IDC_SET)->SetFocus();
return;
}
SetDlgItemText(IDC_MESSAGE,"系统锁定中......");
SendDlgItemMessage(IDC_SET,EM_SETREADONLY,1);
SendDlgItemMessage(IDC_SETAGAIN,EM_SETREADONLY,1);
SendDlgItemMessage(IDC_UNLOCK,EM_SETREADONLY,0);
SetDlgItemText(ID_SETLOCK,"解除锁定");
SetDlgItemText(IDC_SET,"");
SetDlgItemText(IDC_SETAGAIN,"");
GetDlgItem(IDOK)->EnableWindow(false);
//GetDlgItem(IDC_BTN_REBOOT)->EnableWindow(false);
GetDlgItem(IDC_BTN_HIDE)->ShowWindow(false);
m_bIsOnLock=true;
CRect rct;
GetWindowRect(rct);
ClipCursor(rct);
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,true,0,SPIF_UPDATEINIFILE);
::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);
GetDlgItem(IDC_UNLOCK)->SetFocus();
return;
}
else if(m_bIsOnLock==true)
{
GetDlgItemText(IDC_UNLOCK,PASSWORD3);
if(PASSWORD1!=PASSWORD3)
if(PASSWORD3==OrgPASSWORD && PASSWORD1=="")
// 如果密码部队而且已经设定了密码,则原来的OrgPASSWORD无效
;
else
{
SetDlgItemText(IDC_MESSAGE,"密码输入错误!");
SetDlgItemText(IDC_UNLOCK,"");
GetDlgItem(IDC_UNLOCK)->SetFocus();
return;
}
SetDlgItemText(IDC_MESSAGE,
没有合适的资源?快使用搜索试试~ 我知道了~
小小系统管理程序(For Win9X)源代码
共25个文件
bmp:7个
h:6个
cpp:5个
需积分: 50 42 下载量 120 浏览量
2002-12-12
00:00:00
上传
评论 11
收藏 80KB ZIP 举报
温馨提示
类似于临时保镖,用于锁定屏幕,并具有以下功能: 1屏蔽Ctrl+Alt+Del 2可以隐藏到系统托盘 3可以加入到系统启动组中 4有程序启动封面
资源推荐
资源详情
资源评论
收起资源包目录
locktools.zip (25个子文件)
Splash.cpp 3KB
Splash.h 1KB
resource.h 2KB
LOCK.rc 61KB
LOCKDlg.cpp 18KB
LOCK.dsw 533B
ShortCut.h 4KB
LOCK.clw 2KB
LOCK.cpp 2KB
LOCK.h 1KB
res
LOCK.ico 766B
PARIS256.bmp 12KB
ico00001.ico 766B
老鼠ICON.bmp 2KB
TOP ICON 拷贝.bmp 2KB
DOWN.bmp 2KB
DAVIDSOFT LOGO 256.bmp 130KB
SMPRESS.bmp 9KB
TOP ICON.bmp 2KB
LOCK.rc2 396B
ShortCut.cpp 13KB
LOCKDlg.h 2KB
StdAfx.cpp 206B
StdAfx.h 1KB
LOCK.dsp 5KB
共 25 条
- 1
资源评论
普通网友
- 粉丝: 882
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功