PDA

View Full Version : سوال: ارور run time 94 هنگام کار با رجيستری



R2du-soft
یک شنبه 03 شهریور 1392, 13:09 عصر
با سلام
دوستان من تو ویندوز 64 بیتی برای خوندن یک value از ریجستری مشکل دارم
از کد زیر استفاده میکنم:



Const HKEY_LOCAL_MACHINE = &H80000002
Text2.Text = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000001\Profiles\ @My profile", "enabled", 64)


اما موقع خوندن و ذخیره در تکست باکس با ارور زیر مواجه میشم:


run-time error '94':
invalid use of null




به نظرم چون مسیر طولانی هست این مشکل رو دارم چون دقیقا با این کد:

Text1.Text = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE\ESET\ESET Security\CurrentVersion\Info", "InstallDir", 64)

برام ریجستری رو میخونه!

مشکل توی ویدنوز 64 هست،میشه راهنماییم کنید؟
ممنون

mehran901
یک شنبه 03 شهریور 1392, 13:27 عصر
با سلام
دوستان من تو ویندوز 64 بیتی برای خوندن یک value از ریجستری مشکل دارم
از کد زیر استفاده میکنم:



Const HKEY_LOCAL_MACHINE = &H80000002
Text2.Text = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000001\Profiles\ @My profile", "enabled", 64)



ممنون

علتی که این ارور رو میده به خاطر اینه که در ویندوز های 64 بیتی برنامه های 32 بیتی شبیه سازی میشن و به آدرس هایی متفاوت از آدرس های اصلی دایورت میشن و موقع اجرا به رجیستری اصلی دسترسی ندارن(پس عملا اون کلید وجود نداره و 94 هم ناشی از همین هست ) درواقع شما باید از Batch فایل واسه اضافه کردن کلید یا خوندن مقادر از رجیستری استفاده کنین که خیلی حرفه ای نیست ... راه حلش رو تو تاپیک زیر من پرسیدم و به جاهای خوبی رسید که باید با ثابت KEY_WOW64_64KEY و با استفاده از Api به رجیستری دسترسی پیدا کنین :
http://www.dreamincode.net/forums/topic/324810-running-the-32bit-compiled-app-on-64-bit-windows-with-registry-access/

R2du-soft
یک شنبه 03 شهریور 1392, 13:39 عصر
عزیز ما که در اون حد انگلیسیمون خوب نیست!
ماشاالله فولی ها :لبخند:
عزیز میشه همینجا راهنمایی کنی تا کسایی که مثل من زبانشون زیاد خوب نیست هم بفهمن؟
ممنون میشم گلم :قلب:

مشکل منم دقیقا تغییر مسیر در ویندوز 64 و 32 هست ، البته به طور ظاهری جاش یکجا هست اما نمیخونه نمیدنم چرا!

با api چطور میشه رفعش کرد؟

R2du-soft
یک شنبه 03 شهریور 1392, 13:39 عصر
راستی پس چرا این کد جواب میده؟!!!!


Text1.Text = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE\ESET\ESET Security\CurrentVersion\Info", "InstallDir", 64)

R2du-soft
یک شنبه 03 شهریور 1392, 14:30 عصر
مشکل رو یافتم!!!! .........
چون فایل اولی از نوع SZ هست میتونه بخونتش اما اگه فایل از نوع Dword باشه نمیتونه که بخونتش!
روشی به ذهنتون میرسه برای رفع این مشکل؟