PDA

View Full Version : سوال: چسباندن يك فايل خارجي به فايل exe



علی جباری
یک شنبه 22 دی 1387, 16:23 عصر
آيا ميشه يك فايل خارجي مثل فايل فلش (Swf.) رو داخل فايل كامپايل شده توسط VB6 گذاشت؟ يا به عبارتي ديگر اين فايل خارجي رو ميشه به فايل اجرايي چسباند؟

xxxxx_xxxxx
یک شنبه 22 دی 1387, 17:04 عصر
از اين (http://barnamenevis.org/forum/showpost.php?p=589841&postcount=22) روش مي تونيد استفاده كنيد.

البته ميشه از Resource هم استفاده كرد.

بايد هدف مشخص شه.

علی جباری
یک شنبه 22 دی 1387, 17:27 عصر
با تشكر من متن شما رو خوندم ولي خيلي متوجه نشدم. فقط اين توضيح رو بدم كه كاري كه ميخوام بكنم. خيلي ساده است:
من يك برنامه نوشتم كه منوي اصلي اون از يك فايل فلش تشكيل شده كه امكان ورود به قسمتهاي ديگر برنامه رو امكان پذير ميكنه و:
1- كاربر نبايد بتونه اين فايل رو پاك كنه، چون ديگر امكان كار كردن با برنامه وجود ندارد.
2- اگر يك زمان نياز شد تا در برنامه تغييري ايجاد شود و يك قسمت به منوي برنامه اضافه يا حذف گردد، فقط در فايل exe اين تغييرات اعمال گرديده و يك فايل به كاربر بدهيم.

xxxxx_xxxxx
یک شنبه 22 دی 1387, 17:53 عصر
پس شما بايد فايل فلش رو به صورت Resource به برنامه اضافه كنيد.

آموزش كار با ResFile (http://barnamenevis.org/forum/showpost.php?p=635505&postcount=3)

سوال سوم و جواب آن در پست آخر (http://barnamenevis.org/forum/showthread.php?t=119744&highlight=resource)

فلش در ویژوال بیسیک 6 (http://barnamenevis.org/forum/showthread.php?t=115805&highlight=resource)

علی جباری
دوشنبه 23 دی 1387, 20:50 عصر
با تشكر از توضيحات كامل شما كه خيلي كمك كرد ولي
2- اگر يك زمان نياز شد تا در برنامه تغييري ايجاد شود و يك قسمت به منوي برنامه اضافه يا حذف گردد، فقط در فايل exe اين تغييرات اعمال گرديده و يك فايل به كاربر بدهيم. هنوز اين مشكل باقي است كه اگه بشه اين فايل رو داخل خود exe ذخيره كرد مشكل بطور كامل حل ميشه.

xxxxx_xxxxx
دوشنبه 23 دی 1387, 22:02 عصر
دوست عزيز وقتي شما فايل فلش رو ضميمه كرديد، تو رويداد load برنامه خود بايد فايل فلش رو Extract كنيد. به اين صورت:


Open App.Path & "\Menu.swf" For Output As #1
Print #1, StrConv(LoadResData(101, "CUSTOM"), vbUnicode)
Close #1
بسيارخوب. حالا بعد از دستور Close بايد شي فلش روي فرم رو آدرس دهي كنيد، به اين صورت:


Flash.Movie = App.Path & "\Menu.swf"
خب.
حالا فرض مي كنيم شما تغييراتي در فايل فلش ايجاد كرديد و مي خواين جايگزين قبلي بشه.
شما تنها كاري كه مي بايست انجام دهيد اين است كه فايل Res خود را تغيير دهيد.همين.
طريقه توليد Res فايل هم در لينك هايي كه تو پست قبلي گذاشتم هست.

موفق باشيد/

علی جباری
دوشنبه 23 دی 1387, 22:16 عصر
حالا فرض مي كنيم شما تغييراتي در فايل فلش ايجاد كرديد و مي خواين جايگزين قبلي بشه.
شما تنها كاري كه مي بايست انجام دهيد اين است كه فايل Res خود را تغيير دهيد.همين.

در قسمت لود كردن فايل مشكلي نيست فقط هنوز يك مشكل باقي است، يعني اينكه كاربر ممكن است فايل Res را پاك كند.

xxxxx_xxxxx
دوشنبه 23 دی 1387, 22:32 عصر
شما فايل Res رو به كاربر نمي دهيد.
فايل Res ضميمه فايل exe شده و فايلي كه در هنگام لود استخراج ميشه فايل swf هست كه به صورت Res به برنامه ضميمه شده.
يعني كاربر فايل exe رو داره و بعد از اولين اجرا فايل swf هم بهش اضافه ميشه و اگر هم فايل swf رو پاك كنه در اجراي بعدي مجددآ اين فايل ساخته ميشه.
اگر هم در حين اجراي برنامه فايل swf رو پاك كنه باز هم اتفاقي نمي افته چون فايل به حافظه برده شده.

موفق باشيد/

sinashahab
سه شنبه 24 دی 1387, 09:50 صبح
شما می تونید اون فایل رو بنام App Path.Dll بگزارید و بعد هم تو لود بنویسی :
FileSystem.FileCopy "App Path.Dll", windir & "/temp/1.swf"
بعد هم از تمپ استفاده کنی .

علی جباری
سه شنبه 24 دی 1387, 13:19 عصر
آقاي XXXXX_XXXXX با تشكر دقيقا همون چيزي بود كه مي‌خواستم.