C# vynimka - pristup odmietnuty

Programovacie jazyky, rady, poradňa...
MarkMarusin
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 30 apr 2011, 13:42

C# vynimka - pristup odmietnuty

Príspevok od používateľa MarkMarusin »

ahojte
mam aplikaciu nazvanu app.exe kde bezi kod ktory tuto samotnu aplikaciu kopiruje do priecinaka C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup teda aplikacia sama seba nakopiruje

kod vyzera takto nejak

Kód: Vybrať všetko

                string localPath = Application.StartupPath;

                localPath += @"\app.exe"; // pridanie nazvu aplikacie k ceste kde sa nachadza
 
                string destination = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\" + System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName; 

                File.Copy(localPath, destination); // kopirovanie aplikacie zo zdroja do ciela 
Ked mi zbehne cely kod tak vyhodi exception ze mam zamietnuty pristup:
{"Access to the path 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\app.exe' is denied."}

problemom je ze netusim preco mam toto kopirovanie do toho priecinku zakazane a odmietnute... na pocitaci som administrator a pokial nakopirujem apikaciu do toho adresara rucne tak to funguje, ked to ale kopiruje aplikacie tak vyhodi tuto vynimku.
pipiak
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 321
Registrovaný: 11 jún 2006, 9:24
Bydlisko: KE
Kontaktovať používateľa:

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa pipiak »

otazka je ci je app spustena pod adminom;)
MarkMarusin
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 30 apr 2011, 13:42

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa MarkMarusin »

ano ano zistil som ze ked spustimdam "run as administrator" tak aplikacia sa nakopiruje bez problemov
da sa tomu nejako vyhnut ? potreboval by som aby to zbelo aj bez spustenia ako administrator
aacid
Hardcore addict
Hardcore addict
Príspevky: 8137
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa aacid »

no to sa ti asi bez nejakeho strasneho hackovania nepodari.
mozes nastavit aby aplikacia pri spustani vyzadovala navyse prava (ti vyskoci take to okno, ze ozaj chcete povolit aplikacii robit zmeny):
http://social.msdn.microsoft.com/Forums ... b4e11a0eb/

ale bez toho aby bol uzivatel informovany to asi nepojde, logicky kvoli bezpecnosti...
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa Spixy »

odporucam to nastavit cez register

Kód: Vybrať všetko

RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
try
{
    rk.SetValue("Moja aplikacia", Application.ExecutablePath.ToString());
}
catch { }
//potom to vymazes pomocou rk.DeleteValue("Moja aplikacia", false);
MarkMarusin
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 30 apr 2011, 13:42

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa MarkMarusin »

no skusal som to co mi radil aacid ze prenastavim to defaultne spustanie na spustit ako administrator... funguje to lepsie ale stale nie postacujuco

no celkom som nepochopil tomu ako to riesil spixy cez ten register, moc som o tom nenasiel.

sry za moju hlupost ale vedel by si mi to popisat blissie ? THX
aacid
Hardcore addict
Hardcore addict
Príspevky: 8137
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa aacid »

miesto toho aby si kopiroval aplikaciu do startup-u, tak vytvoris registry entry do CurrentVersion\Run. windows pri spustani kontroluje co tam je a to pusti.
MarkMarusin
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 30 apr 2011, 13:42

Re: C# vynimka - pristup odmietnuty

Príspevok od používateľa MarkMarusin »

o vdaka za vyriesenie problemu riesenie cez ten register funguje
Napísať odpoveď