• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 11 رای - 3.09 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: اضافه کردن OCX و Dll در Runtime
حالت موضوعی
#1
چگونه یک برنامه وی بی بسازیم که فقط نیاز به یک فایل اجرایی داشته باشه. لازم به ذکر است که برنامه های وی بی برای اجرا در سیستمی که ویژوال بیسیک روی اون نصب نیست ، باید به همراه همه کامپوننت های مورد نظر باشد تا اجرا شوند. در وینوز 2000 به بعد فایل dll اصلی ماشین مجازی وی بی به طور پیش فرض در سیتم موجود می باشد. بنابراین باید سایر فایل های dll و ocx راکه در برنامه از آن استفاده کرده ایم در کنار فایل exe اصلی برنامه بگذاریم تا فایل exe اجرا شود. اما در این قسمت ما قصد داریم کل dll ها و ocx های مورد نیاز را درون فایل exe اصلی ریسورس کرده و هنگام بارگذاری برنامه به طور اتومات آن را روی سیستم کاربر نصب کنیم. تا برنامه به درستی اجرا شود. اما برای این کار باید در پروژه وی بی در قسمت project Properties بخش startup object را به sub main تغییر داده سپس یک ماژول به پروژه اضافه کرده و کد زیر را در آن بنویسید.
کد:
Sub main()



End sub()

حال به منوی add-ins سپس Add-ins manager رفته و VB6 Resource Editor را به محیط وی بی اضافه کنید. حال به Tools رفته و resource Editor را اجرا کنید. روی گزینه یک مانده به آخر Add Custom Resource کلیک کرده و فایل dll یا ocx مورد استفاده در برنامه را وارد کنید. ما در اینجا چون در فرم اول پروژه مان از یک common dialog استفاده کرده بودیم. بنابراین فایل comdlg32.ocx را add کردیم. حالا روی resource اضافه شده با نام 101 دو بار کلیک کرده و "Custom" را به یک نام دلخواه مثلا OCX تغییر دهید. و resource را save کنید.

حالا بین 2 خط sub main() end sub کد های زیر رابنویسید.
کد:
Sub main()
        On Error Resume Next
        Dim strPath As String
        strPath = Environ("systemroot")
        strPath = strPath & "\comdlg32.ocx"
        Dim B() As Byte
        B() = LoadResData(101, "OCX")
        Open strPath For Binary As #1
        Put #1, , B()
        Close
        DoEvents
        Form1.Show
End Sub


حال برنامه را اجرا کنید. در اینصورت برنامه قبل از بارگذاری فرمی که در آن از common dialog استفاده شده است ocx آن را در سیستم کپی نموده سپس فرم را ظاهر می کند.


گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
#2
(09-29-2011، 06:58 PM)Amin_Mansouri نوشته: چگونه یک برنامه وی بی بسازیم که فقط نیاز به یک فایل اجرایی داشته باشه. لازم به ذکر است که برنامه های وی بی برای اجرا در سیستمی که ویژوال بیسیک روی اون نصب نیست ، باید به همراه همه کامپوننت های مورد نظر باشد تا اجرا شوند. در وینوز 2000 به بعد فایل dll اصلی ماشین مجازی وی بی به طور پیش فرض در سیتم موجود می باشد. بنابراین باید سایر فایل های dll و ocx راکه در برنامه از آن استفاده کرده ایم در کنار فایل exe اصلی برنامه بگذاریم تا فایل exe اجرا شود. اما در این قسمت ما قصد داریم کل dll ها و ocx های مورد نیاز را درون فایل exe اصلی ریسورس کرده و هنگام بارگذاری برنامه به طور اتومات آن را روی سیستم کاربر نصب کنیم. تا برنامه به درستی اجرا شود. اما برای این کار باید در پروژه وی بی در قسمت project Properties بخش startup object را به sub main تغییر داده سپس یک ماژول به پروژه اضافه کرده و کد زیر را در آن بنویسید.
کد:
Sub main()



End sub()

حال به منوی add-ins سپس Add-ins manager رفته و VB6 Resource Editor را به محیط وی بی اضافه کنید. حال به Tools رفته و resource Editor را اجرا کنید. روی گزینه یک مانده به آخر Add Custom Resource کلیک کرده و فایل dll یا ocx مورد استفاده در برنامه را وارد کنید. ما در اینجا چون در فرم اول پروژه مان از یک common dialog استفاده کرده بودیم. بنابراین فایل comdlg32.ocx را add کردیم. حالا روی resource اضافه شده با نام 101 دو بار کلیک کرده و "Custom" را به یک نام دلخواه مثلا OCX تغییر دهید. و resource را save کنید.

حالا بین 2 خط sub main() end sub کد های زیر رابنویسید.
کد:
Sub main()
        On Error Resume Next
        Dim strPath As String
        strPath = Environ("systemroot")
        strPath = strPath & "\comdlg32.ocx"
        Dim B() As Byte
        B() = LoadResData(101, "OCX")
        Open strPath For Binary As #1
        Put #1, , B()
        Close
        DoEvents
        Form1.Show
End Sub


حال برنامه را اجرا کنید. در اینصورت برنامه قبل از بارگذاری فرمی که در آن از common dialog استفاده شده است ocx آن را در سیستم کپی نموده سپس فرم را ظاهر می کند.
مرسيييييييييييييييييييييييييي
خيلي كمكم كردي
 
پاسخ
#3
دوستان دقت کنین فرم لود کنین ارور میگیرین. حتما" باید تابع Main تو یه ماژول باشه!
باید حرف زورو نشنوم کر شم فقط -- تو نه رفیق ریگی نیست به کفشم نترس

 نه ، نه من تروریست نیستم -- من رو کاغذ می بازم ولی تئوری نیستم

باید دردای دلمو و تو دلم چال کنم -- تا چشمای من یه روزی  یهویی خیس  شن
 
پاسخ
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  فیلتر کردن دیتا گرید aghamali 4 3,540 11-15-2014، 10:50 AM
آخرین ارسال: aghamali
  جدا کردن حروف عکس aleas 1 2,518 05-29-2014، 11:06 AM
آخرین ارسال: saeedh
  سورس کد زوم کردن بر روی عکس ویژوال بیسیک 6 Amin_Mansouri 1 5,877 04-26-2014، 11:11 PM
آخرین ارسال: سلام
  پر کردن فیلد های یک سایت sajad-kh 6 5,900 01-28-2014، 08:13 PM
آخرین ارسال: sajad-kh
  باز کردن وبسایت در محیط vb MAHDITX 1 2,950 05-29-2013، 07:00 PM
آخرین ارسال: Amin_Mansouri
  کمک در کار کردن با DB Thewolf 10 9,668 03-23-2013، 12:18 AM
آخرین ارسال: mahdi bashibdar
  غیر فعال کردن کلیک راست تکست باکس (ویژوال بیسیک 6) Amin_Mansouri 0 4,050 11-06-2012، 02:44 PM
آخرین ارسال: Amin_Mansouri
  شیشه ای کردن فورم semolina 1 2,772 11-04-2012، 10:05 PM
آخرین ارسال: Amin_Mansouri
  سورس کد چک کردن وضعیت ایدی یاهو (ویژوال بیسیک 6) Amin_Mansouri 0 4,089 09-29-2012، 12:44 AM
آخرین ارسال: Amin_Mansouri
Lightbulb عوض کردن صفحه دسکتاب alakimalaki 0 2,263 08-14-2012، 02:39 PM
آخرین ارسال: alakimalaki

پرش به انجمن:


Browsing: 1 مهمان