多开检测修复
This commit is contained in:
+7
-58
@@ -18,19 +18,16 @@ namespace BarrageGrab
|
|||||||
static bool exited = false;
|
static bool exited = false;
|
||||||
static bool formExited = false;
|
static bool formExited = false;
|
||||||
static WinApi.ControlCtrlDelegate controlCtr = ControlCtrlHandle;
|
static WinApi.ControlCtrlDelegate controlCtr = ControlCtrlHandle;
|
||||||
|
static Mutex mutex = new Mutex(false, "DyBarrageGrab");
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
//JintTest();
|
if (!mutex.WaitOne(TimeSpan.Zero, true))
|
||||||
//Console.WriteLine("结束");
|
|
||||||
//Console.ReadKey();
|
|
||||||
//return;
|
|
||||||
if (CheckAlreadyRunning())
|
|
||||||
{
|
{
|
||||||
Logger.PrintColor("已经有一个监听程序在运行,按任意键退出...");
|
Console.WriteLine("另一个实例已在运行。");
|
||||||
Console.ReadKey();
|
Console.ReadKey();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTitle("抖音弹幕监听推送");
|
SetTitle("抖音弹幕监听推送");
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -39,7 +36,7 @@ namespace BarrageGrab
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.LogError(ex, "程序初始化错误");
|
Logger.LogError(ex, $"程序初始化错误,{ex.Message}");
|
||||||
MessageBox.Show(ex.Message, "程序初始化错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ex.Message, "程序初始化错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
exited = true;
|
exited = true;
|
||||||
}
|
}
|
||||||
@@ -56,7 +53,6 @@ namespace BarrageGrab
|
|||||||
|
|
||||||
Logger.PrintColor("服务器已关闭...");
|
Logger.PrintColor("服务器已关闭...");
|
||||||
WinApi.SetConsoleCtrlHandler(controlCtr, false);//反注册捕获控制台关闭
|
WinApi.SetConsoleCtrlHandler(controlCtr, false);//反注册捕获控制台关闭
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Init()
|
private static void Init()
|
||||||
@@ -95,7 +91,8 @@ namespace BarrageGrab
|
|||||||
|
|
||||||
AppRuntime.WsServer.StartListen();//启动WS以及代理服务
|
AppRuntime.WsServer.StartListen();//启动WS以及代理服务
|
||||||
Logger.PrintColor($"{AppRuntime.WsServer.ServerLocation} 弹幕服务已启动...",ConsoleColor.Green);
|
Logger.PrintColor($"{AppRuntime.WsServer.ServerLocation} 弹幕服务已启动...",ConsoleColor.Green);
|
||||||
SetTitle($"抖音弹幕监听推送 [{AppRuntime.WsServer.ServerLocation}]");
|
Version version = System.Reflection.Assembly.GetAssembly(typeof(Program)).GetName().Version;
|
||||||
|
SetTitle($"抖音弹幕监听推送 v{version} [{AppRuntime.WsServer.ServerLocation}]");
|
||||||
}
|
}
|
||||||
|
|
||||||
//检测设置控制台标题
|
//检测设置控制台标题
|
||||||
@@ -123,53 +120,5 @@ namespace BarrageGrab
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//检测程序是否多开
|
|
||||||
private static bool CheckAlreadyRunning()
|
|
||||||
{
|
|
||||||
const string mutexName = "DyBarrageGrab";
|
|
||||||
// Try to create a new named mutex.
|
|
||||||
bool createdNew;
|
|
||||||
using (Mutex mutex = new Mutex(true, mutexName, out createdNew))
|
|
||||||
{
|
|
||||||
return !createdNew;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#if DEBUG
|
|
||||||
private static void JintTest()
|
|
||||||
{
|
|
||||||
var jsEng = JsEngine.CreateNewEngine();
|
|
||||||
var jsFile = File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "Scripts", "engine", "comPortFilter.js"), Encoding.UTF8);
|
|
||||||
//var jsFile = @"D:\develop\Project\dy-barrage-grab\BarrageGrab\Scripts\engine\comPortFilter.js";
|
|
||||||
jsEng.Execute(jsFile);
|
|
||||||
var result = jsEng.Invoke("onPackData", 1, new
|
|
||||||
{
|
|
||||||
Aporp = 142,
|
|
||||||
Bprop = "48777",
|
|
||||||
Cprop = new string[] { "123" },
|
|
||||||
Dprop = new Dictionary<string, string>()
|
|
||||||
{
|
|
||||||
{ "key1","value1" }
|
|
||||||
}
|
|
||||||
},null);
|
|
||||||
Console.WriteLine($"返回类型:{ result.Type.ToString()},值:{result.ToString()}");
|
|
||||||
if (result.Type == Types.String)
|
|
||||||
{
|
|
||||||
Console.WriteLine("返回String: " + result.ToString());
|
|
||||||
}
|
|
||||||
if (result.Type == Types.Object)
|
|
||||||
{
|
|
||||||
var obj = result.ToObject();
|
|
||||||
if (obj is byte[])
|
|
||||||
{
|
|
||||||
Console.WriteLine("返回byte[]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (result.Type == Types.Symbol)
|
|
||||||
{
|
|
||||||
Console.WriteLine("返回Symbol: " + result.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user