﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Проверка на админа</title>
  <id>~/topic/3241/proverka-na-admina/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-07T03:50:15Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3241" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/22962/</id>
    <title type="text">Наверное все знают, что в новых Windows тыкать палочкой одно приложение из другого можно только с пр...</title>
    <published>2012-12-14T19:33:56Z</published>
    <updated>2012-12-14T19:33:56Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Наверное все знают, что в новых Windows тыкать палочкой одно приложение из другого можно только с правами мегаадминистратора.&lt;br /&gt;Чтобы снизить количество мата в окружающей среде, лучше изначально добавить в своего робота такой простой метод проверки&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
 
private void CheckAdministrator()
	{
		var identity = WindowsIdentity.GetCurrent();
		if (identity == null) throw new InvalidOperationException(&amp;quot;Couldn&amp;#39;t get the current user identity&amp;quot;);
		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 = &amp;quot;Робот запущен не под Администратором&amp;quot;;
			WriteLog(LogLevels.Error, exMessage);
			MessageBox.Show(
				exMessage, &amp;quot;Ошибка&amp;quot;,
				MessageBoxButton.OK, MessageBoxImage.Error);
			Shutdown();
		}
	}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;По последней строчке видно, что метод вызывается из App.xaml.cs,&lt;br /&gt;который в свою очередь стоит сделать наследником ILogSource и добавить в источники логирования,&lt;br /&gt;в том числе и для того, чтобы надёжно логировать все возможные исключения, но это уже другая песня.&lt;br /&gt;&lt;br /&gt;Англоязычные комментарии остались от &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADaUgqeUiMvqHjAqLN3xr_c7yQrNXHQrzjvyiLQi2lwtw" title="http://stackoverflow.com"&gt;http://stackoverflow.com&lt;/a&gt;, откуда собственно код и позаимствован. Там ещё была проверка на UAC, но он у вас выключен.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>