94 lines
3.6 KiB
C#
94 lines
3.6 KiB
C#
using AccompanyingAssistant;
|
|
using AudioWallpaper.IPC;
|
|
using AudioWallpaper.OtherWallpaper;
|
|
using AudioWallpaper.WebWallpaper;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace AudioWallpaper {
|
|
internal static class Program {
|
|
[DllImport("user32.dll")]
|
|
private static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
|
|
|
|
[DllImport("user32.dll")]
|
|
private static extern bool FlashWindowEx(int pfwi);
|
|
/// <summary>
|
|
/// The main entry point for the application.
|
|
/// </summary>
|
|
///
|
|
[DllImport("kernel32.dll")]
|
|
public static extern bool AllocConsole();
|
|
[DllImport("kernel32.dll")]
|
|
public static extern bool FreeConsole();//释放关联的控制台窗口
|
|
private static SSOManager _ssoManager = new SSOManager();
|
|
//public static SSOManager SSOM { get; private set; };
|
|
public static SSOManager SSOM {
|
|
get {
|
|
return _ssoManager;
|
|
}
|
|
}
|
|
public static WindowManager WindowManager { get; private set; } = new WindowManager();
|
|
|
|
[STAThread]
|
|
static void Main(String[] args) {
|
|
// To customize application configuration such as set high DPI settings or default font,
|
|
// see https://aka.ms/applicationconfiguration.
|
|
bool createdNew;
|
|
bool DoesTheGuardianExist = false;
|
|
// 创建一个唯一的互斥体名称,确保它是唯一的
|
|
using (Mutex mutex = new Mutex(true, "{C8F8E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out createdNew)) {
|
|
#if DEBUG
|
|
createdNew = true;
|
|
#endif
|
|
if (createdNew) {
|
|
//判断启动参数是否满足条件
|
|
//if (args.Length < 1) {
|
|
// mutex.ReleaseMutex();
|
|
// return;
|
|
//}
|
|
//if (!args[0].Equals("ManagerStart")) {
|
|
// mutex.ReleaseMutex();
|
|
// return;
|
|
//}
|
|
//if (!args[1].Equals("1")) {
|
|
// mutex.ReleaseMutex();
|
|
// return;
|
|
//}
|
|
#if !DEBUG
|
|
|
|
Mutex Dmutex = new Mutex(true, "{C9F9E5D9-6F05-4F92-BE10-DF7A4F5F97FB}", out DoesTheGuardianExist);
|
|
if (DoesTheGuardianExist) {
|
|
Dmutex.ReleaseMutex();
|
|
Dmutex.Dispose();
|
|
mutex.ReleaseMutex();
|
|
return;
|
|
}
|
|
Dmutex.Dispose();
|
|
#endif
|
|
// 开启控制台
|
|
AllocConsole();
|
|
// 如果互斥体创建成功,说明当前没有其他实例在运行
|
|
Application.EnableVisualStyles();
|
|
Application.SetCompatibleTextRenderingDefault(false);
|
|
ApplicationConfiguration.Initialize();
|
|
Task.Run(() => SSOM.Initialize()); // Run SSOManager initialization in a separate task
|
|
//创建窗体管理器
|
|
FormManager formManager = new FormManager();
|
|
//创建陪伴助手管理器
|
|
AccAssManage accAssManage = new AccAssManage();
|
|
|
|
IPCClientExample.RunAsync(); // 启动IPC客户端示例
|
|
|
|
|
|
//WebWallpaperManager webWallpaperManager = new WebWallpaperManager("https://blog.ysit.top");
|
|
//OtherWallpaperManager otherWallpaperManager = new OtherWallpaperManager();
|
|
|
|
Application.Run();
|
|
//释放控制台
|
|
FreeConsole();
|
|
mutex.ReleaseMutex(); // 释放互斥体
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
} |