قرار دادن فایل در فایل اجرایی vb6

m_mx2009

Member
سلام به همه
میشه با ویژوال بیسیک 6 کاری کرد که مثل MMB بشه یه فایل رو Embedd کرد؟

مثلا میخوام یه فایل اجرایی و چند تا فایل دیگه رو داخل خود فایل اجرایی وی بی جاسازی کنم...و از داخال برنامم بتونم به اونا دسترسی داشته باشم

اگه امکانش هست در این مورد توضیح بفرمایین
مرسی:rose:
 

the_king

مدیرکل انجمن
سلام به همه
میشه با ویژوال بیسیک 6 کاری کرد که مثل MMB بشه یه فایل رو Embedd کرد؟

مثلا میخوام یه فایل اجرایی و چند تا فایل دیگه رو داخل خود فایل اجرایی وی بی جاسازی کنم...و از داخال برنامم بتونم به اونا دسترسی داشته باشم

اگه امکانش هست در این مورد توضیح بفرمایین
مرسی:rose:

در محیط ویژوال استدیو منوی Add-Ins گزینه Add-In Manager رو انتخاب کنید.
در لیست ابزار هایی که قابل اضافه شدنه، گزینه VB 6 Resource Editor رو انتخاب کنید.
تیک گزینه Loaded / Unloaded را بزنید تا فراخوانی بشه. در صورت تمایل تیک گزینه
Load on Startup را هم بزنید که دفعات بعدی که ویژوال استدیو رو اجرا می کنید این
ابزار بصورت خودکار فراخوانی بشه و نیازی به تکرار این مراحل نداشته باشید.

حالا وقتی پروژه تان را باز کردید در منوی Project گزینه Add New Resource File
را انتخاب کنید. بهتره مسیری رو برای این فایل RES انتخاب کنید که کنار بقیه
فایل های کد پروژه تان باشه، چون این فایل بخشی از کد پروژه تان است و بدون
وجودش کد تان ناقص خواهد بود.
هر پروژه ای حداکثر صرفا یک فایل RES خواهد داشت، تمامی محتویاتی
که قراره Embedd بشه داخل این فایل قرار خواهد گرفت.

فرضا من اسم Resource.RES را برای این فایل انتخاب کرده و Open می کنم،
از آنجایی که این فایل قبل از این وجود نداشته، یک پیغام Yes / No برای ایجاد کردن
این فایل خواهید دید. Yes را انتخاب کنید.

در منوی Tools گزینه Resource Editor را انتخاب کنید.
یکسری فرمت شناخته شده هست مثل نوشته، آیکون، نشانگر ماوس و تصویر (فرمت BMP)
که اضافه کردن شان دکمه مخصوص خودش را دارد. بقیه فرمت ها مثل فایل های exe را
تحت عنوان Custom Resource اضافه خواهید کرد که ویژوال استدیو اطلاعی از نوع فرمت شان
ندارد و فقط بصورت یک داده باینری ذخیره اش می کند.

در مورد شما، از دکمه Add Custom Resource استفاده کنید و مسیر هر فایلی که قرار است
به پروژه اضافه کنید بدهید. زمانی که فایل را اضافه کردید یک کد به آن خواهد داد، فرضا کد 101
اگر روی آن دوبار کلیک کنید یا راست کلیک کرده و گزینه Properties را انتخاب کنید می توانید
هم نوع اش و هم کد اش را تغییر دهید. الزامی نیست که حتما کد عدد باشد می تواند رشته باشد.
اینکه نوع اش CUSTOM باشد یا چیز دیگری برای ویژوال استدیو چندان مهم نیست، می توانید
یک رشته ای را مشخص کنید که برای خودتان موارد رو طبقه بندی موضوعی کنید.
یادتان نرود که بعد از اضافه کردن موارد، حتما از دکمه Save اش استفاده کنید تا تغییرات ذخیره شوند.

من با کد زیر محتویات فایلی که Embedded شده و کد اش 101 است را در آرایه bytes می خوانم :
کد:
    Dim bytes() As Byte
    bytes = LoadResData(101, "CUSTOM")

و در ادامه آنرا در یک فایل موقتی در پوشه Temp ویندوز می نویسم تا فرضا آنرا که در اصل محتویات
یک exe است اجرا کنم :
کد:
    Dim tempPath As String
    tempPath = Environ("TEMP") + "\test.exe"
    Open tempPath For Output As #1
    Close #1
    Open tempPath For Binary As #1
    Put #1, , bytes
    Close #1
    Shell tempPath, vbNormalFocus
 

جدیدترین ارسال ها

بالا