| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2463 人关注过本帖
标题:如何解决连编后 EXE 文件重复运行出现“文件不能存取”错误?
只看楼主 加入收藏
kongxc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:104
注 册:2007-9-30
收藏
得分:0 
我按liuxingang28老师的以上方法使用了,测试结果是虽然显示了窗口,但它是个透明的窗体,上面的全部控件都看不见,所以无法使用.我在表单的窗口激活事件中加入了表单和控件的全部Refresh,也没有任何作用.请liuxingang28老师多多指教....
2014-05-09 14:49
pzyun1985
Rank: 2
等 级:论坛游民
帖 子:106
专家分:18
注 册:2013-4-13
收藏
得分:0 
回复 11 楼 kongxc
是的,而且不知道怎么解决
2014-05-10 23:48
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
经过测试,我的代码在 Windows XP 下运行未遇到你说的问题,不过有一点 Bug,现修正如下:
程序代码:
# 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             && 判断窗口是否最大化
DECLARE integer SetForegroundWindow IN WIN32API integer

cTitle = '物料管理系统'                   && 应用程序标题
nHwnd = FindWindow(0,cTitle)              && 获取窗口句柄
IF nHwnd > 0                              && 应用程序已启动
    SetForegroundWindow(nHwnd)
    IF IsZoomed(nHwnd) = 1                && 原窗口的状态是最大化
        ShowWindow(nHwnd,SW_MAXIMIZE)     && 激活原窗口,并保持最大化
    ELSE
        ShowWindow(nHwnd,SW_NORMAL)       && 原窗口是隐藏或最小化状态,则激活原窗口,并保持正常大小
    ENDIF
    QUIT                                  && 退出本次应用程序
ENDIF
以上代码增加了两行,其中一行是 DECLARE integer SetForegroundWindow IN WIN32API integer,定义了一个设置活动窗口的 API 函数,另一行语句是 SetForegroundWindow(nHwnd),先将原应用程序窗口设定到前台,然后再恢复大小。
不知道楼主的操作系统是 XP 还是 Win7,我仅在 XP 下测试通过。

泉城飞狐
2014-05-11 08:48
快速回复:如何解决连编后 EXE 文件重复运行出现“文件不能存取”错误?
数据加载中...
 
   



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

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