以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- foxtable如何防止多次运行同一程序 (http://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程序窗口成为最顶层窗口
上传的代码例子,不知为何始终是最小化了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、你在开发、调试项目的时候,把这句代码屏蔽掉咯,你发布之前,再打开这个设置代码。 |