Моя цель:
Я пытаюсь контролировать состояние Bluetooth из приложения Windows в C #.Для этого я получил скрипт PowerShell, который я выполняю из командного файла.
Что я пробовал:
Я пробовал различные способы для достижения этой цели, как показано ниже:.
Метод 1:
Process proc = new Process();
string _batDir = Application.StartupPath + @"\ToggleBluetoothState\";
proc.StartInfo.WorkingDirectory = _batDir;
proc.StartInfo.FileName = "ToggleBluetoothState.bat";
proc.StartInfo.CreateNoWindow = false;
proc.Start();
proc.WaitForExit();
proc.Close();
Метод 2:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.FileName = @"powershell.exe";
startInfo.Arguments = "-ExecutionPolicy ByPass -File " + Application.StartupPath + @"\ToggleBluetoothState\ToggleBluetoothState.ps1";
startInfo.CreateNoWindow = false;
Process process = new Process
{
StartInfo = startInfo
};
process.Start();
Метод 3:
PowerShell ps = PowerShell.Create();
ps.Commands.AddScript(Application.StartupPath + @"\ToggleBluetoothState\ToggleBluetoothState.ps1");
ps.Invoke();
Задачи:
Сейчас я пытаюсь вызвать этот скрипт / пакетный файл PowerShell из моего приложения.Когда я пытаюсь запустить свое приложение, появляется пустое окно команд / окно PowerShell, которое закрывается через 3-4 секунды.Мне интересно, выполняю ли я пакетный файл напрямую, дважды щелкнув по нему, или если я выполняю тот же сценарий из PowerShell ISE, он работает нормально, т. Е. Переключает состояние Bluetooth.
Заранее спасибо ..