PDA

View Full Version : مشکل با کامپوننت ها



ModernWarfare
پنج شنبه 15 بهمن 1388, 13:40 عصر
سلام.
من یه برنامه نوشته بودم که از تعدادی کامپوننت اضافه بر ویندوز مثلا یه کامپوننت بود که یک فریم زیبا بود استفاده کرده بودم.
وقتی تویه یک کامپیوتر دیگه بردم سورس برنامه رو توی لود کردن کامپوننت ها ایراد میگرفت و تمام قسمت هایی که از کامپوننت استفده کرده بودم پاک شده بود.
شاید نکته ای هست که من دربارشون نمی دونم.
پس اگه کسی نحوه ی کامل استفاده کردن از کامپوننت ها رو میدونه به طوری که دیگه هیچ مشکلی پیش نیاد بگه
با تشکر

ModernWarfare
جمعه 16 بهمن 1388, 20:34 عصر
یعنی کسی تا حالا از کامپوننت به طور صحیح تو برنامش استفاده نکره که یه راهنمایی کنه؟

xxxxx_xxxxx
جمعه 16 بهمن 1388, 22:34 عصر
سلام،
هرجا که تو سیستم اول کامپوننت ها هستند تو سیستم دوم هم باید همونجا باشند، علاوه بر این کامپوننت ها تو سیستم دوم نیاز به رجیستر شدن دارند.
پس بعد از کپی کردن کامپوننت ها در مسیر یکسان با سیستم اول، باید اونها رو رجیستر کنید.

از طریق command prompt :

regsvr32 D:\myproject\myActiveX.ocxمسیر و نام فایل های ocx و dll باید از این طریق توسط regsvr32 رجیستر بشن.
توجه کنید اگر مجدداً بعد از رجیستر کردن، مسیر فایل ها رو تغییر بدید باید دوباره در مسیر جدید فایل ها رو رجیستر کنید.

بهترین و سریعترین کار این هست که تو سیستم اول تمام ocx ها و dll ها در system32 باشند و از همونجا به پروژه add شده باشند. اونوقت در سیستم مقصد هم همه این فایل ها رو به system32 کپی کنید و بعد در همونجا رجیستر کنید.
میتونید همه این کار ها رو تو یک فایل bat بنویسید تا به ترتیب انجام بشن.

مثلاً فرض کنید من دو تا ocx و یک dll دارم که همراه با سایر فایل های موردنیاز برنامه به یک سیستم جدید کپی کردم. توی همین فولدری که برنامه رو کپی کردم یک فایل متنی با پسوند bat میسازم و دستورات زیر رو توش می نویسم:


copy myocx1.ocx %windir%\system32\myocx1.ocx
copy myocx2.ocx %windir%\system32\myocx2.ocx
copy myLibrary.dll %windir%\system32\myLibrary.dll
regsvr32 myocx1.ocx
regsvr32 myocx2.ocx
regsvr32 myLibrary.dll
حالا با اجرا کردن این فایل، کارهای گفته شده انجام میشه و میتونیم پروژه رو بدون مشکل باز کنیم.

موفق باشید/

ModernWarfare
دوشنبه 19 بهمن 1388, 21:23 عصر
سلام
چرا vb این دستور رو نمیشناسه؟( regsvr32 )
به عنوان یه متغییر میشناستش.
چی کار کنم؟

xxxxx_xxxxx
سه شنبه 20 بهمن 1388, 00:34 صبح
سلام،
regsvr32 یک دستور نیست. نام یک فایل هست که پارامتر ورودیش نام ocx یا dll هست.
اگر میخواید رجیستر کردن رو از طریق VB انجام بدید باید با دستور Shell این فایل رو اجرا کنید.
مثلاً:


Shell "regsvr32 FileName.ocx"

برای جلوگیری از نمایش پیغام تأیید رجیستر شدن میتونید این فایل رو با s/ اجرا کنید:
در این باره جستجو کنید، قبلاً بحث شده.


Shell "regsvr32 FileName.ocx /s"

Cybersilent
پنج شنبه 29 بهمن 1388, 21:59 عصر
با سلام
ببینید من به این مشکل برخورد کردم شما باید دستور regsvr32 رو به شکل زیر به کار ببرید


(Shell "regsvr32 " & Chr(34) & App.Path & "\" & Activex.ocx & Chr(34

من فرض کردم کامپوننت کنار خود برنامه تون هست
اگه بازم مشکلی بود در خدمتیم