我已经使用了互斥锁来运行单个实例程序,现在如果用户重新打开应用程序时,我希望窗口变为最大化状态,即使它当前是最小化的。
这是我目前在我的Program.cs文件中拥有的代码:
static class Program
{
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
bool Ok = true;
string ProductName = Application.ProductName;
Mutex m = new Mutex(true, ProductName, out Ok);
if (!Ok)
{
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName(ProductName);
SetForegroundWindow(p[0].MainWindowHandle);
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
SW_SHOW
是实现这一功能的方法。这将把窗口恢复到最小化之前的状态,无论它是标准窗口还是最大化窗口。 - Cody Gray