标题: 利用LabWindows/CVI控制显示器的开启与关闭 [打印本页]
作者: wangjianxin2001 时间: 2006-11-20 10:20 标题: 利用LabWindows/CVI控制显示器的开启与关闭
本例子举例说明了在LabWindows/CVI中调用SDK函数过程中使用两种方式获得调用句柄。在LabWindows/CVI句柄的数据类型为整型,而在Windows中,句柄的类型通常为HWND类型,这就需要在使用过程中进行强制转换。 如果想在电脑运行时关闭显示器节电,那么可以用如下程序。
程序界面:
程序代码:
#include "windows.h"
#include
#include
#include "显示器操作.h"
static int panelHandle;
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
if (InitCVIRTE (hInstance, 0, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "显示器操作.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
//关闭按钮
int CVICALLBACK off (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int handle;
switch (event)
{
case EVENT_COMMIT:
//获得面板句柄
GetPanelAttribute (panelHandle, ATTR_SYSTEM_WINDOW_HANDLE, &handle);
//关闭显示器
SendMessage((HWND)handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
break;
}
return 0;
}
//开启按钮
int CVICALLBACK on (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int handle;
switch (event)
{
case EVENT_COMMIT:
//获得CVI窗口句柄
handle = GetCVIWindowHandle();
//打开显示器
SendMessage((HWND)handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
break;
}
return 0;
}
转自:小信的博客
guQ1JWmz.rar (383.34 KB)
附件: [利用LabWindows/CVI控制显示器的开启与关闭] guQ1JWmz.rar (2006-11-20 10:19, 383.34 KB) / 下载次数 217
http://bbs.eccn.com/attachment.php?aid=265&k=2f267c16640d8d712313b2ba45792720&t=1732336236&sid=UwUmwd
作者: 1001 时间: 2006-11-20 10:24
强!有意思!去试试!哈哈!谢谢版主了!
作者: chenchao8848 时间: 2006-11-20 13:13
你应该把上一个例子给发过来
这个用处不是很大的
作者: fydyxy 时间: 2006-11-28 16:22
我想看看
[em01]
作者: xiezj 时间: 2006-12-13 10:56
厉害哦
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |