关于再次运行程序,显示隐藏的主界面的问题

ahking 2019-06-07 04:25:49
用windows forms做了个程序,点击主窗体关闭按钮,实现了主窗体隐藏,然后双击系统托盘显示的功能;

现在想实现这样的功能,再次启动程序时,如果该程序已运行,则不再启动;关键是同时把隐藏的主窗体显示出来,试过用
https://blog.csdn.net/yuhai738639/article/details/77865627
这样的方法无法实现显示主界面,请问该如何实现呢?
...全文
250 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahking 2019-06-23
  • 打赏
  • 举报
回复
引用 10 楼 assky124 的回复:
1.启动时检测同名进程,已经存在同名的,“进程间通讯”,唤起隐藏的,同时结束自己(写在Main函数中) 2.进程间通讯,可以百度一下,方式很多的
查了下,可以用sendmessage实现进程间通信,https://www.cnblogs.com/MRRAOBX/articles/5591331.html 但是通过进程间通信怎么唤起隐藏的不知道如何实现,这个不是常见问题么,没有成熟的实现方式么?
assky124 2019-06-21
  • 打赏
  • 举报
回复
1.启动时检测同名进程,已经存在同名的,“进程间通讯”,唤起隐藏的,同时结束自己(写在Main函数中) 2.进程间通讯,可以百度一下,方式很多的
ahking 2019-06-21
  • 打赏
  • 举报
回复
顶!!!!!!!!!!
ahking 2019-06-18
  • 打赏
  • 举报
回复
public static void ShowWindow() { IntPtr hwnd = FindWindow(null, "mypro"); if (hwnd != IntPtr.Zero) { SetForegroundWindow(hwnd); } } 还是无法显示隐藏的窗口
ahking 2019-06-10
  • 打赏
  • 举报
回复
引用 6 楼 caozhy 的回复:
应该是 instance.MainWindowHandle 这个没有找到窗口句柄 用 FindWindow API代替
不会用
threenewbee 2019-06-09
  • 打赏
  • 举报
回复
应该是 instance.MainWindowHandle 这个没有找到窗口句柄 用 FindWindow API代替
ahking 2019-06-09
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
那个程序的思路大致没有问题,你可以调试下。 你主窗体的隐藏怎么做的,是不是 Close() 了,要Hide,否则找不到句柄。 你调试下看看showwindowasync调用的那里,句柄对不对,还有前面进程的查找,有没有找到
这篇文章实际引用自https://www.cnblogs.com/Hdsome/archive/2012/08/13/2635797.html 作者本人也提到“只有窗口最小化的时候可以达到此效果,如果隐藏到托盘则无法将打开的程序显示到桌面”
ahking 2019-06-09
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
那个程序的思路大致没有问题,你可以调试下。 你主窗体的隐藏怎么做的,是不是 Close() 了,要Hide,否则找不到句柄。 你调试下看看showwindowasync调用的那里,句柄对不对,还有前面进程的查找,有没有找到
是hide了
秋的红果实 2019-06-08
  • 打赏
  • 举报
回复
用win32API有点小题大做了,hide窗体不就行了 或者将窗体的x,y坐标设置到屏幕外
threenewbee 2019-06-08
  • 打赏
  • 举报
回复
那个程序的思路大致没有问题,你可以调试下。 你主窗体的隐藏怎么做的,是不是 Close() 了,要Hide,否则找不到句柄。 你调试下看看showwindowasync调用的那里,句柄对不对,还有前面进程的查找,有没有找到
k4android 2019-06-08
  • 打赏
  • 举报
回复
可以用process防止双开,然后show你的窗体

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧