تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: مقدار دهي به value از نوع dword تو رجيستري از طريق vb

  1. #1
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض مقدار دهي به value از نوع dword تو رجيستري از طريق vb

    من ميخوام از تو vb يه مقدار از نوع dword بسازمو مقداردهي كنمش. ولي هر مقداري ميدم تو رجيستري مينويسه invalid dword value حالا چه طور بايد بهش مقدار بدم كه invalid نشه؟

  2. #2
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    جوابو گير اوردم. بايد با يه متغير از نوع long مقدار بديم.

  3. #3
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    جواب كامل تر.
    مشكلم رو هفته پيش حل كردم. گفتم اينجام راه حلشو بگم تا تاپيك بي جواب نمونه و اگه كسي موقع سرچ اين تاپيك رو خوند جواب بگيره.
    مشكل بر ميگرده به تعريف تابع RegSetValueEx . رفتم دقيق پارامترهاي اين تابع رو بررسي كردم.تو API Text Viewer ديدم پارامتر يكي مونده به آخر يعني lpData از نوع Any تعريف شده. ميدونيد كه Any هر مقداري از هر نوعي رو ميگيره و معتبر بودن مقدار هم چك نميشه. اينه كه خيلي مواقع مثل اين مورد اشتباه پيش مياد.
    من براي Value از نوع Reg_SZ بايد مقدار String ميفرستادم و براي Reg_DWORD مقدار عددي مثل Integer . اگر پارامتر lpData با Any تعريف ميشد Value هاي از نوع Reg_SZ درست مقدار دهي نميشدن. براي همين مجبور شدم دو بار تابع رو تعريف كنم .
    يك بار lpData رو از نوع String
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و يك بار هم از نوع Integer تعريف كردم. البته lpData همون Any هم باشه با مقادير عددي مشكلي نداره و كار درست پيش ميره.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    توجه كنيد در تابع اول كه lpData رو از نوع String تعريف كرده اين پارامتر ByVal تعريف شده ولي در تابع دوم ByVal براي اين پارامتر وجود ندارد.
    اون تابعي كه lpData در آن از نوع String هست Public هست و هر جا RegSetValueEx صدا زده بشه lpData از نوع String خواهد بود.(به جز ماژولي كه اون يكي تابع RegSetValueEx توش تعريف شده). اون تابعي هم كه lpData از نوع Integer هست تو يه ماژول ديگه هست و Private هست. من تو اين ماژول يه تابع Public نوشتم كه Value از نوع Reg_DWORD ايجاد ميكنه و چون تابع RegSetValueEx كه در اين ماژوله براي تابعي كه من نوشتم محلي حساب ميشه از همين تابع محلي كه Private هست استفاده ميكنه نه اوني كه Public هست. همان طور هم كه گفتم lpData در اين تابع محلي از نوع Integer هست پس ميتونه به Value از نوع Reg_DWORD مقدار بده و چون تابعي كه من نوشتم Public هست تو كل برنامه ميشه صداش زد تا Value از نوع Reg_DWORD ايجاد كنه.
    به همين سادگي مشكل حل شد.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •