以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  foxtable如何防止多次运行同一程序  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118037)

--  作者:junqiyu
--  发布时间:2018/4/23 19:35:00
--  foxtable如何防止多次运行同一程序
1、双击foxtable做的应用程序时,经常会运行多个实例
请问如何解决这个情况?
2、foxtable做的程序运行时,窗口经常会隐藏在其它应用窗口下面,导致误以为没有反应,如何使其始终topmost

--  作者:junqiyu
--  发布时间:2018/4/23 20:13:00
--  
防止多次运行的已经解决,在项目事件BeforeOpenProject中编辑如下代码即可:

\'防止多次运行同一程序
\'Imports System.Diagnostics 
If UBound(Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)) > 0 Then
    e.Cancel = True
    e.HideSplashForm = True
    MessageBox.show("程序已运行,不允许再次启动.")
End If

第2个问题还是没有解决,希望大牛给解答

--  作者:有点蓝
--  发布时间:2018/4/23 20:22:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=64135&skin=0
--  作者:junqiyu
--  发布时间:2018/4/23 22:23:00
--  
谢谢,请问如何解决第2个问题:
foxtable做的程序运行时,窗口经常会隐藏在其它应用窗口下面,导致误以为没有反应,如何使其始终topmost
我尝试了网上介绍的各种方法,还是不行,我的系统是win7
采用定时计划,定时使用SetWindowPos()置TOPMOST时,反而主窗口隐藏不见了,需双击任务栏foxtable图标窗口才能再次出现
定时计划中代码如下:
SetWindowPos(Process.GetCurrentProcess.MainWindowHandle, (-1), 0, 0, 1000, 600, &H40)

--  作者:junqiyu
--  发布时间:2018/4/23 22:25:00
--  
单个和组合试过如下的代码,均不能实现想要的结果:

SetWindowPos(Process.GetCurrentProcess.MainWindowHandle, (-1), 0, 0, 0, 0, &H3)

ShowWindow(Process.GetCurrentProcess.MainWindowHandle,5)

SetForegoundWindow(Process.GetCurrentProcess.MainWindowHandle)

BringWindowToTop(Process.GetCurrentProcess.MainWindowHandle)


--  作者:有点蓝
--  发布时间:2018/4/23 22:27:00
--  
正常窗口不会隐藏的,具体怎么使用的,做个例子看看
--  作者:junqiyu
--  发布时间:2018/4/24 0:17:00
--  
代码在公共代码和定时计划里
我想要达到的目标是:即使其他应用程序窗口在上层,通过代码定时使foxtable程序窗口成为最顶层窗口
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:windowtopmost.foxdb

上传的代码例子,不知为何始终是最小化了foxtable的窗口,请版主帮着看看能否解决。
[此贴子已经被作者于2018/4/24 0:18:40编辑过]

--  作者:有点甜
--  发布时间:2018/4/24 9:10:00
--  

回复7楼,置顶的代码这样写

 

basemainform.TopMost = True


--  作者:junqiyu
--  发布时间:2018/4/24 11:09:00
--  
有点甜,谢谢您耐心地回复。
basemainform.TopMost = True 能够实现我想要的效果,一直置顶,但采用了该代码还存在其它问题,例如:
1、整个程序响应变慢;
2、点击开发环境的某些对话框会出现不正常,例如点击 项目属性 ,其对话框不能完整显示出来,也关闭不了,整个应用程序也无法正常退出,只能通过任务管理器杀掉才能退出。
请帮助解决一下。

--  作者:有点甜
--  发布时间:2018/4/24 11:49:00
--  

1、你调整计时器的执行频率吧。而且,这句代码,只需要设置一次,不需要重复执行的。

 

2、你在开发、调试项目的时候,把这句代码屏蔽掉咯,你发布之前,再打开这个设置代码。