| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1345 人关注过本帖, 1 人收藏
标题:在任务栏中关闭软件和不重复打开软件
只看楼主 加入收藏
取消关键字高亮
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
结帖率:71.43%
收藏(1)
已结贴  问题点数:20 回复次数:12 
在任务栏中关闭软件和不重复打开软件
用vfp8.0编辑的软件,2个问题请教各位高手:1,在运行软件时如何通过在任务栏上点右键能真正的彻底关闭软件  
2,怎么实现不重复打开正在运行的软件     在使用过程中会经常出现在使用其他软件带来的操作习惯
搜索更多相关主题的帖子: 软件 任务栏 如何 
2013-03-31 16:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
问题一:在顶层表单的DESTROY事件中
thisform.release
clear events
quit

问题二:在主程序MAIN.PRG中
程序代码:
SET....
....
*——避免多次运行程序
*——声明API函数“FindWindow”
DECLARE Integer FindWindow IN USER32.DLL String lpClassName,String lpWindowName
LPWINDOWNAME="进销存管理程序"
IF .NOT. FindWindow(0,lpWindowName)==0 &&寻找窗口标题
   =MESSAGEBOX("程序已经运行了",48,"提示信息")
   QUIT
ENDIF
_SCREEN.CAPTION=LPWINDOWNAME

坚守VFP最后的阵地
2013-03-31 17:07
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
2,怎么实现不重复打开正在运行的软件
试试

程序代码:
主程序中加入如下代码:
cCaption="XXX系统"
DECLARE INTEGER FindWindow IN win32api STRING cClass,STRING cCaption
  IF FindWindow(0,cCaption)#0
     _SCREEN.CAPTION=cCaption
     =MESSAGEBOX("程序已经运行!",16,"提示")
     QUIT
     RETURN .F.
  ENDIF

2013-03-31 17:11
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
收藏
得分:0 
谢谢sdta 前辈,问题2解决了 但问题1 更改后,又出现新的问题了
****与显示首页或者是软件重启时 起冲突了,什么原因,怎么解决
If _Screen.FormCount > 1
    For i=_Screen.FormCount To 1 Step -1
       If _Screen.Forms(i).Name !=ALLTRIM(thisform.name)
       _Screen.Forms(i).release
    ENDIF
    Next
Endif

[ 本帖最后由 nmhfs 于 2013-4-1 12:41 编辑 ]
2013-04-01 12:27
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
收藏
得分:0 


[ 本帖最后由 nmhfs 于 2013-4-1 12:42 编辑 ]
2013-04-01 12:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
表单的属性是如何设置的,最好上传表单

坚守VFP最后的阵地
2013-04-01 19:01
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
通过findwindow查找 来禁止一个实例的多次运行  有时候靠不住

用CreateMutex吧

DO IT YOURSELF !
2013-04-01 19:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:1 
楼主是否用了表单集?

坚守VFP最后的阵地
2013-04-01 19:38
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
收藏
得分:0 
没有用表单集,showwindow=2 其他表单均为1,windowtype=0  titlebar=0   使用的是命令按钮 release关闭

[ 本帖最后由 nmhfs 于 2013-4-2 13:45 编辑 ]
2013-04-02 13:36
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:1 
在主程序调用主表单前 加上 ON SHUTDOWN do shutproc   如:
...................
ON SHUTDOWN do shutproc   
do form  你的主表单
ON SHUTDOWN
...........
主程序最后加上这过程
PROCEDURE shutproc
    CLOSE all
    CLOSE DATABASES
    CLEAR events
    quit
2013-04-02 14:15
快速回复:在任务栏中关闭软件和不重复打开软件
数据加载中...
 
   



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

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