| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3866 人关注过本帖
标题:如何让程序预定执行一段代码(定时或闲时)
只看楼主 加入收藏
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
回复 20楼 吹水佬
感谢!有空研究一下。
2021-03-12 16:35
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用吹水佬在2021-3-12 12:12:12的发言:

最简单的示例(消息)

** 主进程
** test1.exe
**
cDefPath = ADDBS(JUSTPATH(SYS(16)))
_screen.Visible = .F.
DECLARE LONG SendMessage IN User32 LONG, LONG, LONG, LONG
of = CREATEOBJECT("Form1")
of.show
READ EVENTS
RETURN

DEFINE CLASS Form1 as Form
    ShowWindow = 2
    hSubpro = 0
    ADD OBJECT cmd as CommandButton WITH top=10,left=10,height=22,caption="启动子进程"
    ADD OBJECT edt as EditBox WITH top=40,left=10,width=300,height=200
   
    PROCEDURE Init
        BINDEVENT(this.hWnd, 0x401, this, "_Message")
    ENDPROC
   
    PROCEDURE Destroy
        IF this.hSubpro > 0
            SendMessage(this.hSubpro, 0x401, 0, 0)
        ENDIF
        CLEAR EVENTS
    ENDPROC
   
    PROCEDURE cmd.Click
        oApp = CREATEOBJECT("Shell.Application")
        oApp.ShellExecute(cDefPath+"test2.exe", TRANSFORM(thisform.hWnd), "", "", 1)
    ENDPROC

    PROCEDURE _Message(hWnd, nMsg, wParam, lParam)
        DO CASE
            CASE wParam == 1
                this.edt.SelText = "子进程启动" + 0h0D0A
                this.hSubpro = lParam
            CASE wParam == 2
                this.edt.SelText = "子进程关闭" + 0h0D0A
        ENDCASE
    ENDPROC
ENDDEFINE


** 子进程
** test2.exe
**
PARAMETERS cParam
_screen.Visible = .F.
DECLARE LONG SendMessage IN User32 LONG, LONG, LONG, LONG
of = CREATEOBJECT("Form1", cParam)
of.show
READ EVENTS
RETURN

DEFINE CLASS Form1 as Form
    ShowWindow = 2
    AutoCenter = 1
    hMain = 0
   
    PROCEDURE Init(cParam)
        this.hMain = INT(VAL(cParam))
        SendMessage(this.hMain, 0x401, 1, this.hWnd)
        BINDEVENT(this.hWnd, 0x401, this, "_Message")
    ENDPROC
   
    PROCEDURE Destroy
        IF this.hMain> 0
            SendMessage(this.hMain, 0x401, 2, 0)
        ENDIF
        CLEAR EVENTS
    ENDPROC
   
    PROCEDURE _Message(hWnd, nMsg, wParam, lParam)
        DO CASE
            CASE wParam == 0
                MESSAGEBOX("主程序关闭")
                this.Release
            CASE wParam == 1
            CASE wParam == 2
        ENDCASE
    ENDPROC
ENDDEFINE


在主进程中启动子进程还是要用到timer ……,如果每分钟启动子进程一次!
2021-03-12 16:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用radiofan在2021-3-12 16:46:35的发言:



在主进程中启动子进程还是要用到timer ……,如果每分钟启动子进程一次!

每分钟启动子进程一次就没必要。
启动子进程后就可以一直工作,直到完成整个任务,什么时候需要子进程做什么是可以控制。
2021-03-12 18:47
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用吹水佬在2021-3-12 18:47:39的发言:


每分钟启动子进程一次就没必要。
启动子进程后就可以一直工作,直到完成整个任务,什么时候需要子进程做什么是可以控制。


嗯,我的意思是:主进程中定时启动子进程还是要用到timer !比如在整点运行子程序1,在每个分钟点,如果满足特定条件运行子程序2 等等 ……
2021-09-24 10:28
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
似乎可以用windows的计划任务程序,来调用你的程序。

dBase有人接盘了。
2021-09-24 10:52
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
以下是引用xuminxz在2021-9-24 10:52:42的发言:

似乎可以用windows的计划任务程序,来调用你的程序。


计划任务不能检索和判断我的需求
2021-09-24 11:00
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:332
专家分:804
注 册:2021-1-9
收藏
得分:0 
以下是引用radiofan在2021-9-24 11:00:35的发言:



计划任务不能检索和判断我的需求

计划任务定时启动你的程序  程序打开后判断需求   符合就执行后续部分   没有就退出
到下个时间点又会启动你的程序   理论上符合你的要求的
2021-09-24 19:44
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:935
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 20楼 吹水佬
有空学习一下。并加以运用。

素数问题的解决是我学习编程永恒的动力。
2021-09-25 07:15
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


吹版的思路不错,定时程序测试中,每整点运行二号进程,其他时间每隔一分钟运行其他进程。

[此贴子已经被作者于2021-9-26 09:40编辑过]

2021-09-26 08:30
快速回复:如何让程序预定执行一段代码(定时或闲时)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030715 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved