vc6.0用SDK写的一个关机小程序编译通过,不能运行,求教!!!

//关机.cpp#include<windows.h>#include<iostream>#include"resource.h"BOOLCALLBACKDlgProc(... //关机.cpp
#include <windows.h>
#include <iostream>
#include "resource.h"
BOOL CALLBACK DlgProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
TCHAR time1[4];
TCHAR time[50];
SYSTEMTIME st;
static int hour,minute;
int i;
BOOL IsBegin=FALSE;
switch(message)
{
case WM_INITDIALOG:
SetDlgItemText(hwnd,IDC_STATIC2,"自动关机时间:");
SetTimer(hwnd,ID_TIMER,100,NULL);
for (i=0; i <24; i++)
{
if (i <=9)
wsprintf(time1,"0%d",i);
else
wsprintf(time1,"%d",i);
SendDlgItemMessage(hwnd,IDC_COMBO1,CB_ADDSTRING,0,(LPARAM)lParam);
}
for ( i=0; i <60; i++)
{
if (i <=9)
wsprintf(time1,"0%d",i);
else
wsprintf(time1,"%d",i);
SendDlgItemMessage(hwnd,IDC_COMBO2,CB_ADDSTRING,0,(LPARAM)lParam);
}
break;
case WM_TIMER:
GetSystemTime(&st);
GetTimeFormat(NULL,TIME_FORCE24HOURFORMAT,&st,"HH':'mm':'ss",time+wsprintf(time," %d-%d-%d 星期%d ",st.wYear,st.wMonth,st.wDay,st.wDayOfWeek),50);//将时间转换为标准显示格式存储到time数组中
SetWindowText(GetDlgItem(hwnd,IDC_STATIC1),time);
if (IsBegin && hour==st.wHour && minute==st.wMinute)
{
ExitWindowsEx(0,0);
PostQuitMessage(0);
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BEGIN:
IsBegin = TRUE;
break;
case IDC_COMBO1:
if (HIWORD(wParam)==LBN_SELCHANGE)
{
hour=SendMessage((HWND)lParam,CB_GETCURSEL,0,0);
}
break;
case IDC_COMBO2:
if (HIWORD(wParam)==LBN_SELCHANGE)
{
minute=SendMessage((HWND)lParam,CB_GETCURSEL,0,0);
}
break;
}
case WM_DESTROY:
KillTimer(hwnd,ID_TIMER);
PostQuitMessage(0);
break;
default:
return FALSE;
}
return TRUE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
return DialogBox(hInstance,MAKEINTRESOURCE(IDD_MAIN),0,DlgProc);
}
展开
 我来答
yelaizuozuo
2008-10-27 · TA获得超过1631个赞
知道大有可为答主
回答量:802
采纳率:0%
帮助的人:350万
展开全部
提升权限
VOID ShutDownProcess ( VOID ) //关机程序
{

if ( IsWindows9x() ) {
ExitWindowsEx( EWX_SHUTDOWN | EWX_FORCE, 0);
}
else {
HANDLE hToken;
TOKEN_PRIVILEGES tkp;

if ( !OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
MessageBox ( NULL , "无法关机"纤雀,CLASSNAME,MB_OK);
return ;
}

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS) {
MessageBox ( NULL , "困橘无法汪竖团关机",CLASSNAME,MB_OK);
}

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) {
MessageBox ( NULL , "无法关机",CLASSNAME,MB_OK);
}
}
}
守着我的忧伤
2008-10-17
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
因百度不知道为何不能补充手蠢,两个资源文件见此楼。

//resource.h
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by auto.rc
//
#define IDD_MAIN 101
#define ID_TIMER 105
#define IDC_COMBO1 1000
#define IDC_COMBO2 1001
#define IDC_BEGIN 1002
#define IDC_STATIC1 1004
#define IDC_STATIC2 1005

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1006
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

//关机.rc
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by auto.rc
//
#define IDD_DIALOG1 101
#define IDD_MAIN 101
#define ID_TIMER 105
#define IDC_COMBO1 1000
#define IDC_COMBO2 1001
#define IDC_BEGIN 1002
#define IDC_STATIC1 1004
#define IDC_STATIC2 1005

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1006
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

vc6.0下能编译通棚扮过,本人初学,请教各位高手了,希望能详细解答一下不足毕和陪之处,谢谢了。
如果写的程序结构上有问题或者是权限问题,希望各位高手能予以修改,并能够调试通过,本人感激不进。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式