确保单例运行时如何改变已运行的程序的窗体属性?

yiwindlele 2008-02-22 03:09:13
该程序已被运行,但是MAINFORM的属性被设置为隐藏;

再次运行时通过process.Id获知程序已运行并获得句柄instance.MainWindowHandle

该如何利用这个句柄改变MAINFORM的属性并显示出来呢?

[DllImport("User32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("User32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("user32.dll")] public static extern int ShowWindow(IntPtr hwnd,int nCmdShow);

这3个似乎都不行
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinaterry 2008-02-22
  • 打赏
  • 举报
回复
//显示窗体
main.Show();
//前提要将notifyIcon1设为public或用公共属性封装...
main.notifyIcon1.Visible = false;
//^o^
shinaterry 2008-02-22
  • 打赏
  • 举报
回复
参考代码:


Form main = Control.FromHandle(instance.MainWindowHandle) as Form;

if (main != null)
{
main.WindowState = FormWindowState.Normal;
}

main = null;
shinaterry 2008-02-22
  • 打赏
  • 举报
回复
参考代码:


Form main = Control.FromHandle(instance.MainWindowHandle) as Form;

if (main != null)
{
main.WindowState = FormWindowState.Normal;
}

main = null;
yiwindlele 2008-02-22
  • 打赏
  • 举报
回复
ding......
yiwindlele 2008-02-22
  • 打赏
  • 举报
回复
已运行的程序利用notifyIcon隐藏了

this.Hide();
this.notifyIcon1.Visible=true;

110,537

社区成员

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

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

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