新程序员在这里。像超级新人。我正在为我爸爸的生日写一个程序。
#include <stdio.h>
#include <time.h>
int main()
{
int CurrentTime;
system("start https://www.youtube.com/watch?v=FchMuPQOBwA");
return 0;
}
到目前为止,我有这个。我怎么做才能让他在生日或特定时间之前无法打开它?在time.h中查看并搜索了一下,但我似乎无法找到解决方案。另外我如何将它发送给他所以它只是一个.exe而且他看不到代码?
提前致谢
答案 0 :(得分:1)
在“time()”函数的引用中,您需要使用所有函数的示例。 http://www.cplusplus.com/reference/ctime/time/
您需要做的步骤:
以下是一个示例程序:
#include <stdio.h> /* printf */
#include <time.h> /* time_t, struct tm, difftime, time, mktime */
int main ()
{
time_t c_time, b_time;
struct tm b_date;
double seconds;
y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_sec = 0;
y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1; //January first, 2000. I'll let you change that because I don't know when's the big day.
time(&c_time); /* get current time; same as: timer = time(NULL) */
b_time = mktime(&b_date);
seconds = difftime(c_time,b_time);
if(seconds < 0) //negative difference means c_time > b_time
{
//do stuff
}
return 0;
}
现在,如果你是一个完全的初学者,这里的一些东西有点难以理解。我只能建议您阅读一本好的C教程,一切都会变得清晰。我希望你有足够的时间;)
答案 1 :(得分:1)
在Windows上(因为您似乎使用该操作系统),您可以执行以下操作:
#include <windows.h>
#include <stdio.h>
/* The date on which this program should continue running */
#define DAY 10
#define MONTH 12 /* 1 = Jan... 12 = Dec */
int main()
{
SYSTEMTIME t;
GetLocalTime(&t);
if (t.wDay != DAY || t.wMonth != MONTH) {
printf("You can't open this program today!\n");
MessageBox(0, "You can't open this program today!", "Error", MB_ICONSTOP);
return 1;
}
system("start https://www.youtube.com/watch?v=FchMuPQOBwA");
return 0;
}
GetLocalTime()函数和SYSTEMTIME结构在windows.h中,因此需要包含它。
或者使用time.h中的time()函数,但在这种情况下,您需要将所需的日期转换为UNIX时间戳(请参阅http://en.wikipedia.org/wiki/Unix_time),或将time()返回的信息转换为日/月
这是一个仅在特定日期运行的简单程序,如果没有,则退出并显示错误消息。如果你想在程序运行时安装一个安装在他计算机上的程序,然后在打开网页之前等待特定的时间,那就复杂得多(你基本上必须在系统的某个地方复制EXE文件,并且将它添加到注册表中,以便它在登录时自动运行...可能不超过30行代码,但不是最简单的代码;-))。
要将它作为EXE发送,所以他没有看到源代码,好吧,你只需编译它就好像要运行它,然后将EXE发送给他(确保它不需要来自编译器的运行时库,检查另一台PC是否正常运行)。当然,如果你的父亲用一些编辑器查看EXE文件,他会看到网页的地址(但不容易看到打开这个页面的条件)。