| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖
标题:关于防止程序重复运行并恢复原窗口的故障,请老师指教!
取消只看楼主 加入收藏
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:2 
关于防止程序重复运行并恢复原窗口的故障,请老师指教!
我按liuxingang28老师的方法使用:(为了能显示原窗体)
# DEFINE SW_NORMAL 1    && 窗口状态:正常大小
# DEFINE SW_MAXIMIZE 3  && 窗口状态:最大化

DECLARE integer FindWindow IN WIN32API integer,string    && 获取应用程序窗口句柄
DECLARE integer ShowWindow IN WIN32API integer,integer   && 显示应用程序窗口
DECLARE integer IsZoomed IN WIN32API integer             && 判断窗口是否最大化

cTitle = '物料管理系统'                   && 应用程序标题
nHwnd = FindWindow(0,cTitle)              && 获取窗口句柄
IF nHwnd > 0                              && 应用程序已启动
    IF IsZoomed(nHwnd) = 1                && 原窗口的状态是最大化
        ShowWindow(nHwnd,SW_MAXIMIZE)     && 激活原窗口,并保持最大化
    ELSE
        ShowWindow(nHwnd,SW_NORMAL)       && 原窗口是隐藏或最小化状态,则激活原窗口,并保持正常大小
    ENDIF
    QUIT                                  && 退出本次应用程序
ENDIF
测试结果是虽然显示了窗口,但它是个透明的窗体,上面的全部控件都看不见,所以无法使用.
然后我在表单的窗口激活事件中加入了表单和控件的全部Refresh,也没有起到任何作用.
还请老师们多多指教....
搜索更多相关主题的帖子: 物料管理 应用程序 
2014-05-09 15:23
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
虽然不成功,可能是显示窗体的环境原因,我用的是XP的SP3,关键是我表单是顶层表单,_screen.visible=.f.,又使用了内存驻留,各种异线显示方法都无法将窗体的Visible=.T.,因为我的驻留图标激活时的条件设的是:if mainfrm.visible=.f.才显示窗体,结果虽然可看见窗体标题和轮廓,但此时只有点击该图标才可完整显示窗体.图标显示窗体的过程是: windowstart=0 mainfrm.visible=.t. mainfrm.show 就是这三句能正常显示窗体.这个类也是在这论坛里找到的...
2014-05-12 15:28
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
谢谢,已成功完美解决.
2014-05-15 16:16
快速回复:关于防止程序重复运行并恢复原窗口的故障,请老师指教!
数据加载中...
 
   



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

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