PDA

View Full Version : Merg کردن DLL های مورد نیاز به فایل اجرایی



vb_nima
دوشنبه 01 خرداد 1385, 17:21 عصر
سلام به همه ی دوستان

آیا می توان در وی بی فایلهای dll را که فایل اجرایی برای اجرا شدن در سیستمهای دیگر به آن نیاز دارد به آن ضمیمه کرد تا دیگر احتیاجی به نصب package نباشد. می خواهم مثل فایلهای اتوران بر روی هر سیستمی بدون نصب شدن اجرا شود .سایز فایل ایجاد شده هم اصلا مهم نیست.

لطف می کنید اگه جواب بدهید؟

محسن بابائی
دوشنبه 01 خرداد 1385, 17:23 عصر
سلام
dll باید در system32 به هر نحوی کپی شود . حالا یا با pakege یا ...

perfeshnal
سه شنبه 02 خرداد 1385, 03:55 صبح
به نظر من هم باید کپی شه راه دیگه ای فکر نکنم

Payman62
سه شنبه 02 خرداد 1385, 09:56 صبح
از پکرها استفاده کن.

Typisch_VB6
پنج شنبه 04 خرداد 1385, 18:02 عصر
mitooni ye batch file besazi ke aval dll hato register kone baad exato baz kone

albate rahe khobi nist

fekr konam age dll ha toye app.path exe bashe kar kone ... :-/ :-" :|

vb_nima
جمعه 05 خرداد 1385, 10:46 صبح
آقای Typisch_VB6 من خودم هم به این موضوع پی بردم که اگر dll ها را در همان پوشه ی برنامه کپی کنم مشکل حل می شود ولی مشکل این است که فقط بعضی از dll با این روش جواب نمی دهند.
از راهماییتان متشکرم.

sinpin
جمعه 05 خرداد 1385, 11:15 صبح
سلام به همه ی دوستان

آیا می توان در وی بی فایلهای dll را که فایل اجرایی برای اجرا شدن در سیستمهای دیگر به آن نیاز دارد به آن ضمیمه کرد تا دیگر احتیاجی به نصب package نباشد. می خواهم مثل فایلهای اتوران بر روی هر سیستمی بدون نصب شدن اجرا شود .سایز فایل ایجاد شده هم اصلا مهم نیست.

لطف می کنید اگه جواب بدهید؟

برنامه ای هست که اینکارو انجام میده و برنامه شما رو بی نیاز از حتی msvbvm60.dll میکنه ! توی پست های قدیمیه آقای بابک زواری یه نگاه بندازید پیدا میکنید.

Mehdi0016
جمعه 05 خرداد 1385, 23:49 عصر
باید از برنامه هایی مثل exe bundle استفاده کنید
این برنامه ها فایل های dll رو توی فایل اصلی هضم میکنند

mkbo_webmaster
شنبه 06 خرداد 1385, 08:55 صبح
میتونید یک برنامه خاص برای این منظور طراحی کنید به این صورت که فایل dll مورد نظر رو بگیره و بصورت binary اونو open کنه، و کدهای باینری اون رو بصورت خط به خط در داخل قسمت ویرایشگر وارد کنید. و بعد در قسمت ویرایشگر هم یک برنامه ای بنویسید که اگر در قسمت initialize مثلا یک فرم ، خطایی با استفاده از err مربوط به عدم نصب این فایل dll ایجاد شد. دوباره بصورت باینری خطوطی رو که از قبل در قسمت ویرایشگر نوشتید رو به هم بچسبونه و تبدیل به یک فایل
dll بکنه و اونو در system32 بریزه. (فقط باید مواظب باشید که خطایی در انتقال اطلاعات نکنید چون ممکنه براتون گرون تموم بشه)

این راهی که گفتم برای موقعی خوبه که میخواید طرف رو گول بزنید که این فایل رو اجرا کنه و در عین حال هیچ برنامه setup ایی هم نداشته باشه که طرف از نصبش منصرف بشه.

با این راه در عرض سیم ثانیه هم dll نصب میشه و در همون لحظه هم برنامه قابل اجرا میشه.
البته با دستور shell هم reg... باید dll رو در نهایت رجیستر کنید. حالا دیگه restart بشه یا نشه مهم نیست. بعدش برنامتون قابل اجرا هستش.







/

Hossein Bazyan
شنبه 06 خرداد 1385, 10:12 صبح
میتونید یک برنامه خاص برای این منظور طراحی کنید به این صورت که فایل dll مورد نظر رو بگیره و بصورت binary اونو open کنه، و کدهای باینری اون رو بصورت خط به خط در داخل قسمت ویرایشگر وارد کنید. و بعد در قسمت ویرایشگر هم یک برنامه ای بنویسید که اگر در قسمت initialize مثلا یک فرم ، خطایی با استفاده از err مربوط به عدم نصب این فایل dll ایجاد شد. دوباره بصورت باینری خطوطی رو که از قبل در قسمت ویرایشگر نوشتید رو به هم بچسبونه و تبدیل به یک فایل
dll بکنه و اونو در system32 بریزه. (فقط باید مواظب باشید که خطایی در انتقال اطلاعات نکنید چون ممکنه براتون گرون تموم بشه)
/
دوست عزیز میدانی با این روش هنگام اجرای برنامه چقدر سرعت پائین میاد ؟ یا اگه بنا به دلایلی کاربر حق نوشتن در روی مسیر ذکره شده برای بهم چسپاندن فایل رو نداشته باشه چی میشه ؟ اصلا روش خوبی نیست ( البته به نظر من )

mkbo_webmaster
یک شنبه 07 خرداد 1385, 12:31 عصر
فایل میتونه در مسیر دیگه ای چسبانده بشه و در پوشه system حاصل اون کپی بشه.
و خوب اگه اینطور باشه و کاربر دسترسیش به پوشه های سیستمی بسته شده باشه. پس نصب عادی هم نمیتونه بکنه.
خوب در اون لحظه میشه با on error قضیه رو همونجا مخفیانه خاتمه داد که کاربر نفهمه. و همینطور بی خیال اجرا بشیم.
البته اینم یه نظر بود و من زیاد اونو تجربه نکردم ولی مطمئنم که کار میکنه.

راستی برنامه های بالا رو که دوستان گفته بودند هم امتحان کردم. اصلا درست کار نمیکنن و اینکه full version نیستند. و مثلا همین UPX که با خط دستوری کار میکنه. فقط اونائی رو ساپورت میکنه که خودش فشرده کرده باشه. و help اونم خوندم نتیجه ای نگرفتم. البته به نظر من به این صورت بود شاید دوستان تونسته باشن استفاده کنن.
متشکر






/

MM_Mofidi
چهارشنبه 10 خرداد 1385, 13:36 عصر
خوبه ولی لازم نیست لقمه را دور سرتون بپیچانید.
به راحتی با اسکریپت نویسی در همان Autorun فایل ها قابل رجیستر شدن و حتی نصب(کپی+رجیستر) میباشند.نیازی به پکیج سازی هم نیست.

amirsadeghi
پنج شنبه 26 مرداد 1385, 15:38 عصر
سلام
ببخشید ولی این که فایلها رو باینری باز کنه دوباره بنویسه زیاد جالب نیست
شما می تونید از توابع api مخصوص کپی استفاده کنین

Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long



lpExistingFileName

نام فایل اصلی برای کپی کردن
lpNewFileName

نام فایلی که می خواهیم کپی با آن انجام شود
bFailIfExists
اگر صفر باشد در صورت وجود آنرا overwrite می کند و اگر غیر صفر باشد در صورت وجود خطا می دهد

savalanboy
سه شنبه 31 مرداد 1385, 19:01 عصر
با سلام خدمت دوستان
شرکت bitarts.com محصولاتی رو در این زمینه ارائه نموده که یکی crunch و دیگری fusion می باشد که چون نسخه دمو ندارند من دانلود کردم ولی نتونستم تست کنم کار این برنامه جمع کردن همه فایلهای لازم یک برنامه در یک فایل Exe هست و همه برنامه از اونجا اجرا می شه. دیگری هم فشرده سازی یک فایل حجیم Exe به کمترین حالت ممکن است ببینید اگه براتون کاربرد داشت برامون بنویسید البته اگه نسخه اصلی رو پیدا کردین