| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3467 人关注过本帖
标题:如何检测动态标题的_screen已经运行?
取消只看楼主 加入收藏
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
如何检测动态标题的_screen已经运行?
我的程序中标准不确定,带着用户名和当前时间。不同用户名标题就不一样,时间也在不停的跳动,不知如何解决?
请指导!谢谢!

看坛子里之前提到的也有方法,就是自己建立文件,测试文件状态,确定系统状态。也好,测试通过,但问题是如果程序中出现close all等命令就会关闭已打开的文件。另外,只是总是读写文件,有没有其他方法。

[此贴子已经被作者于2016-7-23 17:40编辑过]

搜索更多相关主题的帖子: screen 用户名 close 动态 检测 
2016-07-23 17:37
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
就是标题显示的当前时间,我加了个time控件,会不停的修改标题时间。
另外,在标题中显示了当前用户的信息,因为每次登陆用户不同,标题也不同。
2016-07-24 17:26
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
对,程序是这样的,但,问题是这样的程序,重复运行测试是不是不太好处理了。
刚才看坛子里,CreateMutex函数好像可以解决这个问题,还没时间测试,明天看看!
2016-07-24 22:49
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

这样的标题,不行呀,我把他放在修改_screen后面。
还有就是,program()只能返回prg程序文件名,不能确定编译后的exe重复
2016-07-25 13:52
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-07-25 13:53
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
程序代码:
PUBLIC gcOldDir,vcxname
gcOldDir = SET('DEFAULT') + SYS(2003)
SET DEFA TO "&gcOldDir"
******************************************************************************
&&获取程序运行名称
Declare INTEGER GetModuleHandle IN kernel32 INTEGER lpModuleName
vcxid = ALLTRIM(STR(GetModuleHandle(0)))

Declare INTEGER GetModuleFileName IN kernel32;
INTEGER hModule,;
STRING @ lpFilename,;
INTEGER nSize

lpFilename = SPACE(250)
lnLen = GetModuleFileName (0, @lpFilename, Len(lpFilename))
vcxname = JUSTFNAME(ALLTRIM(Left (lpFilename, lnLen)))
******************************************************************************
#DEFINE ERROR_ALREADY_EXISTS 183 
DECLARE INTEGER GetLastError IN WIN32API
DECLARE INTEGER CreateMutex IN WIN32API INTEGER Security,SHORT Owned,STRING@ MutexName
DECLARE SHORT CloseHandle IN WIN32API INTEGER

PUBLIC hMutex, iResult, bCanRun
hMetux=CreateMutex(0,0,vcxname)
iResult=GetLastError()
DO CASE 
   CASE iResult==0
        bCanRun=.T.
   CASE iResult==ERROR_ALREADY_EXISTS
        MessageBox("程序已经运行。"+SPACE(2),64,"提示")
        bCanRun=.F.
   OTHERWISE 
        bCanRun=.F.
        MessageBox("GetLastError() returned "+ ltrim(str(iResult))) 
ENDCASE 

IF bCanRun ==.F.
   =CloseHandle(hMutex)
*   QUIT
ENDIF


这是muyubo 2015-06-03发的代码,看明白了,加入程序后也测试通过了,谢谢!

[此贴子已经被作者于2016-7-25 14:56编辑过]

2016-07-25 14:05
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
谢谢各位大侠!解决了!谢谢!

特别感谢:muyubo、吹水佬、mywisdom88、hu9jj
2016-07-25 14:44
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
怎么结贴呀?
2016-07-25 14:50
快速回复:如何检测动态标题的_screen已经运行?
数据加载中...
 
   



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

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