C# a registre – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

C# a registre – .NET – Fórum – Programujte.comC# a registre – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
iaragorn0
Duch
21. 3. 2008   #1
-
0
-

Ahoj,

pouzivam C# a .Net 2.0 a snazim sa pristupovat do registrov Windowsu.
Pouzivam na to triedu RegistryKey.

Problem je ten ze ak chcem citat nieco s chranenej casti registrov(resp. tam kde nemam pristup)
tam mi to vyhadzuje exception

"Requested registry access is not allowed." System.Exception {System.Security.SecurityException}

Otazka co s tym ak aj tak tam chcem pristupit. Ako na to?

Dakujem

Nahlásit jako SPAM
IP: 78.98.108.–
Reklama
Reklama
DeaLer+2
Hero
21. 3. 2008   #2
-
0
-

To iaragorn : Budeš muset spustit aplikaci pod uživatelem, kterej k tomu má práva. To je bezpečnostní politika OS a s tím nejspíš nic neuděláš (ale vždycky existuje možnost, že nemám pravdu).

BTW: Pokud je to možný, doporučuju registry nepoužívat.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
iaragorn0
Duch
21. 3. 2008   #3
-
0
-

No spustam to pod administratorskym uctom.

Nahlásit jako SPAM
IP: 78.98.108.–
DeaLer+2
Hero
21. 3. 2008   #4
-
0
-

To iaragorn : Tak k tomu prosím napiš víc informací (OS, větev registrů, atd.).

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
iaragorn0
Duch
21. 3. 2008   #5
-
0
-

takze OS je winXP SP2 ( mam taky pocit ze pod vistou som s tym nemal problem. ale teraz ozaj neviem).
vetva registrov - HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002\\Enum\\Root

Nahlásit jako SPAM
IP: 78.98.108.–
DeaLer+2
Hero
21. 3. 2008   #6
-
0
-

To iaragorn : Tak mě zrovna těď nic nenapadá, google taky nic moc.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
mephi0
Expert
22. 3. 2008   #7
-
0
-

a cez regedit tam maš pristup ?

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
DeaLer+2
Hero
22. 3. 2008   #8
-
0
-

To mephi : Regedit funguje, možná ta aplikace potřebuje systémový práva.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
iaragorn0
Duch
23. 3. 2008   #9
-
0
-

no ved prave ze cez regedit to ide.
neviem asi na to bude treba nejakeho specialistu co sa vyzna,
ani na googli nic moc

Nahlásit jako SPAM
IP: 78.98.189.–
paashi0
Super člen
31. 3. 2008   #10
-
0
-

To iaragorn :

Možná vám to bude připadat naprd, ale zato to funguje. Potřeboval jsem uložit do registru kulturu aplikace, aby se mohla příště spustit s novou kulturou. Přístup do registru je nastavený parametry "assembly:". Připomenu, že toto je uvedeno v program.cs souboru, ale tuším že to šlo nastavit i v souboru "Form.cs".



using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Globalization;
using System.Threading;
using System.Security.Permissions;

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum, ViewAndModify = "HKEY_CURRENT_USER")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, ControlThread = true)]
namespace MyTest
{


static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
try
{
RegistryKey settings;
try
{
settings = Registry.CurrentUser.OpenSubKey("Software\\MySoft\\Settings",true);
}
catch(Exception)
{
settings = Registry.CurrentUser.CreateSubKey(("Software\\MySoft\\Settings"),Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree);
}
try
{
String lang = settings.GetValue("Language").ToString();
settings.Close();
if(String.Compare(lang,"Czech") == 0)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ",false);
Thread.CurrentThread.CurrentUICulture = new CultureInfo("cs-CZ",false);
}
if(String.Compare(lang,"English") == 0)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US",false);
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US",false);
}
}
catch(Exception)
{
}
}
catch(Exception ex)
{
MessageBox.Show(String.Concat("Probably you have no permissions of Administrator to access registry. ",ex.ToString()), "Error");
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyTest());


}
}
}

Nahlásit jako SPAM
IP: 158.193.216.–
Ajem tíčr, andrgraund tíčr!
iaragorn0
Duch
31. 3. 2008   #11
-
0
-

no vdaka za napad ale nepomohlo to
stale to iste
"Requested registry access is not allowed." System.Exception {System.Security.SecurityException}

Nahlásit jako SPAM
IP: 78.98.54.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 94 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý