PDA

View Full Version : کپی برنامه به جای نصب آن ؟



مهدی ذوقی
چهارشنبه 23 فروردین 1385, 12:09 عصر
با سلام

می دونید که هر برنامه ویژوال بیسیک از OCX و DLL های بخصوصی بسته به سلیقه و منظور
برنامه نویس استفاده می کنه و برای اجرای اون بر روی یک سیستم احتیاج به کپی آنها بر روی پوشه سیستم ویندوز هست
حالا سوال من اینه آیا راهی هست که برنامه با کپی این OCX ها و DLL ها در مسیر اجرا
بر روی هر کامپیوتر دیگری اجرا بشود و احتیاج به ساخت رویه نصب نداشته باشه
ممنون میشم اگه سریع جواب بدین:متفکر:

mohsengrisly
چهارشنبه 23 فروردین 1385, 13:54 عصر
با سلام
در مسیر اجرا بر روی هر کامپیوتر دیگری اجرا بشود و احتیاج به ساخت رویه نصب نداشته باشه
:

فکر کنم بشه .ببین این خوبه
اول اجرای خود برنامه ات مسیر پوشه ویندوز رو پیدا کن فایلهای مورد نیاز را چک کن .اگر موجود نبود از کاربر ادرس مبدا دریافت فایل رو بگیره(مثلا سی دی یا درایو فلاپی )و توی مقصد مورد نظر کپی کنه و بعدش هم اجرا بقیه برنامه .اینطوری هر بار فایلها چک می شوند و اگر فایلی هم اشتباه پاک شود سریعا جایگزین می گردد

Payman62
چهارشنبه 23 فروردین 1385, 17:21 عصر
خوب اگه فایل ها موجود نباشن که دیگه برنامه اجرا نمیشه که چک کنه. اگرم اجرا شه یعنی موجود بودن که اجرا شده.

mohsengrisly
چهارشنبه 23 فروردین 1385, 21:59 عصر
شما متوجه من نیستی انگار عزیز
قبل از اجرای برنامه چک می شه اخه
من برای یکی از برنامه های خودم این کارو کردم
اگر به دلیل نبودن فایل مورد نظرم برنامه با مشکلی مواجه بشه برنامه با استفاده از کنترل خطا
فایل رو چک می کنه و بعد از نصب مجدد فایل دوباره از مرحله اول رو اجرا می کنه
برای ما که شده قبلا .حالا شما ....؟

Payman62
چهارشنبه 23 فروردین 1385, 22:11 عصر
قبل از اجرای برنامه یعنی چی؟ دیگه از Form load قبل ترم داریم؟ اگه یه Ocx کم باشه Form load هم اجرا نمیشه.
مگر اینکه دو تا فایل بنویسی. دومی چک کننده خطا باشه. چک کنه اگه خطا نبود فایل اولو اجرا کنه.

mohsengrisly
پنج شنبه 24 فروردین 1385, 04:59 صبح
بازم سلام خدمت شما
عزیز دل اول که قبل از فرم اود هم داریم بله Activate
دوم دو تا فایل یا برنامه هم نمی خواد بنویسی
سوم هم برای این کار فقط کافیه یه Splash screen به اول برنامه اضافه کنی و چک کردن فایلها رو توی اون انجام بدی .وقتی وجود فایلها تایید شد اون splash بسته بشه وفرم اصلی باز بشه
اگر در برنامه مثلا یک ocx وجود نداشته باشه تا زمانی که اون فرم حاوی ocx به حافظه فرا خوانی نشه شما با خطایی مواجه نخواهید شد.
چهارم هم .اگر باز مشکلی بود ما در خدمتیم

ali_kolahdoozan
پنج شنبه 24 فروردین 1385, 07:12 صبح
ای بابا visual foxpro و vb 6 با چند تا dll کار می کنن . اونها رو موقع نصب با install shild بریز توی system 32 همین .

mohsengrisly
پنج شنبه 24 فروردین 1385, 08:01 صبح
ای بابا visual foxpro و vb 6 با چند تا dll کار می کنن . اونها رو موقع نصب با install shild بریز توی system 32 همین .

بابا کجایی شما ایشون نمی خواد رویه نصب داشته باشه .
بعدش هم شما از کجا می دونی برنامه با کدوم dll و یا ocx کار می کنه این فقط به برنامه نویس بستگی داره
فکر کنم بد متوجه شدین دوست عزیز.

ali_kolahdoozan
پنج شنبه 24 فروردین 1385, 08:09 صبح
فکر کنم یعنی visual fox که اینطوریه که اگه dll ها کنار exe باشند هم کار می کنه . و در ضمن توی vb هم چند تاست میشه از بچه های همینجا پرسید کدامهاست

Payman62
پنج شنبه 24 فروردین 1385, 10:22 صبح
بازم سلام خدمت شما
عزیز دل اول که قبل از فرم اود هم داریم بله Activate
دوم دو تا فایل یا برنامه هم نمی خواد بنویسی
سوم هم برای این کار فقط کافیه یه Splash screen به اول برنامه اضافه کنی و چک کردن فایلها رو توی اون انجام بدی .وقتی وجود فایلها تایید شد اون splash بسته بشه وفرم اصلی باز بشه
اگر در برنامه مثلا یک ocx وجود نداشته باشه تا زمانی که اون فرم حاوی ocx به حافظه فرا خوانی نشه شما با خطایی مواجه نخواهید شد.
چهارم هم .اگر باز مشکلی بود ما در خدمتیم
میتونی در مورد این مطالب که گفتی مثالی بزنی. منظورم اینه که یه کد مثال بذار.

farzadvb
پنج شنبه 24 فروردین 1385, 17:43 عصر
شما میتونید که دو تا فایل داشته باشید یکی برای اجرای برنامه و یکی هم برای اینکه فایل ها رو کپی کنید در این برنامه اولی هیچ ocxو غیرو... به کار نبرید و فقط مختص نصب عمیلات باشه و به عنوان setupباشه فایلها رو از مسیری بخونه و کپی کنه خیلی راحت بعد هم میتونید توسط تابع Shellفایل اجرایی برنامه را صدا بزنید به این ترتیب اول فایل ها در صورت عدم وجود بدون مشکل کپی شده بعد هم برنامه هم شما با همان تابع shellبه راحتی قابل اجرا هست.

به همین راحتی...
WWW.FarzadVB.blogfa.com

Payman62
پنج شنبه 24 فروردین 1385, 18:00 عصر
شما میتونید که دو تا فایل داشته باشید یکی برای اجرای برنامه و یکی هم برای اینکه فایل ها رو کپی کنید در این برنامه اولی هیچ ocxو غیرو... به کار نبرید و فقط مختص نصب عمیلات باشه و به عنوان setupباشه فایلها رو از مسیری بخونه و کپی کنه خیلی راحت بعد هم میتونید توسط تابع Shellفایل اجرایی برنامه را صدا بزنید به این ترتیب اول فایل ها در صورت عدم وجود بدون مشکل کپی شده بعد هم برنامه هم شما با همان تابع shellبه راحتی قابل اجرا هست.
WWW.FarzadVB.blogfa.com
خوب اینو که من گفتم ولی آقای mohsengrisly پیشنهاد بهتری دادن.
mohsengrisly یه مثال در موردی که گفتی بزن.

mohsengrisly
پنج شنبه 24 فروردین 1385, 18:35 عصر
چشم
توی پست قبلی فرمودین
اما یکمی هم صبر کن
برات یه نمونه ساده می نویسم امشب .

mohsengrisly
پنج شنبه 24 فروردین 1385, 22:44 عصر
پوشه رو از حالت فشرده خارج کن و فایل exe توش رو اجرا کن
می بینی که بدون اینکه تو mohsen.ocx رو روی سیستم نصب کرده باشی برنامه خودش اونو نصب و برای خودش فرا خوانی کرده
حالا دوباره mohsen.ocx رو از پوشه سیس 32 پاک کن و دوباره برنامه رو اجرا کن بازم می بینی که برنامه خودش مشکل نبودن فایل مورد نیاز را حل می کنه .
بعد هم یه نگاهی به سورسش بنداز .
البته وقتی سورس رو باز می کنی ممکنه مجبور بشی ocx رو خودت دوباره اضافه کنی
اما توی فایل اجرایی حله نیاز به کار اضافی نداره .

Payman62
جمعه 25 فروردین 1385, 01:24 صبح
اینم که همون form load بود. ولی form load یه فرم دیگه . ولی تعجب میکنم . تا اونجا که یادمه ocx نباشه اصلا نباید فرم باز شه. حتی یه فرم دیگه که از ocx استفاده نکرده باشه.

mohsengrisly
جمعه 25 فروردین 1385, 06:49 صبح
اینم که همون form load بود. ولی form load یه فرم دیگه . ولی تعجب میکنم . تا اونجا که یادمه ocx نباشه اصلا نباید فرم باز شه. حتی یه فرم دیگه که از ocx استفاده نکرده باشه.

من دیگه نمی دونم چطوری خدمت شما عرض کنم
فکر کنم شما خودتون هم نمی دونی دقیقا چیکار می خوای انجام بدی
شما می خواستی برنامه فایلهای مورد نیاز خودشو بدون نصب کپی کنه و با خطا مواجه نشه
و نمی خواستی از دو تا فایل و برنامه استفاده کنی
توی پست های قبل هم توضیح دادم که یه فرم splash قرار می دی شما اونجا متوجه نشدی که دو تا فرم توی برنامه هست .
در مورد فرم لود هم اگر خیلی ناراحتی تمامی دستورات رو توی فرم اکتیو بذار
یه چیزی هم فراموش نشه ها شما از من مثال برای درک بهتر خواستین دوست عزیز
قرار نبود که من کل برنامه رو برای شما بنویسم .
البته اگر این دستور رو هم بفرمایید ما فقط اطاعت می کنیما (جسارت نشه یهو)
با این حال امیدوارم مفید واقع شده باشه و همیشه موفق باشید
کمک دیگری بود در خدمتم

Payman62
جمعه 25 فروردین 1385, 18:57 عصر
من دیگه نمی دونم چطوری خدمت شما عرض کنم
فکر کنم شما خودتون هم نمی دونی دقیقا چیکار می خوای انجام بدی
شما می خواستی برنامه فایلهای مورد نیاز خودشو بدون نصب کپی کنه و با خطا مواجه نشه
و نمی خواستی از دو تا فایل و برنامه استفاده کنی
توی پست های قبل هم توضیح دادم که یه فرم splash قرار می دی شما اونجا متوجه نشدی که دو تا فرم توی برنامه هست .
در مورد فرم لود هم اگر خیلی ناراحتی تمامی دستورات رو توی فرم اکتیو بذار
یه چیزی هم فراموش نشه ها شما از من مثال برای درک بهتر خواستین دوست عزیز
قرار نبود که من کل برنامه رو برای شما بنویسم .
البته اگر این دستور رو هم بفرمایید ما فقط اطاعت می کنیما (جسارت نشه یهو)
با این حال امیدوارم مفید واقع شده باشه و همیشه موفق باشید
کمک دیگری بود در خدمتم
چی داری واسه خودت همین جور میگی. کی از شما برنامه خواست. اصلا یه نگاهی بکن کی این تاپیکو زده. این سوال اصلا مشکل من نیست. شما فرمودی بلاکی هست قبل از Form Load اجرا شه. همچین گفتی اکتیویت که من فکر کردم حتما یه متدیه که من اصلا آشنایی باهاش ندارم. گفتم خوب مثال بزن یاد بگیریم. ولی شما اومدی و همون Form Load رو تو مثالت گذاشتی.
به نظر میرسه منظور شما Form_Activate بوده. باید خدمتتون عرض کنم که Form_Activate بعد Form Load اجرا میشه نه قبلش. پس همون جور که من گفتم قبل تر از Form Load نداریم.

mohsengrisly
جمعه 25 فروردین 1385, 19:48 عصر
!!!!!!!!!!!!!!!!!!!!!
ای بابا اینم شد اخر جواب ما
دسستتون درد نکنه .ببخشید من عذر خواهی می کنم . شما باید ببخشید دیگه !

Payman62
جمعه 25 فروردین 1385, 22:00 عصر
!!!!!!!!!!!!!!!!!!!!!
ای بابا اینم شد اخر جواب ما
دسستتون درد نکنه .ببخشید من عذر خواهی می کنم . شما باید ببخشید دیگه !


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

یه چیزی هم فراموش نشه ها شما از من مثال برای درک بهتر خواستین دوست عزیز
قرار نبود که من کل برنامه رو برای شما بنویسم .
من کی گفتم واسم برنامه بنویس.
به هر حال منم از شما معذرت میخوام. نمیخواستم ناراحتتون کنم. منظوریم نداشتم.

mohsengrisly
شنبه 26 فروردین 1385, 13:18 عصر
خب دیگه شما با اون دوستی که نمونه برنامه خواسته بود اشتب شدین
میبینم هنوزم خط رو خط میشه .
با این حال امیدوارم مشکل دوستمون با این راه حل خوب برطرف شده باشه

مهدی ذوقی
یک شنبه 10 اردیبهشت 1385, 10:30 صبح
با سلام
دوستان عزیز بعد از این همه دعوا مرافعه آخر جواب به درد بخوری به بنده نداید

mohsengrisly
یک شنبه 10 اردیبهشت 1385, 16:48 عصر
ببینم مگه مشکل حل نشد
توی مثالی که گذاشتم چه مشکلی بود که حل نشده هنوز !!