واضح آرشیو وب فارسی:سایت ریسک: آپدیت کردن برنامه از طریق اینترنت(vb 6) reza_akbari 16 تير 1388, 04:28سلام به همه دوستان و برنامه نویسان حرفه این انجمن. می خواستم ببینم چه جوری می تونم برنامه خودم رو از طریق اینترنت آپدیت کنم.به عنوان مثال برنامه من حدود 2 مگ هست و در فرم من یک کامند هست من میخواهم وقتی که روی دکمه کامند کلیک کردیم اگر نسخه جدید روی سرور بود پیغام بده که نسخه جدید روی سرور است آیا مایل به دانلود هستید یا نه اگر کاربر زد بله به طور مخفی فایل رو دانلود کنه و جایگزین فایل exe قبلی بکنه و اگر هم که برنامه رو دانلود کرد دیگه برای بار بعدی ننویسه نسخه جدید روی سرور هست. دوستان اگر کسی سورسی و یا برنامش رو داره ممنون میشم اینجا قرار بده(البته هر چند که من هرچی توی این انجمن درخوسات میکنم هیچ کس حتی جوابم رو هم نمیده.):-?:cry::sad: reza_akbari 17 تير 1388, 18:49چرا کسی جواب نمیده .مدیرهای انجمن به دادم برسید.:cry: reza_akbari 18 تير 1388, 11:10آقایون چاکر همتونیم.خودم یکی پیدا کردم.:) ولی ناقصه متاسفانه:-?این برنامه نسخه روی سرور رو تشخیص میده و اعلام میکنه که نسخه جدید روی سرور هست و دانلود هم میکنه اما 3 تا مشکل داره که اگر اونا رو رفع کنید ممنون میشم. 1-وقتی دانلود میکنیم وقتی دانلود تموم شد بازم اگر بخواهیم برای بار بعد دانلود کنیم میگه نسخه جدید روی سرور هست در صورتی که باید بگه نسخه جدید روی سرور نیست. 2-من میخوام وقتی فایل exe دانلود شد خودش به صورت اتوماتیک این نسخه رو حذف کنه و نسخه جدید رو که دانلود کردیم خودش جایگزین کنه توی مسیر جاری. 3-آیا میشه کاری کرد که این عملیات دانلود به صورت مخفی انجام بشه. ممنون میشم کسی این سه تغییر رو برام اعمال کنه که فکرنکنم هم زیاد سخت باشه اینم برنامه: the_king 23 تير 1388, 11:58کد های نمونه را دیدم، ساختارشان درست بود، اما چندان کاربردی و مناسب نبودند. به همین جهت شخصا یک برنامه نمونه با ساختار مناسب تر را ایجاد کردم. فرض کنیم که یک برنامه Project1 و Project2 داریم که به عنوان مثال نسخه های 1.0 و 2.0 برنامه هستند و می خواهیم برنامه Project1 بتواند خودش را به نسخه Project2 ارتقاء دهد. در یک آدرس اینترنتی یک فایل LastVersion.txt قرار می دهیم که محتوی متن 2.0 است، یعنی آخرین نسخه برنامه را نشان می دهد : LastVersion.txt () همچنین برنامه Project2.exe را هم در کنار همان فایل LastVersion.txt آپلود کرده ایم : Project2.exe () برنامه Project1 و Project2 هیچکدام در ابتدای کار از آخرین نسخه برنامه اطلاعی ندارند، آنها تنها آدرس فایل LastVersion.txt را در اینترنت می دانند، پس آنرا داونلود کرده و از آخرین نسخه برنامه آگاه می شوند. مثلا اگر LastVersion.txt محتوی 3.0 باشد، آنگاه برنامه به دنبال فایل Project3.exe گشته و آنرا داونلود می کند. خود برنامه زمانی که در حال اجرا است، نمی تواند خودش را آپدیت کند، چون فایل اجرایی ای که در حال اجرا شدن است، خاصیت Read Only موقتی دارد. پس یک Project3 هم با عنوان اجرایی Update.exe در کنار برنامه قرار می دهیم که وظیفه اش تعویض فایل اجرایی برنامه با نسخه جدید آن است. به این شیوه که ابتدا برنامه ما پس از داونلود کردن نسخه جدید در شاخه Temp ، برنامه Update.exe را اجرا کرده و خودش را می بندد. برنامه Update پس از اجرا شدن، 5 ثانیه صبر می کند تا در این فاصله برنامه بطور کامل خاتمه پیدا کرده باشد، سپس فایل داونلود شده را بجای فایل اجرایی برنامه قرار می دهد. Project1 و Project2 از نظر کد برنامه هیچگونه تفاوتی ندارند، فرقشان تنها در این است که Version اولی 1.0 و Version دومی 2.0 است، برای تغییر این مشخصات به Properties مربوط به Project مراجعه کنید. Project3 مربوط به فایل Update.exe است، خود این برنامه طوری طراحی شده که اگر به تنهایی اجرا شود کاری انجام نمی دهد، بلکه بایستی توسط برنامه اصلی فراخوانی شود. دقت کنید که Update.exe کاری به اینترنت ندارد و خودش هم از اینترنت داونلود نمی شود، بلکه بایستی همواره در کنار برنامه اصلی قرار داشته باشد. پروژه ها به همراه فایل اجرایی exe ضمیمه این پست می باشند. reza_akbari 07 مرداد 1388, 07:28ببخشید یک مشکلی برام پیش اومده. من project 2خودم رو آپلود کردم و تمامی کار های که واسه project2 بود انجام دادم اما وقتی که update رو میزنم شروع به اپدیت کردن میکنه و وقتی که تموم میشه صفحه commad prompt ظاهر میشه و دیگه همونجا هنگ میکنه .اما وقتی که آدرس پروژه 2 پست آقای the king رو میدم دوباره درست میشه.... ممنون میشم کمکم کنید. the_king 07 مرداد 1388, 12:41ببخشید یک مشکلی برام پیش اومده. من project 2خودم رو آپلود کردم و تمامی کار های که واسه project2 بود انجام دادم اما وقتی که update رو میزنم شروع به اپدیت کردن میکنه و وقتی که تموم میشه صفحه commad prompt ظاهر میشه و دیگه همونجا هنگ میکنه .اما وقتی که آدرس پروژه 2 پست آقای the king رو میدم دوباره درست میشه.... ممنون میشم کمکم کنید. شما با کدوم کد کار می کنید؟ پروژه ای که من نوشتم که اصلا کاری با Command Prompt نداره. :-? reza_akbari 07 مرداد 1388, 13:31من طبق کارهای که شما انجام دادید من هم همون کار ها رو کردم اما موقعی که آپدیت به آخر رسید این صفحه برام باز میشه و همون جا هنگ میکنه و وقتی هم می بندمش کلا اون فایل برنامه غیر اجرایی میشه... reza_akbari 09 مرداد 1388, 04:28اینم اون برنامه ای که مشکل پیدا کردم... خواهش میکنم هرکسی میتونه کمکم کنه دریغ نکنه. مرسی:rose: the_king 09 مرداد 1388, 10:00من طبق کارهای که شما انجام دادید من هم همون کار ها رو کردم اما موقعی که آپدیت به آخر رسید این صفحه برام باز میشه و همون جا هنگ میکنه و وقتی هم می بندمش کلا اون فایل برنامه غیر اجرایی میشه... نه، کار رو درست انجام ندادید، برنامه نمی تواند فایل exe جدید را پیدا کند و بجایش یک فایل HTML خطا را داونلود می کند که اجرا کردنش منجر به نمایش آن پنجره مشکی می شود : ابتدا شما در کد برنامه تان فایل LastVersion.txt رو از اکانت پرشین گیگ من می خوانید که نسخه 2.0 را معرفی می کند. تا اینجای کار درست است. اما در ادامه کدتان دنبال Project2.exe خواهد گشت که اصلا وجود ندارد : خب، طبیعی است، وقتی این فایل وجود نداشته باشد، یک صفحه HTML شامل پیغام خطا داونلود می شود که اجرایی نیست. در نتیجه وقتی قصد اجرا کردن آن فایل HTML را بجای یک فایل EXE دارید، همچنین صفحه کنسولی نشان داده می شود. توضیحات قبلی من را مجددا بخوانید، وقتی LastVersion.txt نسخه جدید یک برنامه را به عنوان مثال 4.0 معرفی می کند، شما بایستی چنین فایلی را آپلود کرده باشید : reza_akbari 09 مرداد 1388, 16:39مرسی مرسی ممنون
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 701]