diff --git a/CommandHandler.cs b/CommandHandler.cs index 4e83097..b771ad9 100644 --- a/CommandHandler.cs +++ b/CommandHandler.cs @@ -15,16 +15,23 @@ namespace DualScreenDemo { this.songListManager = songListManager; } - + public async Task ProcessData(string indata) - { + { //關機錨點 string filePath = Path.Combine(Application.StartupPath, "dataLog.txt"); + // 使用 Path.Combine 方法安全地將應用程式的啟動路徑與 "dataLog.txt" 檔案名結合, + // 建立完整的檔案路徑。Application.StartupPath 通常指向應用程式的可執行檔所在的目錄。 + if (CheckLogForShutdown(filePath)) + // 呼叫 CheckLogForShutdown 方法,並將建立的檔案路徑 (filePath) 作為參數傳遞。 + // 這個方法預期會檢查指定的日誌檔案內容,以判斷是否符合關機的條件。 + // 如果該方法回傳 true (表示符合關機條件),則執行 if 區塊內的程式碼。 { Console.WriteLine("Shutdown condition met. Application will now close."); + // 在控制台輸出訊息,告知使用者已滿足關機條件,應用程式即將關閉。 ShutdownComputer(); + // 呼叫 ShutdownComputer 方法,這個方法預期會執行關閉電腦的操作。 } - switch (indata) { case "A261A4": diff --git a/PrimaryFormParts/PrimaryForm.SoundEffects.cs b/PrimaryFormParts/PrimaryForm.SoundEffects.cs index c58015c..e1e473c 100644 --- a/PrimaryFormParts/PrimaryForm.SoundEffects.cs +++ b/PrimaryFormParts/PrimaryForm.SoundEffects.cs @@ -131,7 +131,7 @@ namespace DualScreenDemo public void PlayApplauseSound() { - mediaPlayer.URL = Path.Combine(Application.StartupPath, "zs.m4a"); + mediaPlayer.URL = Path.Combine(Application.StartupPath, "sounds", "zs.m4a"); mediaPlayer.controls.play(); } diff --git a/Program.cs b/Program.cs index d45176f..8fb18c4 100644 --- a/Program.cs +++ b/Program.cs @@ -25,20 +25,6 @@ static void Main() Console.WriteLine("Failed to initialize COM library."); return; } - - // URL ACL 配置 - string ipAddress = "192.168.88.66"; - string port = "9090"; - string url = $"http://{ipAddress}:{port}/"; - - if (!IsUrlAclExists(url)) - { - RunBatchFileToAddUrlAcl(ipAddress, port); - } - - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - // 初始化管理器 songListManager = SongListManager.Instance; // 使用单例 @@ -129,39 +115,7 @@ static void Main() return false; } } - - // 动态创建并运行批处理文件以添加 URL ACL - private static void RunBatchFileToAddUrlAcl(string ipAddress, string port) - { - // 确保批处理文件在当前程序的同一目录下 - string batchFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AddUrlAcl.bat"); - - try - { - // 创建批处理内容 - string batchContent = - $"netsh http add urlacl url=http://{ipAddress}:{port}/ user=Everyone\n"; - - // 写入批处理文件,确保使用 UTF-8 编码 - File.WriteAllText(batchFilePath, batchContent); - - ProcessStartInfo startInfo = new ProcessStartInfo - { - FileName = "cmd.exe", // 使用 cmd 执行 - Arguments = $"/c \"{batchFilePath}\"", // /c 参数用于执行命令后关闭命令窗口 - UseShellExecute = true, // 使用系统外壳程序来启动 - Verb = "runas" // 以管理员身份运行 - }; - - Process process = Process.Start(startInfo); - process.WaitForExit(); // 等待批处理执行完成 - } - catch (Exception ex) - { - Console.WriteLine("执行批处理文件失败: " + ex.Message); - } - } - + private static void InitializeSecondaryScreen() { if (Screen.AllScreens.Length > 1)