新学c#小白,制作一个软件娱乐娱乐。主接口处验证多开后想让程序从托盘处弹出,需要修改Form窗口visible属性。可是怎么写也报错。求助~~
namespace 定时关机小程序
{
class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public void Main()
{
Process instance = RunningInstance();
if (instance == null)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
HandleRunningInstance(instance);
}
}
public Process RunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
//遍历正在有相同名字运行的进程
foreach (Process process in processes)
{
//忽略现有的进程
if (process.Id != current.Id)
{
//确保进程从EXE文件运行
if (process.MainModule.FileName == current.MainModule.FileName)
{
// 返回另一个进程实例
return process;
}
}
}
//没有其它的进程,返回Null
return null;
}
public void HandleRunningInstance(Process instance)
{
IntPtr mainFormHandle = instance.MainWindowHandle;
if (mainFormHandle != IntPtr.Zero)
{
ShowWindowAsync(mainFormHandle, 1);
SetForegroundWindow(mainFormHandle);
//想写在这里修改窗口visible属性~~~~~!!!!!!!
}
}
[DllImport("User32.dll ")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll ")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int WS_SHOWNORMAL = 1;
}
}