Проверка на админа~/topic/3241/proverka-na-admina/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T18:25:34Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/22962/Наверное все знают, что в новых Windows тыкать палочкой одно приложение из другого можно только с пр...2012-12-14T19:33:56Z2012-12-14T19:33:56ZVassilSanychhttps://stocksharp.ru/users/6491/info@stocksharp.ruНаверное все знают, что в новых Windows тыкать палочкой одно приложение из другого можно только с правами мегаадминистратора.<br />Чтобы снизить количество мата в окружающей среде, лучше изначально добавить в своего робота такой простой метод проверки<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void CheckAdministrator()
{
var identity = WindowsIdentity.GetCurrent();
if (identity == null) throw new InvalidOperationException("Couldn't get the current user identity");
var principal = new WindowsPrincipal(identity);
// Check if this user has the Administrator role. If they do, return immediately.
// If UAC is on, and the process is not elevated, then this will actually return false.
var isBuiltInAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
if (!isBuiltInAdmin)
{
var exMessage = "Робот запущен не под Администратором";
WriteLog(LogLevels.Error, exMessage);
MessageBox.Show(
exMessage, "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Error);
Shutdown();
}
}</pre>
</div></div><br />По последней строчке видно, что метод вызывается из App.xaml.cs,<br />который в свою очередь стоит сделать наследником ILogSource и добавить в источники логирования,<br />в том числе и для того, чтобы надёжно логировать все возможные исключения, но это уже другая песня.<br /><br />Англоязычные комментарии остались от <a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADaUgqeUiMvqHjAqLN3xr_c7yQrNXHQrzjvyiLQi2lwtw" title="http://stackoverflow.com">http://stackoverflow.com</a>, откуда собственно код и позаимствован. Там ещё была проверка на UAC, но он у вас выключен.Copyright @ StockSharp Platform LLC 2010 - 2024