<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=48&amp;t=6176&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-28T22:58:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=48&amp;t=6176&amp;mode</id>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-02-28T22:58:12+01:00</updated>
<published>2014-02-28T22:58:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72517#p72517</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72517#p72517"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72517#p72517"><![CDATA[
O manifeście oczywiście wiem i używam, bez tego przy próbie dostępu wywalało błąd dostępu, chyba, że dałem kod zapisywania klucza do bloku try{}<br /><br />Ale to już rozwiązałem, i najbardziej interesuje mnie jak zmusić frameworka do aby nie dodawał kluczy z apki 32-bitowej do Software\Win6432Node tylko do normalnej ścieżki. Może rozwiązaniem byłoby zapożyczenie kilku funkcji od WinAPI, szkoda tylko bo obsługa rejestru w .NET jest po prostu bajeczna <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 28 lut 2014, o 22:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2014-02-28T22:09:07+01:00</updated>
<published>2014-02-28T22:09:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72510#p72510</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72510#p72510"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72510#p72510"><![CDATA[
Oczywiście że można , miałem to nawet opisać , ale chwilowo nie mam weny twórczej ... podobno piszę o kant <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />zainteresuj się tym :<br /><br /><!-- m --><a class="postlink" href="http://social.msdn.microsoft.com/Forums/vstudio/en-US/f833b133-e719-47e0-9024-20a039fbde98/c-windows-8-uac-and-registry-edit?forum=csharpgeneral" >http://social.msdn.microsoft.com/Forums ... arpgeneral</a><!-- m --><br /><br /><br />można też użyć manifestu by dostać pozwolenie .... <br />np dopisując w manifeście linijkę w elemencie &lt;requestedExecutionLevel&gt;<br /><br />[syntax=xml]&lt; requestedExecutionLevel poziom = &quot;requireAdministrator&quot; uiAccess = &quot;false&quot;  /&gt;[/syntax]<br /><br />ale to tylko połowa sukcesu .... niemniej osadzenie manifestu w pliku exe spowoduje zawsze uruchomienie programu z z uprawnieniami administratora.  <br /><br />informacje szczegółowe znajdziesz tu: <!-- m --><a class="postlink" href="http://msdn.microsoft.com/en-us/library/bb756929.aspx" >http://msdn.microsoft.com/en-us/library/bb756929.aspx</a><!-- m --><br /><br />pamiętaj że w pliku manifest w tagu : requestedExecutionLevel<br /><br />możesz sobie ustawić  poziom trzech wartości :<br /><br />[syntax=xml]&lt;requestedExecutionLevel level=&quot;asInvoker&quot; uiAccess=&quot;false&quot; /&gt;<br />&lt;requestedExecutionLevel level=&quot;requireAdministrator&quot; uiAccess=&quot;false&quot; /&gt;<br />&lt;requestedExecutionLevel level=&quot;highestAvailable&quot; uiAccess=&quot;false&quot; /&gt;[/syntax]<br /><br />poniekąd można tez ręcznie sprawdzać :<br /><br />[syntax=csharp]using System.Security.Principal;<br />public bool IsUserAdministrator()<br />{             <br />    bool isAdmin;<br />    try<br />    {<br />        WindowsIdentity user = WindowsIdentity.GetCurrent();<br />        WindowsPrincipal principal = new WindowsPrincipal(user);<br />        isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);<br />    }<br />    catch (UnauthorizedAccessException ex)<br />    {<br />        isAdmin = false;<br />    }<br />    catch (Exception ex)<br />    {<br />        isAdmin = false;<br />    }<br />    return isAdmin;<br />}[/syntax]<br /><br /><br />temat rzeka ... ale działa na W7 64 i poniekąd na W8<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 28 lut 2014, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-02-28T21:53:22+01:00</updated>
<published>2014-02-28T21:53:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72506#p72506</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72506#p72506"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72506#p72506"><![CDATA[
Zauważyłem właśnie że klucze pod apką 32-bit dodawały się nie do podanej ścieżki tylko do HKEY_LOCAL_MACHINE\Software\Win6432Node\... więc czy istnieje jakiś sposób aby dodawało do określonej ścieżki, niby można na początku sprawdzać jaki jest system i wchodzić do określonej ścieżki ale to takie &quot;ukraińskie&quot; rozwiązanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 28 lut 2014, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mira_aT]]></name></author>
<updated>2014-02-28T20:52:15+01:00</updated>
<published>2014-02-28T20:52:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72494#p72494</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72494#p72494"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72494#p72494"><![CDATA[
Dlatego pewnie że od Win7 mamy UAC  i trzeba niestety  pod 64bit pisać z nim w zgodzie, na 32 bitowych systemach niema tego problemu gdyż i ochrony żadnej też niema ani rejestru ani kont.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3142">mira_aT</a> — 28 lut 2014, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-02-28T19:57:04+01:00</updated>
<published>2014-02-28T19:57:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72479#p72479</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72479#p72479"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72479#p72479"><![CDATA[
Kurcze wszystko działa ale nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Mianowicie kiedy skompiluję program jako 64-bitowy wszystko działa i klucz dodaje się do rejestru (nie trzeba dodawać uprawnień tak jak napisałeś wystarczy jako drugi parametr OpenSubKey podać wartość true) natomiast kiedy skompiluje jako 32-bitowy to wartość się dodaje ale jakby &quot;niejawnie&quot; czyli kiedy odczytuję ja z poziomu programu poprzez GetValue() to jest widoczna natomiast z normalnego przeglądu rejestru już nie.<br />Może ma ktoś co do tego jakieś sensowne wytłumaczenie, ponieważ program z założenia ma być uniwersalny?<br />Oraz dlaczego zapis do klucza CurrentUser działa normalnie na aplikacji 32-bitowej i jest widoczny w rejestrze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 28 lut 2014, o 19:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolek]]></name></author>
<updated>2014-02-28T10:40:26+01:00</updated>
<published>2014-02-28T10:40:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72385#p72385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72385#p72385"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72385#p72385"><![CDATA[
to nie win95 , tu musisz miec uprawnienia ,  np tak  dodajesz przed <br />[syntax=csharp]class Program<br />    {<br />        &#91;assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum,<br />    ViewAndModify = &quot;HKEY_CURRENT_USER&quot;)&#93;<br />        static void Main(string&#91;&#93; args)<br />        {<br />            RegistryKey klucz01 =<br />             Registry.CurrentUser.CreateSubKey(&quot;KluczGlowny&quot;);<br />            using (RegistryKey<br />                testName = klucz01.CreateSubKey(&quot;Opcja1&quot;),<br />                ustawieniaTestowe = klucz01.CreateSubKey(&quot;Opcja2&quot;))<br />            {<br />                ustawieniaTestowe.SetValue(&quot;Klucz&quot;, &quot;1&quot;);<br />                ustawieniaTestowe.SetValue(&quot;Poziom&quot;, &quot;Wysoki&quot;);<br />                ustawieniaTestowe.SetValue(&quot;ID&quot;, 123);<br />            }<br />        }<br />    }[/syntax]<br />i w 4.0 , 4.5 assembly jakos innaczej sie zapisuje nie chcialo mi sie tego sprawdzac <br />msdn jest lepsze do takich pytań niz tu na forum ,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2535">karolek</a> — 28 lut 2014, o 10:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-02-28T02:26:40+01:00</updated>
<published>2014-02-28T02:26:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72375#p72375</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72375#p72375"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72375#p72375"><![CDATA[
Nic, normalnie przechodzi to jedynie kiedy nie nadam uprawnień administratora to wyrzuca wyjątek. Najdziwniejsze jest to że z aplikacji foremkowej  działa gdzie bym tego nie włożył.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 28 lut 2014, o 02:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[arturf209]]></name></author>
<updated>2014-02-28T01:54:28+01:00</updated>
<published>2014-02-28T01:54:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72374#p72374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72374#p72374"/>
<title type="html"><![CDATA[Re: C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72374#p72374"><![CDATA[
A co się dzieje? Rzuca wyjątkiem czy nagle komputer się zawiesza? Troszkę informacji <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=801">arturf209</a> — 28 lut 2014, o 01:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-02-28T00:47:47+01:00</updated>
<published>2014-02-28T00:47:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72372#p72372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72372#p72372"/>
<title type="html"><![CDATA[C# rejestr raz działa raz nie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6176&amp;p=72372#p72372"><![CDATA[
Witam <br /><br />Mam problem z dodawaniem klucz do rejestru, a mianowicie chcę dodać jakiś tam klucz do autostartu (domyślnie będzie to ścieżka mojej aplikacji) i robię to w ten sposób:<br />[syntax=csharp]RegistryKey key;<br />key = Registry.LocalMachine.OpenSubKey(@&quot;SOFTWARE\Microsoft\Windows\CurrentVersion\Run&quot;, true);<br />key.SetValue(&quot;Klucztekstowy&quot;, &quot;Ten tekst jest w kluczu.&quot;);<br />key.Close();[/syntax]<br /><br />I kiedy ten kod dodam w evencie jakiegoś przycisku to wszystko działa idealnie, natomiast problem zaczyna się kiedy ten sam kod odpalam z funkcji main w programie konsolowym, wtedy klucz się nie dodaje (chyba że zamiast LocalMachine dam CurrentUser) oczywiście program uruchamiany z uprawnieniami administratora.<br /><br />Nie wiem jak rozwiązać ten problem, a w internecie nic sensownego nie znalazłem dlatego mam nadzieję na pomoc od was.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 28 lut 2014, o 00:47</p><hr />
]]></content>
</entry>
</feed>