Контроль состояния Bluetooth с помощью C # - PullRequest
0 голосов
/ 20 сентября 2018

Моя цель:

Я пытаюсь контролировать состояние 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.

Заранее спасибо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...