GUI剖析之 获取屏保控制窗口显示模式的实现(屏保应用)
2012-11-21 20:29
459 查看
获取屏保控制窗口显示模式的实现(屏保应用)
#include <scrnsave.h>
enum SCRMODE { SMNONE, SMCONFIG, SMPASSWORD, SMPREVIEW, SMSAVER };
//-----------------------------------------------------------------------------
SCRMODE GetScrMode(HWND &hWnd)
{
SCRMODE ScrMode = SMNONE;
hWnd = NULL;
TCHAR *pc = ::GetCommandLine();
if (*pc == _T('\"'))
{
pc++;
while (*pc != _T('\0') && *pc != _T('\"'))
pc++;
}
else
{
while (*pc != _T('\0') && *pc != _T(' '))
pc++;
}
if (*pc != _T('\0'))
pc++;
while (*pc == _T(' '))
pc++;
if (*pc == _T('\0'))
{
ScrMode = SMCONFIG;
hWnd = NULL;
}
else
{
if (*pc == _T('-') || *pc == _T('/'))
pc++;
if (*pc == _T('s') || *pc == _T('S'))
{
ScrMode = SMSAVER;
}
else
if (*pc == _T('p') || *pc == _T('P') ||
*pc == _T('l') || *pc == _T('L'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMPREVIEW;
hWnd = reinterpret_cast<HWND>(::_ttoi(pc));
}
else
if (*pc == _T('c') || *pc == _T('C'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMCONFIG;
hWnd = *pc == _T('\0')
? ::GetForegroundWindow()
: reinterpret_cast<HWND>(::_ttoi(pc));
}
else
if (*pc == _T('a') || *pc == _T('A'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMPASSWORD;
hWnd = reinterpret_cast<HWND>(::_ttoi(pc));
}
}
return ScrMode;
}
#include <scrnsave.h>
enum SCRMODE { SMNONE, SMCONFIG, SMPASSWORD, SMPREVIEW, SMSAVER };
//-----------------------------------------------------------------------------
SCRMODE GetScrMode(HWND &hWnd)
{
SCRMODE ScrMode = SMNONE;
hWnd = NULL;
TCHAR *pc = ::GetCommandLine();
if (*pc == _T('\"'))
{
pc++;
while (*pc != _T('\0') && *pc != _T('\"'))
pc++;
}
else
{
while (*pc != _T('\0') && *pc != _T(' '))
pc++;
}
if (*pc != _T('\0'))
pc++;
while (*pc == _T(' '))
pc++;
if (*pc == _T('\0'))
{
ScrMode = SMCONFIG;
hWnd = NULL;
}
else
{
if (*pc == _T('-') || *pc == _T('/'))
pc++;
if (*pc == _T('s') || *pc == _T('S'))
{
ScrMode = SMSAVER;
}
else
if (*pc == _T('p') || *pc == _T('P') ||
*pc == _T('l') || *pc == _T('L'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMPREVIEW;
hWnd = reinterpret_cast<HWND>(::_ttoi(pc));
}
else
if (*pc == _T('c') || *pc == _T('C'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMCONFIG;
hWnd = *pc == _T('\0')
? ::GetForegroundWindow()
: reinterpret_cast<HWND>(::_ttoi(pc));
}
else
if (*pc == _T('a') || *pc == _T('A'))
{
pc++;
while (*pc == _T(' ') || *pc == _T(':'))
pc++;
ScrMode = SMPASSWORD;
hWnd = reinterpret_cast<HWND>(::_ttoi(pc));
}
}
return ScrMode;
}
相关文章推荐
- GUI 剖析之 获取桌面位图的实现(屏保应用)
- python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过autopy实现右键菜单和另存为操作
- GUI 剖析之实现窗口显示在Z轴最上方
- 我们的应用或多或少都会从网络获取图片数据然后进行显示,下面就将实现一个这样的例子,获取网络中的图片!
- GUI 剖析之 键盘方向键控制鼠标移动的实现
- 改变程序显示模式(获取窗口大小、状态栏大小、标题栏大小、边框大小)
- 深入剖析设计模式中的组合模式应用及在C++中的实现
- 子线程如何获取和设置 或者控制窗口实时显示数据(网上的资料经个人整理拼凑总结)
- OpenCV获取摄像头数据并显示在窗口里 Python实现
- 设计模式的应用-动态代理实现事务控制
- 【 应用以及剖析】之 java.util.Observer 观察者模式实现
- 子线程如何获取和设置 或者控制窗口实时显示数据(网上的资料经个人整理拼凑总结)
- 获取文字相对于浏览器窗口的位置以及2个应用实现
- GUI 剖析之 鼠标拖曳窗口的实现(拖曳客户区)
- C#获取显示器屏幕数量 控制winform显示到哪一个屏幕
- 获取窗口当前显示的控制器
- Delphi 实现任务栏多窗口图标显示
- SAP GUI中按F1后显示的帮助窗口为空白
- 编写一个程序用于控制其他应用程序窗口的隐藏和显示:
- javascript 控制 html元素 显示/隐藏实现代码