免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: freeand
打印 上一主题 下一主题

哪个模块可以更改windows的时期和时间? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2005-01-04 18:33 |只看该作者

哪个模块可以更改windows的时期和时间?

[quote]原帖由 "superdoctor"]WINDOWS确实比较讨厌,你到其他WINDOWS的论坛去问问,这里是CHINAUNIX,老实说大家的WINDOWS经验不是太丰富的 [/quote 发表:
不许撵人家走!
楼主别灰心,
让我帮你去试试, 看有没有什么好办法.

论坛徽章:
0
12 [报告]
发表于 2005-01-04 18:47 |只看该作者

哪个模块可以更改windows的时期和时间?

原帖由 "flw" 发表:
恍砟烊思易?
楼主别灰心,
让我帮你去试试, 看有没有什么好办法.


谢谢!

论坛徽章:
0
13 [报告]
发表于 2005-01-05 10:54 |只看该作者

哪个模块可以更改windows的时期和时间?

[quote]原帖由 "flw" 发表:
恍砟烊思易

论坛徽章:
0
14 [报告]
发表于 2005-01-05 12:08 |只看该作者

哪个模块可以更改windows的时期和时间?


  1. use Win32::Job;
  2.    
  3. my $job = Win32::Job->;new;
  4.    $job->;spawn("cmd", q{cmd /C "date 2005-01-06"});
  5.    $job->;spawn("cmd", q{cmd /C "time 12:07:12"});
  6.    $job->;run(10);
复制代码

论坛徽章:
0
15 [报告]
发表于 2005-01-05 13:03 |只看该作者

哪个模块可以更改windows的时期和时间?

bytewolf,你的这个会不会弹出dos窗口?

论坛徽章:
0
16 [报告]
发表于 2005-01-05 14:39 |只看该作者

哪个模块可以更改windows的时期和时间?

[quote]原帖由 "bytewolf"][/quote 发表:


有两个窗口弹出来。。。

论坛徽章:
0
17 [报告]
发表于 2005-01-05 20:40 |只看该作者

哪个模块可以更改windows的时期和时间?

奇怪了...在我的winxp上,除了运行该程序打开的一个cmd窗口外,运行中不会再弹出新的窗口啊....

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
18 [报告]
发表于 2005-01-05 21:06 |只看该作者

哪个模块可以更改windows的时期和时间?

折腾了一晚上,终于搞定楼主的问题了:
  1. #!/usr/bin/perl -w
  2. # 2005.01.05 习作于武汉 writed by flw

  3. use strict;
  4. use Win32::API;
  5. use Tk;

  6. my $ret;

  7. Win32::API::Struct->;typedef( 'TIMESTRUCT' =>; qw(
  8.     WORD wYear;
  9.     WORD wMonth;
  10.     WORD wDayOfWeek;
  11.     WORD wDay;
  12.     WORD wHour;
  13.     WORD wMinute;
  14.     WORD wSecond;
  15.     WORD wMilliseconds;
  16.     ) ) || die "typedef struct TIMESTRUCT failed: [$!]\n";

  17. $ret = Win32::API->;Import( 'Kernel32.dll', 'VOID GetLocalTime( LPTIMESTRUCT time )' );
  18. die "Import Win32API GetLocalTime failed: [$!]\n" unless $ret;
  19. $ret = Win32::API->;Import( 'Kernel32.dll', 'BOOL SetLocalTime( LPTIMESTRUCT time )' );
  20. die "Import Win32API SetLocalTime failed: [$!]\n" unless $ret;

  21. my $win = new Tk::MainWindow( '-title' =>; 'flw' );
  22. my $labelText = 'Press OK to set local time';
  23. $win->;Label( '-textvariable' =>; \$labelText )->;pack();
  24. $win->;Button( '-text' =>; 'OK', '-command' =>; \&OnOK )->;pack();

  25. sub OnOK{
  26.     my $timeVar = Win32::API::Struct->;new( 'TIMESTRUCT' );
  27.     $timeVar->;align(0);
  28.     GetLocalTime( $timeVar );
  29.     $timeVar->;{ 'wYear' } = 2005;
  30.     $timeVar->;{ 'wMonth' } = 1;
  31.     $timeVar->;{ 'wDay' } = 23;
  32.     my $ret = SetLocalTime( $timeVar );
  33.     $labelText = "ret: [$ret]  ".($ret ? 'success' : "failed: [$!]");
  34. }

  35. MainLoop();
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
19 [报告]
发表于 2005-01-05 21:10 |只看该作者

哪个模块可以更改windows的时期和时间?

主要思路是利用 Win32::API 模块来调用 windows SDK 提供的功能,
按照这个思路可以调用所有的 SDK API。

至于怎么不弹出窗口来,
我想用 CreateProcess 应该可以的。
system 肯定是不行的,因为 system 要激活一个 cmd 进程。
我用 WinExec( "cmd /c date 2005-01-20", SW_HIDDEN ) 试过,按思路讲应该是可以实现的,不过始终报错“找不到命令文件”,不知道是我哪里搞错了,改天再折腾折腾。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2005-01-05 21:12 |只看该作者

哪个模块可以更改windows的时期和时间?

Win32::API 可以用 ppm 下载下来。

哈哈!现在我总算是基本掌握了扩展 Perl 和嵌入 Perl 两种技术。
从而可以实现 Perl/C 混合编程了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP