Foxtable(狐表)用户栏目专家坐堂 → foxtable如何防止多次运行同一程序


  共有2025人关注过本帖树形打印复制链接

主题:foxtable如何防止多次运行同一程序

帅哥哟,离线,有人找我吗?
junqiyu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
foxtable如何防止多次运行同一程序  发帖心情 Post By:2018/4/23 19:35:00 [只看该作者]

1、双击foxtable做的应用程序时,经常会运行多个实例
请问如何解决这个情况?
2、foxtable做的程序运行时,窗口经常会隐藏在其它应用窗口下面,导致误以为没有反应,如何使其始终topmost

 回到顶部
帅哥哟,离线,有人找我吗?
junqiyu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
  发帖心情 Post By: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个问题还是没有解决,希望大牛给解答

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105932 积分:538729 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/23 20:22:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
junqiyu
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
  发帖心情 Post By:2018/4/23 22:23:00 [只看该作者]

谢谢,请问如何解决第2个问题:
foxtable做的程序运行时,窗口经常会隐藏在其它应用窗口下面,导致误以为没有反应,如何使其始终topmost
我尝试了网上介绍的各种方法,还是不行,我的系统是win7
采用定时计划,定时使用SetWindowPos()置TOPMOST时,反而主窗口隐藏不见了,需双击任务栏foxtable图标窗口才能再次出现
定时计划中代码如下:
SetWindowPos(Process.GetCurrentProcess.MainWindowHandle, (-1), 0, 0, 1000, 600, &H40)

 回到顶部
帅哥哟,离线,有人找我吗?
junqiyu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
  发帖心情 Post By: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)


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105932 积分:538729 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/23 22:27:00 [只看该作者]

正常窗口不会隐藏的,具体怎么使用的,做个例子看看

 回到顶部
帅哥哟,离线,有人找我吗?
junqiyu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
  发帖心情 Post By:2018/4/24 0:17:00 [只看该作者]

代码在公共代码和定时计划里
我想要达到的目标是:即使其他应用程序窗口在上层,通过代码定时使foxtable程序窗口成为最顶层窗口
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:windowtopmost.foxdb

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/24 9:10:00 [只看该作者]

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

 

basemainform.TopMost = True


 回到顶部
帅哥哟,离线,有人找我吗?
junqiyu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:12 积分:148 威望:0 精华:0 注册:2017/1/5 22:14:00
  发帖心情 Post By:2018/4/24 11:09:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/24 11:49:00 [只看该作者]

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

 

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


 回到顶部
总数 12 1 2 下一页