Start
値をmanual
に置き換えることで、レジストリを介してBluetoothサービスを開始するpythonスクリプトがあります。必要なのは、サービスを再起動することです。 CMD。これで、次のように入力してこれを実行できることがわかりました。net start "Bluetooth Support Service"
ただし、スクリプトの実行後にこれを実行すると、サービスが見つからず、次のように出力されます。
C:\Users\z-perkins-thomas\Documents\bin\python\fix-dap>net start "Bluetooth Support Service"
System error 1058 has occurred.
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
再度有効にした後でサービスを再起動する正しい方法は何ですか?
レジストリに値を設定しても、サービスコントロールマネージャーのメモリ内情報は更新されません。サポートされている方法は、SCMのAPI、またはそれを行うコマンドラインプログラムを使用することです。
sc config bthserv start= demand
サービス名bthserv
は、表示名ではなくサービスのIDであることに注意してください。特定のサービスのIDは、サービスMMCスナップイン(services.msc
)。
その後、通常どおりサービスを開始できます。
奇妙なことに、レジストリを手動で叩くと、サービスは新しい変更された状態を表示しますが、サービスは引き続き効果的に無効になっています。これをテストしたところ、サポートされている方法を使用するか、場合によっては再起動後にのみ、真に有効になることがわかりました。スクリプトはすでにWindowsユーティリティ(net
)を使用しているため、sc
も使用しても移植性はまったく低下しません。