سوال در مورد رجيستري ( چك كردن وجود يك كليد )
چطور بايد چك كنيم ببينيم اين كليد تو رجيستري هست يا نه ؟ اگر نبود اونو ايجاد كنه
من ميخوام برنامه براي اولين بار كه اجرا ميشه چك كنه ببينه اين كليد تو رجيستري هست يا نه ؟ اگر نبود اونو ايجاد كنه
RegistryKey k = Registry.CurrentUser.CreateSubKey(@"upkeeper");
k.SetValue("mypassword", "");
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
بايد از if استفاده كني و كليدي رو كه قراره باز كنه ( چك كنه هست) رو برابر با null قرار بده اگه null بود بگو ايجاد كنه.
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
نقل قول:
نوشته شده توسط
shytonak
بايد از if استفاده كني و كليدي رو كه قراره باز كنه ( چك كنه هست) رو برابر با null قرار بده اگه null بود بگو ايجاد كنه.
if( RegistryKey k = Registry.CurrentUser.CreateSubKey(@"upkeeper")==null&&k.SetValue("mypassword", "")==null;)
{
RegistryKey k = Registry.CurrentUser.CreateSubKey(@"upkeeper");
k.SetValue("mypassword", "");
}
اينطوري نوشتم كار نكرد.
من ميخوام چك كنه اگر اين مسير در رجيستري نباشه اونو بسازه و وقتي ديد هست . هيچ كاري نكند
اينم مسير
[HKEY_CURRENT_USER\upkeeper]
"mypassword"=""
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
دوست عزیز نمی دونم می خوای چیکار کنی ولی یک سر به این پست بزن اگه حل شد و تونستی یک کاری بکنی به ما هم کمک کن؟
https://barnamenevis.org/showthread.php?t=145731
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
این هم راه حل
RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"upkeeper");
if (regkey != null)
{
string pass = regkey.GetValue("mypassword").ToString();
//کلید وجوددارد
}
else
{
//create key
regkey=Registry.CurrentUser.CreateSubKey(@"upkeepe r",RegistryKeyPermissionCheck.ReadWriteSubTree) ;
regkey.SetValue("mypassword", "reza");
}
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
البته باید در آخر هم دستور regkey .Flush(); رو اجرا کنی تا مطمئن بشی که داده ها نوشته شدند
برای اطلاعات بیشتر به این ادرس مراجعه کن
http://www.dijksterhuis.org/modifyin...registry-in-c/
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
رضا جان دستت درد نكنه . مشكلم حل شد . كد بسار عالي بود
ميشه توضيح بدي اين @ چي كار مي كنه تو كد زير : چون بعضي جاها اينو نمي زارن ؟ دليلش چيه ؟
RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"upkeeper");
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
نقل قول:
نوشته شده توسط
mirage041
به اين لينك نگاه كردم . منم تقريبا همچين كاري كردم
من يه برنامه نوشتم كه براي وارد شده به برنامه اجبارا بايد پسورد وارد كني . چون اين برنامه اطلاعات شخصي و مهم افراد را نگه ميداره . هيچ كس بجز شخصي كه از نرم افزار استفاده مي كنه نبايد بتونه به برنامه دسترسي داشته باشه.
در اولين بار كه شخص برنامه را اجرا مي كنه كادر پسورد ظاهر ميشه و شخص براي اولين بار بدون پسورد وارد برنامه ميشه و در قسمت change password برنامه يه پسوردي براي خودش ثبت مي كنه . اين پسورد تو رجيستري ثبت ميشه و دفعه بعد كه شخص ميخواد وارد برنامه بشه پسورد خودش را ميزنه.
مشكل من اين بود كه چون من پسورد را با ادرسي كه رجيستري بود مقايسه مي كردم
براي شخصي كه براي اولين بار از برنامه استفاده مي كنه تو رجيستري ويندوزش اين مسير نبود. و بايد هنگاه لود برنامه اين مسير ساخته ميشد. كه اين كار هم به كمك كد رضا حل شد
البته پسورد را من hash مي كنم و تو رجيستري قرار ميدم . و پسوردي كه كاربر وارد مي كنه ايتدا هش ميشه و با هش ي كه تو رجيستري هست مقايسه ميشه. اگر درست بود وارد برنامه ميشه
قفل نرم افزاري هم به كمك اين روش ميشه نوشت . كه الان من مي تونم راحت اين كار را بكنم
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
کاربرد @ در اینجا اینه که اگه در آدرس کلید از کاراکتر \ استفاده بشه به جای اینکه دوتا نوشته بشه یه دونه نوشته می شه مثلا دو رشته زیر در #c برابرند
"rt\\kh"
برابر است با رشته "rt\kh"@
نقل قول: سوال در مورد رجيستري ( چك كردن وجود يك كليد )
البته یادم رفت بگم من فکر می کنم این یکی از کاربردهای @ بود و شاید کاربرد دیگری هم داره که اگه از دوستان بلدند بگن تا ما هم یاد بگیریم