PDA

View Full Version : مبتدی: ایجاد فایل در مسیر System32 ویندوز



sayan
یک شنبه 30 مرداد 1390, 12:54 عصر
سلام دوستان عزیز
من میخواهم وقتی که فرم برنامه Load میشه یک فایلی ساخته بشه و در مسیر system32 یا commonFile
ایجاد کنه . توی سیستم خودم کار می کنه ولی توی چند تا سیستم تست کردم کار نکرد .:افسرده:

پیغام خطای UnauthorizedAccessException می دهد.




fileSecurity = new FileSecurity();
string account = String.Format("{0}\\{1}", Environment.UserDomainName, Environment.UserName);
fileSecurity.AddAccessRule(new FileSystemAccessRule(account,FileSystemRights.Crea teFiles,AccessControlType.Allow));
File.Create(SpecialFolder, 1024, FileOptions.WriteThrough, fileSecurity);



ممنون میشم راهنمایم کنید

sayan
یک شنبه 30 مرداد 1390, 15:55 عصر
دوستان اگه راه حلی دارند که بشه توی پوشه system32 یک فایل ساخت رو اطلاع دهند

lahzebelahze
یک شنبه 30 مرداد 1390, 16:26 عصر
سلام
برای ایجاد کردن فایل از
System.IO.Directory.CreateDirectory استفاده می کنند
مثلا برای ایجاد پوشه test :


string dir = @"C:\WINDOWS\system32\test";
System.IO.Directory.CreateDirectory(dir);

sayan
یک شنبه 30 مرداد 1390, 18:12 عصر
درسته ولی مشکل اینه که به دلیل مسائل امنیتی اجازه ساخت فایل یا پوشه رو از طریق کد نویسی نمیده

Salar Ashgi
یک شنبه 30 مرداد 1390, 20:08 عصر
خیلی ساده :


System.IO.File.Create(Environment.GetFolderPath(En vironment.SpecialFolder.System) + "\\my_file.dll");


موفق باشید ./

sayan
سه شنبه 01 شهریور 1390, 14:05 عصر
تشکر میکنم.

این تیکه کد روی سیستم خودم جواب میده به راحتی ولی توی چند تا سیستم دیگه مثل ویندوز ویستا و ویندوز 7 امتحان کردم پیغام خطای UnauthorizedAccessException می دهد من میخوام توی این سیستم های مورد دار هرجوری شده یه فایل بسازم که فعلاً نتونستم.

پیغام خطا میگه شما دسترسی ندارید که توی محل مذبور فایل یا پوشه ای بسازید

mamrez_kh
سه شنبه 01 شهریور 1390, 14:08 عصر
روی برنامت تو اون یکی سیستم ها راست کلیک کن، بعد گزینه Run as administrator رو بزن

sayan
سه شنبه 01 شهریور 1390, 14:26 عصر
روی برنامت تو اون یکی سیستم ها راست کلیک کن، بعد گزینه Run as administrator رو بزن

این روش میشه به طریق کد نویسی انجام داد یعنی وقتی برنامه اجرا میشه Run as administrator اجرا بشه ؟

Farshid007
سه شنبه 01 شهریور 1390, 14:43 عصر
به این (http://www.enusbaum.com/blog/2007/08/26/how-to-run-your-c-application-as-administrator-in-windows-vista/) یه نگاه بنداز

mamrez_kh
سه شنبه 01 شهریور 1390, 14:47 عصر
توی VS برای پروژت یه دونه application manifest file رو add کن. یه خط داره که این نوشته رو داره:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
این خط رو تبدیل بکن به این:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
با این کار هر سری که برنامت میخواد اجرا بشه، اتوماتیک رو مد admin اجرا میشه (از خود کاربر اجازش رو میخواد)

sayan
سه شنبه 01 شهریور 1390, 15:17 عصر
دوست عزیز این تکه کد واقعاً کمکم کرد .

در مورد این فایل میشه کمی توضیح بدید کلاً کارش چیه و چه کارها باهاش میشه انجام داد.

mamrez_kh
سه شنبه 01 شهریور 1390, 16:59 عصر
راستش زیاد راجع به این فایل اطلاعاتی ندارم. تا اون جایی که من میدونم این فایل یه سری ویژگی هایی که وقتی برنامه میخواد اجرا بشه رو نگه میداره. برای مثال (همون کدی که تو این تاپیک بحث شد) وقتی برنامه داره اجرا میشه، با توجه به اون ویژگی تو حالت admin اجرا میشه

sayan
چهارشنبه 02 شهریور 1390, 15:06 عصر
دوست عزیز این تیکه کدی که نوشتم بعضی وقت ها ارور زیر میده :


Error 1 ClickOnce does not support the request execution level 'requireAdministrator'. OfficalDocuments

mamrez_kh
چهارشنبه 02 شهریور 1390, 15:13 عصر
برنامتون از تکنولوژی به اسم ClickOnce استفاده میکنه؟ اگر آره، با توجه به این لینک (http://stackoverflow.com/questions/5713825/run-as-administrator-requireadministrator-clickonce-emulating-system-time) گویا نمیتونین از این کد استفاده بکنین، اگر نه نمیدونم مشکل از چیه