鱼C论坛

 找回密码
 立即注册
查看: 5456|回复: 15

一个定时关机的程序

[复制链接]
发表于 2012-7-14 15:32:27 | 显示全部楼层 |阅读模式
1鱼币
代码如下:
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include "stdlib.h"

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
  HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
    }
    return FALSE;
}
void CALLBACK myclock(HWND hwnd,UINT Message,UINT iTimerID,DWORD dwTime)
{
SYSTEMTIME now;
GetLocalTime(&now);
TCHAR time[256];
wsprintf(time,"%d年%d月%d日  %d:%d:%d",now.wYear,now.wMonth,now.wDay,now.wHour,now.wMinute,now.wSecond);
SetDlgItemText(hwnd,IDC_EDITTIME,time);
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
SetTimer(hwnd,0,1000,myclock);
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
  case IDC_BUTTON1:
  {
   TCHAR timeshut[256];
   GetDlgItemText(hwnd,IDC_EDIT2,timeshut,sizeof(timeshut));
   int timeshut1=atoi(timeshut);
   system("shutdown -s -t timeshut1");
  }break;
  case IDC_BUTTON2:
   {
    system("shutdown -a");
   }break;
        default:
  break;
    }
}
void Main_OnClose(HWND hwnd)
{
    EndDialog(hwnd, 0);
}
我编译运行后在N秒后框框里写数字再设定,他会闪个DOS窗口然后没了,我又在timeshut1的位置写成timeshut字符型的,还是不行.
我把程序里的timeshut1直接改成数字,例如50,60的就可以了,
取消的功能是可以的.
我想问下要怎么修改啊

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-14 15:32:28 | 显示全部楼层
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int print()
{
    printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
    printf("╔═══╧╧ C语言 关机程序 ╧╧═══╗\n");
    printf("║※1.实现10分钟内的定时关闭计算机 ║\n");
    printf("║※2.立即关闭计算机 ║\n");
    printf("║※3.注销计算机     ║\n");
    printf("║※0.退出系统       ║\n");
    printf("╚═══════════════════╝\n");
    
    return 0;
}

int main()
{
    int c;
    
    system("title C语言关机程序");//设置cmd窗口标题
    system("mode con cols=48 lines=25");//窗口宽度高度
    system("color 0B");
    system("date /T");
    system("TIME /T");
    char cmd[20]="shutdown -s -t ";
    char t[5]="0";
    
    print();

    scanf("%d",&c);
    getchar();
    
    switch(c)
    {
        case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;
        case 2:system("shutdown -p");break;
        case 3:system("shutdown -l");break;
        case 0:break;
        default:printf("Error!\n");
    }
    
    system("pause");
    exit(0);
    
    return 0;
}
参考下~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 15:44:45 | 显示全部楼层
 system("shutdown -s -t timeshut1");  // timeshut1 是string 类型。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-14 15:46:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 15:49:27 | 显示全部楼层
Step. 发表于 2012-7-14 15:46
system("shutdown -s -t timeshut1");
那timeshut1这个位置要用什么类型的呢

哇塞,斌少你自己写的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 15:49:37 | 显示全部楼层
同样字符串就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 15:53:58 | 显示全部楼层
好长啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 15:54:29 | 显示全部楼层
还看不懂呢- -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-14 15:57:39 | 显示全部楼层
小甲鱼 发表于 2012-7-14 15:49
同样字符串就行。

那为什么我改成timeshut不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-14 16:03:30 | 显示全部楼层
肥猫控 发表于 2012-7-14 15:49
哇塞,斌少你自己写的吗?

你是谁啊?崔一品?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 16:04:23 | 显示全部楼层
因为双引号里边是字符串的内容,编译器并不认为那是一个变量~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-14 16:09:21 | 显示全部楼层
小甲鱼 发表于 2012-7-14 16:04
因为双引号里边是字符串的内容,编译器并不认为那是一个变量~

那我要怎么改呢?初学者不太会呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 17:14:47 | 显示全部楼层
观看下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-14 18:51:57 | 显示全部楼层

╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪ 这些符号怎么打的  我键盘咋找不到0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-16 01:25:57 | 显示全部楼层
Step. 发表于 2012-7-14 16:09
那我要怎么改呢?初学者不太会呵呵


int timeshut1=atoi(timeshut);
sprintf(szcmd,"shutdown -s -t  %d",timeshut1)
system(szcmd);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-1 09:19:40 | 显示全部楼层
Step. 发表于 2012-7-14 15:46
system("shutdown -s -t timeshut1");
那timeshut1这个位置要用什么类型的呢

整整数即可,超过86400(1日对应秒数)可能会坏。(挖坟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 22:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表