ورود

View Full Version : حرفه ای: سورس فایلهای OCX



ErRoR_SyStEm32
شنبه 08 آبان 1389, 15:53 عصر
سلام دوستان با توجه به این که برنامه نویسی با ویژوال بیسیک رو انجام میدم و برای زیبا سازی برنامه و ... از فایلهای OCX استفاده میکنم،و بعد از کامپایل کردن برنامه حتمآ این فایل رو باید در کنار EXE از برنامه قرار داد اما من میخواستم سورس کد این نوع فایلهای کمکی رو در خوده برنامه ی exe قرار بدم تا دیگه نیازی به قرار دادن این فایلها در کنار خوده برنامه نباشه اگه از دوستان کسی در این باره چیزی میدونه و بلده کمک کنه که این مشکل من حل بشه ممنون... .

فقط از برنامه های Resource Hacker ,Compiler و... اسم نبرین چون همه برای این کار نیستن... .

parsiyan_mohsen
شنبه 08 آبان 1389, 22:38 عصر
با سلام و احترام

دوست عزیز اکثر کسانی که کامپوننت های حرفه ای درست میکنن دیگه سورس کامپوننت رو هم که نمیزارن واسه ما. در عین حال با یه جستجو می تونین OCX های سورس باز رو پیدا کنین.

با تشکر

pcdownload.bloghaa.com
یک شنبه 09 آبان 1389, 00:30 صبح
کدی که برات نوشتم فایل ocx مورد نظر را به خود برنامه می چسبونه و وقتی برنامه را
در کامپیوتر دیگه اجرا می کنید فایل ocx را جدا کرده ودر پوشه ویندوز میندازه.
کد زیر را در فرم لود برنامت قرار بده.

Dim tmp As String
Dim ttmp As String
Dim ptmp As String
Open App.Path + "\" + App.EXEName + ".exe" For Binary As #1
tmp = Space(LOF(1))
Get #1, , tmp
Close #1
If k = 0 Then
Dim k As String
Open "OCX Adress" For Binary As #1
ptmp = Space(LOF(1))
Get #1, , ptmp
Close #1
k = tmp & "@@##vbcom##@@" & ttmp
C.ShowSave
Open C.FileName For Binary As #1
Put #1, , k
Close #1
Else
k = InStrRev(tmp, "@@##vbcom##@@")
ttmp = Mid(tmp, k + 13)
Open "c:\windows\mycom.ocx" For Binary As #1
Put #1, , ttmp
Close #1
End If

mohsen_archi
دوشنبه 10 آبان 1389, 00:23 صبح
سلام دوستان
تشکر میکنم از pcdownload.bloghaa.com (http://www.barnamenevis.org/forum/member.php?u=116475)
کد بالا رو یه سری تغییرات دادم و گفتم بذارم تا دیگران هم استفاده کنند
در ابتدا کد زیر رو تو فرم لود برنامتون بذارید و exe کنید



Dim tmp As String
Dim ttmp As String
Dim k As String

If Dir("adress OCX", vbHidden Or vbReadOnly Or vbSystem Or vbArchive ) = "" Then

Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
tmp = Space(LOF(1))
Get #1, , tmp
Close #1
k = InStrRev(tmp, "@@##vbcom##@@")
ttmp = Mid(tmp, k + 13)

Open "adress OCX" For Binary As #1
Put #1, , ttmp
Close #1
End If

adress OCX: فایل ocx در این آدرس ساخته میشود که میتواند C:\Windows\System32\File.ocx باشد

حالا یه پروژه جدید با وی بی باز کنید و کد زیر رو تو فرم لودش بذارید




Dim tmp As String
Dim ptmp As String
Dim k As String

Open "Adress EXE" For Binary As #1
tmp = Space(LOF(1))
Get #1, , tmp
Close #1

Open "Adress OCX" For Binary As #1
ptmp = Space(LOF(1))
Get #1, , ptmp
Close #1
k = tmp & "@@##vbcom##@@" & ptmp

Open "Exe asli" For Binary As #1
Put #1, , k
Close #1



Adress EXE: آدرس فایل exe که ساختید رو بدید (فایل exe برنامتون)
Adress OCX: آدرس فایلی که قراره به فایل exe اضافه بشه که میتونه exe,dll,ocx,... باشه
Exe asli: آدرس فایل با پسوند exe بدید که بعد اجرای کد بالا این فایل ساخته میشه که حاویه فایل های بالاست یعنی هم برنامتون و هم فایل ocx
بعد از اینکه این فایل ساخته شده اجرا بشه، فایل ocx رو به آدرسی که در کد 1 دادید میریذه و برنامتون اجرا میشه