主题:  为何用了COVER之后,程序里的EXE文件无法执行??

point_5d

职务:普通成员
等级:1
金币:0.0
发贴:67
注册:2004/3/11 14:25:41
#12004/5/22 8:54:52
在我用COVER,打包之后,计算图标里的
JumpOutReturn("",FileLocation^"exe\\S1_设置软测量算法库路径.exe"
这句话里EXE文件却不能执行了,请教这是为什么呢?

PS:magiccover我也试过了,结果还是不能执行.如果不用cover就可以执行.

下面是源程序:

相关文件:点这儿打开



xdsnet

职务:普通成员
等级:1
金币:1.0
发贴:167
注册:2002/10/18 15:31:05
#22004/5/25 8:32:19
可能是运行了而没有获取焦点,此外不知道是否是因为中文名字的原因?!



point_5d

职务:普通成员
等级:1
金币:0.0
发贴:67
注册:2004/3/11 14:25:41
#32004/5/25 8:46:03
我把中文名字改成英文的了,也不行.那个EXE文件就好像一直被挡住了,没有出现在最前面,不明..........



xdsnet

职务:普通成员
等级:1
金币:1.0
发贴:167
注册:2002/10/18 15:31:05
#42004/5/25 16:13:08
看你的描述是没有获取焦点的原因,好像有一个api是设置焦点的,你查查



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
注册:2000/11/4 21:26:33
#52004/5/25 18:59:28
那是自然的,你调用了
SetWindowPos(WindowHandle,-1 ,0,0,0,0,3)
它的含义是将authorware展示窗口永久置顶,当然后面的程序全都显示不出来了.
其实这句调用的真正原因在于cover的一个bug,在有的情况下它会把展示窗口也覆盖掉,所以就有人想到将展示窗口永久置顶来防止这一情况的发生.
用我的MagicCover是不会有这种bug的,所以也就不需要调用这一句.
用Cover的话,则在调用这一句后再改参数调用一次取消永久置顶即可:
SetWindowPos(WindowHandle,-2 ,0,0,0,0,3)

SetWindowPos是一个API函数,在这种情况下应该只须调用
SetWindowPos(WindowHandle,0,0,0,0,0,3)
即可完成窗口提前而不用设置为永久置顶.

窗口永久置顶的方法还是偶以前在自己的网站上最早提出来的,现在好多网站还一字不差地照抄,只是偶的第一个网站已经不存在了



point_5d

职务:普通成员
等级:1
金币:0.0
发贴:67
注册:2004/3/11 14:25:41
#62004/5/26 9:39:44
我明白了,非常感谢滨滨讲解得这么清楚,看来我以后还要加强学习。
用Cover永久置顶再取消永久置顶,和用MagicCover这两种方法,我都试过,都可行。希望其它遇到类似问题的朋友,可以从中得到学习。
再次感谢滨滨:)



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
注册:2000/11/4 21:26:33
#72004/5/26 9:48:23
共同学习