/*********************************************************************
* 问题就在这里,如果窗口没有被隐藏,上面那句话会起作用;如果隐藏了,就不起
* 作用,虽然不会新起一个实例,但是已有的实例不会Show出来,真是烦人
********************************************************************/
* 问题就在这里,如果窗口没有被隐藏,上面那句话会起作用;如果隐藏了,就不起
* 作用,虽然不会新起一个实例,但是已有的实例不会Show出来,真是烦人
********************************************************************/
解决方案 »
- 求高手看一个加密代码!
- 请大虾求助急啊~~~~~~~~~~~
- EXCEL里面那些莫名其妙的?字符怎么检测出来,我在把里面的数据导入到SQLSERVER的时候,例如证件号名称,在EXCEL里面看不见,可到了SQLSERVER里面就会出现了"325487198307121235? "
- datalist邦定数据库记录疑惑
- 那位有ASP.net用户权限、角色控制的代码,最好是C#编写的,高分相送!谢谢!
- 如何判断是com组件还是一般的组件
- 你是如何防止你的.net程序反编译的??你用什么模糊工具???
- 安装dotFrameWork的时候提示:stup can not access windows installer component;操作系统是xp个人版,请高手帮忙,急死了!!!!!!
- 如何定义一个sqlconnection类,可以让该namespace下的其他类可以访问
- 求个在线视频点播系统源码能运行的
- 使用winForm遇到的问题
- 将WebBrowser的cookie信息传给HttpWebRequest
http://dotnet.aspx.cc/article/e2a17727-765f-4346-8446-5d130622cb54/read.aspx
你没看我贴子中的内容吗?就是执行下面代码:
public static void HandleRunningInstance(Process instance)
{
//确保窗口没有被最小化或最大化
ShowWindowAsync (instance.MainWindowHandle , WS_SHOWNORMAL);
/*********************************************************************
* 问题就在这里,如果窗口没有被隐藏,上面那句话会起作用;如果隐藏了,就不起
* 作用,虽然不会新起一个实例,但是已有的实例不会Show出来,真是烦人
********************************************************************/
//设置真实例程为foreground window
SetForegroundWindow (instance.MainWindowHandle);
} 最小化在托盘中的程序没有最大化或显示?
to:tmxk2002
1、我现在的问题是当程序最小化到托盘后,再点击程序时,不用运行新的程序,把最小化到托盘中的程序最大化就可以了,现在是最小化在托盘中的程序无法最大化!
2、所以与你回答的是会事
void FirstInstance()
{
HWND pFirstWindow;
if ( pFirstWindow = FindWindow( NULL, L"窗体的名称" ) )
{
if( IsIconic(pFirstWindow) )
ShowWindowAsync(pFirstWindow, 9); // 9:SW_RESTORE标志,表示还原窗体
SetForegroundWindow(pFirstWindow);
PostMessage( pFirstWindow, WM_SHOWWINDOW, true, 0 );
exit(0);
}
else
{
//
}
}
简单的给你写了一下 private void Form1_SizeChanged(object sender, System.EventArgs e)
{//当窗体的大小改变时
if(WindowState==FormWindowState.Minimized)
{
this.Visible=false;
this.notifyIcon1.Visible=true;
this.Hide();
}
}
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{//使用托盘还原窗体
this.Visible=true;
this.WindowState=FormWindowState.Normal;
this.notifyIcon1.Visible=false;
}简单了写了一下,也不知道是否符合
你可以尝试着用FindWindow() API利用窗口标题来查找窗口句柄,或用命名事件来通知前一进程显示自己。
[DllImport("User32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);