在过去的日期中启动程序,然后在延迟后重置正确的日期。

本文详细介绍了在VisualProlog5.2中如何通过编程设定系统日期为过去某一天,然后在指定延迟后恢复正确日期的方法。作者在自动生成的代码中插入特定的谓词调用来实现这一功能,展示了如何使用日期和睡眠函数来控制日期的更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主持人在以下主题中拒绝了我的问题:

“在尝试之前先尝试一下”。

他/她是对的。
这是我在 Visual Prolog 5.2中的 解决方案

1.我用UI策略“ VPI”和VPI选项“ MDI模式”定义了一个项目。

2.我在自动生成的代码中插入了以下行:


predicates 
  past() 
clauses 
  past():-!,
      date(Y,M,D),
      Win=cast(window,0),
      Command="Full\\Path\\To the\\desired.exe",
      Param="",
      WsFlag=wsf_restored,
      PastY=2011, PastM=10, PastD=20,
      date(PastY,PastM,PastD),
    _ApplicationId = vpi_CreateProcess( Win, Command, Param, WsFlag ),
    Minute=3,
    Centisec=6000*Minute,
    sleep(Centisec),
    date(Y,M,D).    
3.在生成任务窗口之前,我将上述谓词的调用插入了GOAL部分中,并退出了程序。
  
goal 
ifdef use_mdi
  vpi_SetAttrVal(attr_win_mdi,b_true),
enddef
ifdef ws_win
  ifdef use_3dctrl
    vpi_SetAttrVal(attr_win_3dcontrols,b_true),
  enddef
enddef 
  past(),
  exit, 
  vpi_Init(task_win_Flags,task_win_eh,task_win_Menu,"past",task_win_Title).  
VIP 5.2帮助的一个简短说明:
日期(INTEGER年,INTEGER月,INTEGER日)

流模式(i,i,i),(o,o,o)

读取或设置系统日期

备注

(o,o,o)从计算机的内部时钟读取日期。

(i,i,i)设置计算机内部时钟使用的日期。 在UNIX上,您必须具有root特权才能使用此流模式。

From: https://bytes.com/topic/software-development/insights/923055-starting-program-past-date-then-reset-correct-date-after-delay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值