Même si il y a command-line commands commencer (? La plupart) les différents écrans du panneau de configuration dans Windows 10, un scénario spécifique semble échouer:de Windows lancement de processus échoue en silence - ne peut pas lancer les paramètres Bluetooth dans certains scénarios
Si la machine démarre avec Bluetooth désactivé (non désactivé), l'exécution de la commande qui devrait ouvrir l'écran des paramètres Bluetooth ne fait simplement rien. La commande peut être ms-settings: bluetooth, bthprops.cpl ou ms-settings: Bluetooth.
J'ai aussi essayé de lancer directement l'écran de périphériques Bluetooth (en utilisant la commande % windir% \ shell explorer.exe ::: {28803F59-3A75-4058-995F-4EE5503B023C} comme described here), mais en cliquant sur sur les "paramètres Bluetooth" dans cette fenêtre ne fait rien aussi bien.
La seule façon d'accéder directement à l'écran des paramètres Bluetooth sans passer par la fenêtre principale du panneau de commande et sans allumer Bluetooth d'abord, est par un clic droit sur le carreau correspondant dans le Centre d'action de Windows:
Bien que cela semble être un bug au niveau du système d'exploitation, je me demandais s'il y avait un moyen de savoir quand le lancement échoue à partir du code C#. J'ai donc essayé d'utiliser le code suivant:
try
{
var process = new Process();
process.StartInfo.FileName = "control";
process.StartInfo.Arguments = "bthprops.cpl";
process.Exited += (s, e) =>
{
if (process.ExitCode != 0)
{
TurnOnBt();
}
};
var res = process.Start();
if (!res)
{
TurnOnBt();
}
}
catch (System.Exception ex)
{
int test = 6; // just for breakpoint
}
Le problème est, aucune exception n'a jamais été jeté, et la plupart du temps l'événement Process.Exit n'a jamais été appelé.
En outre, appelez Windows.Devices.Radios.Radio.GetRadiosAsync() retourne une liste vide! Actuellement, la seule solution que j'ai trouvé est d'activer manuellement le Bluetooth - cela ne changerait pas le comportement Process.Start/Exit, mais cela permet de déjouer la commande pour ouvrir directement la fenêtre des paramètres Bluetooth, et pour obtenir la liste des périphériques Bluetooth/Radio de la machine. Pourtant, en éteignant Bluetooth et en redémarrant la machine, le même problème se reproduirait à nouveau.
Des idées pour une solution de contournement basée sur le code?
L'outil approprié pour que le shell affiche ses boîtes de dialogue est [ShellExecuteEx] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb762154.aspx). En prime, cet appel d'API renvoie des codes d'erreur. – IInspectable
'control bthprops.cpl' démarre avec succès (donc vous n'avez pas d'erreurs) lancez' rundll32.exe Shell32.dll, Control_RunDLL bthprops.cpl, 'et quittez sans erreurs. le 'Control_RunDLL' charge' bthprops.cpl' et appelle ['CPlApplet (0, CPL_INIT, 0, 0)'] (https://msdn.microsoft.com/fr-fr/library/windows/desktop/bb787978 (v = vs.85) .aspx). l'état de la requête 'CPlApplet' du service' bthserv' - s'il n'est pas en cours d'exécution - false return et story end. le 'bthprops.cpl' ne veut pas travailler si' bthserv' ne fonctionne pas – RbMm
@RbMm merci! Pourriez-vous partager les outils que vous avez utilisés pour obtenir ce flux? Aussi, en quoi est-ce différent de ce qui se passe lorsqu'on clique sur le Centre d'action? –