PDA

View Full Version : سوال: ثبت مقدار در Local_Machine



Payman62
پنج شنبه 19 شهریور 1388, 05:47 صبح
سلام.
1 سوال در مورد کار با کلاس های رجیستری دارم.
اولیش ثبت مقدار در کلید Local_Machine هست. در یه مسیر از این کلید که ثبت مقدار مجاز هست و توسط رجیستری میتونم مقدار ثبت کنم برنامه پیغام میده که اجازه دسترسی نداری. برنامه هم به صورت ادمین اجرا میشه.
خواستم با RegistrySecurity و RegistryAccessRule پرمیشن بدم ولی نتونستم.
لطفا در این مورد راهنمایی کنید.

Saeed.Masoumi
پنج شنبه 19 شهریور 1388, 19:51 عصر
سلام
کاش دستوراتتو می ذاشتی.ولی دوتا موضوع شاید بدردت بخوره:
1-روی ویندوز 7 یا ویندوز ویستا این کارو می کنی؟اگه اینطور یه چیزی هست تو کنترل پانل الان یادم نمیاد دقیقا چی بود (یهچیزی مثه Parental Control) برو توش اونو از Disable کن
2-اگه می خوای یک SubKey رو باز کنی از دستور زیر استفاده کن:

xxxxxxx.SetSubkey("Name",True);

vcldeveloper
پنج شنبه 19 شهریور 1388, 23:26 عصر
روی ویندوز 7 یا ویندوز ویستا این کارو می کنی؟اگه اینطور یه چیزی هست تو کنترل پانل الان یادم نمیاد دقیقا چی بود (یهچیزی مثه Parental Control) برو توش اونو از Disable کن
اسمش UAC هست. به هیچوجه توصیه نمیشه این گزینه را غیرفعال کنید. بجای آن، با مطالعه مستندات مایکروسافت برای تعامل با UAC، از طریق کد به ویندوز بفهمانید که برای انجام این کار نیاز به دسترسی Admin دارید، تا ویندوز process شما را elevate کنه.

Payman62
جمعه 20 شهریور 1388, 00:07 صبح
سلام.
بله وین من 7 هست. ولی من برنامه رو ران از ادمین اجرا میکردم که محدودیت نداشته باشه.
با آقای کشاورز هم موافقم. من دسترسی سیستم خودم رو از تو کنترل پنل ایجاد کنم. سیستم های دیگه رو چی کار کنم؟ منطقی نیست اصلا.

vcldeveloper
جمعه 20 شهریور 1388, 05:25 صبح
ولی من برنامه رو ران از ادمین اجرا میکردم که محدودیت نداشته باشه.
در ویستا و نسخه های بعد از آن، حتی برنامه های عادی که یک کاربر Admin اجرا میکنه، بصورت Standard User اجرا میشند، غیر از اینکه برنامه صراحتا به ویندوز بگه که برای اجرا نیاز به دسترسی Admin داره، یا بصورت عادی اجرا بشه، و هر زمان برای انجام کار خاصی نیاز به دسترسی Admin داشت، به ویندوز خبر بده.

مثلا Task Manager در ویستا و 7 فقط Processهای کاربر فعلی را نشان میده، حتی اگر کاربر Admin باشه. اگر کاربر بخواد Processهای همه کاربران رو ببینه، باید روی دکمه مربوطه کلیک کنه، در اون صورت، ویندوز یک پیام هشدار نمایش میده، و اگر کاربر تایید کرد، ویندوز آن Process را elevate میکنه، تا به داده های سطح Admin دسترسی پیدا کنه. برنامه هایی که در ویندوز برای اجرا نیاز به دسترسی Admin داشته باشند، در آیکن شان یک تصویر سپر با آرم ویندوز وجود داره. دکمه هایی که در یک برنامه در صورت فشرده شدن، نیاز به دسترسی Admin داشته باشند هم همین تصویر بر روی آنها درج شده.

Payman62
جمعه 20 شهریور 1388, 16:42 عصر
در ویستا و نسخه های بعد از آن، حتی برنامه های عادی که یک کاربر Admin اجرا میکنه، بصورت Standard User اجرا میشند، غیر از اینکه برنامه صراحتا به ویندوز بگه که برای اجرا نیاز به دسترسی Admin داره

سلام.
بله این مطالب رو میدونم. من تیک run as admin رو زدم و برنامه با دسترسی ادمین ( نه استاندارد ) ران میشه. ولی باز ولیو رو ست نمیکنه.

برنامه رو به صورت سرویس نوشتم مشکل حل شد.

ولی میخوام مشکل رو برای یوزر عادی هم حل کنم.