۲۹-تير-۱۳۸۶, ۱۸:۵۹:۱۶
۲۳-آبان-۱۳۸۷, ۲۱:۳۷:۵۲
دوستان فکر کنم جای این سوال اینجا نباشه ما دیدم در رابطه باSvchost.exe هم صحبت کردین گفتم این سوال رو مطرح کنم که:
چطور میشه که ما برنامه ای رو دوبار پشت سرهم باز می کنم وقتی توTaskmgr نگاه میکنیم تو لیست پروسس این برنامه یا فایل اجرایی روی قبلی Over write میشه امااز فایل Svchost.exe 6تا رو تو لیست پروسس شاهدیم هیچ کدام هم Over Write نمیشن؟؟؟
ممنون اگر پاسخ دقیق بدین.
چطور میشه که ما برنامه ای رو دوبار پشت سرهم باز می کنم وقتی توTaskmgr نگاه میکنیم تو لیست پروسس این برنامه یا فایل اجرایی روی قبلی Over write میشه امااز فایل Svchost.exe 6تا رو تو لیست پروسس شاهدیم هیچ کدام هم Over Write نمیشن؟؟؟
ممنون اگر پاسخ دقیق بدین.
۲۳-آبان-۱۳۸۷, ۲۲:۲۵:۱۱
دوست عزيز
Over Writeديگه چيه!! اصلا همچين چيزي كه مي گيد وجود نداره و شما اگه برنامه اي رو دوبار اجرا كنيد مطمئنا دوتا پروسه
جداگونه در ويندوز خواهيد داشت.
اگر هم يه زماني برنامه اي رو دوبار اجرا كرديد ولي تنها يك پروسه از اون رو تو تسك منيجر ديديد، اين به اين معنا نيست
كه اون پروسه آر رايت شده!! بلكه برنامه در هنگام اجرا تشخيص مي ده كه قبلا پروسه اش اجرا شده و به همين
دليل پروسه دوم به سرعت بسته مي شه.
Over Writeديگه چيه!! اصلا همچين چيزي كه مي گيد وجود نداره و شما اگه برنامه اي رو دوبار اجرا كنيد مطمئنا دوتا پروسه
جداگونه در ويندوز خواهيد داشت.
اگر هم يه زماني برنامه اي رو دوبار اجرا كرديد ولي تنها يك پروسه از اون رو تو تسك منيجر ديديد، اين به اين معنا نيست
كه اون پروسه آر رايت شده!! بلكه برنامه در هنگام اجرا تشخيص مي ده كه قبلا پروسه اش اجرا شده و به همين
دليل پروسه دوم به سرعت بسته مي شه.
۲۳-آبان-۱۳۸۷, ۲۲:۳۸:۱۰
خوب همین که شما فرمودید چطور اینو تشخیص میده منظورم اینه که من هربرنامه ای رو امتحان کردم اینطوری میشه منظورم از Over write همین بود که میاد پروسه که میبینه اجرا شده بسته میشه اما اینا چرا بسته نمیشه؟
۲۳-آبان-۱۳۸۷, ۲۳:۴۸:۳۵
ببينيد تشخيص اين امر چيزي هست كه برنامه نويس داخل كد برنامه اش خواسته و قرار داده. مثلا شما ماشين حساب ويندوز
رو هر چندبار كه مي خواي اجرا كن، براي هركدومشم يه دونه پروسه تو تسك منيجر مي بيني ولي مثلا برنامه
yahoo رو فقط يه بار مي توني اجرا كني. اين به ميل برنامه نويسنده اون برنامه بستگي داره
رو هر چندبار كه مي خواي اجرا كن، براي هركدومشم يه دونه پروسه تو تسك منيجر مي بيني ولي مثلا برنامه
yahoo رو فقط يه بار مي توني اجرا كني. اين به ميل برنامه نويسنده اون برنامه بستگي داره
۲۴-آبان-۱۳۸۷, ۰۲:۱۶:۵۵
میشه با این کد از اجرای دوباره یک برنامه از یک مسیر جلو گیری کرد :
کد:
Private Sub Form_Load()
If App.PrevInstance Then End
End Sub
۲۴-آبان-۱۳۸۷, ۰۷:۲۱:۱۴
میشه قبل از End کردن پروسه جدید، کاری کنم که پروسه قبلی بالا بیاد؟
منورم از بالا اومدن اینه که اگه توی Tray یا Minimize هست Restore بشه؛
اگه Normal یا Maximize هست Focus بگیره.
این کار رو با استفاده از Caption فرم اصلی امتحان کردم ولی اصلا جالب نبود.
مثلا اگه Caption فرم اصلی Form1 باشه:
روش بهتری بجز استفاده از عنوان پنجره فرم اصلی هست؟
به نظر من حتی App.PrevInstance هم خیلی قابل اعتماد نیست. وقتی دو فایل اجرایی یکسان رو از دو مسیر متفاوت اجرا می کنید App.PrevInstance مقدار False رو بر میگردونه؛
اما به عنوان مثال فایل Regedit رو دو جای مختلف کپی کنید و بعد از اجرای اولی دومی رو اجرا کنید ببینید چی میشه؟
هدف از رسیدن به پاسخ: ما هم باید برنامه های استاندارد بنویسیم چون کاربران به استانداردهای ویندوز عادت دارند.
منورم از بالا اومدن اینه که اگه توی Tray یا Minimize هست Restore بشه؛
اگه Normal یا Maximize هست Focus بگیره.
این کار رو با استفاده از Caption فرم اصلی امتحان کردم ولی اصلا جالب نبود.
مثلا اگه Caption فرم اصلی Form1 باشه:
کد:
If App.PrevInstance Then
ShowWindow FindWindow(vbNullString, "Form1"), 1
SetForegroundWindow FindWindow(vbNullString, "Form1")
End
End If
به نظر من حتی App.PrevInstance هم خیلی قابل اعتماد نیست. وقتی دو فایل اجرایی یکسان رو از دو مسیر متفاوت اجرا می کنید App.PrevInstance مقدار False رو بر میگردونه؛
اما به عنوان مثال فایل Regedit رو دو جای مختلف کپی کنید و بعد از اجرای اولی دومی رو اجرا کنید ببینید چی میشه؟
هدف از رسیدن به پاسخ: ما هم باید برنامه های استاندارد بنویسیم چون کاربران به استانداردهای ویندوز عادت دارند.
۲۴-آبان-۱۳۸۷, ۱۱:۰۴:۳۵
سلام دوستان
اگه ممکنه یه راهی هم بفرمایید که بشه فقط این برنامه مورد نظر روطوری hidden کرد که از طریق فرمان show در ویندوز قابل مشاهده نباشه ممنون مرسی سحر
سلام دوستان
اگه ممکنه یه راهی هم بفرمایید که بشه فقط این برنامه مورد نظر روطوری hidden کرد که از طریق فرمان show در ویندوز قابل مشاهده نباشه ممنون مرسی سحر
اگه ممکنه یه راهی هم بفرمایید که بشه فقط این برنامه مورد نظر روطوری hidden کرد که از طریق فرمان show در ویندوز قابل مشاهده نباشه ممنون مرسی سحر
سلام دوستان
اگه ممکنه یه راهی هم بفرمایید که بشه فقط این برنامه مورد نظر روطوری hidden کرد که از طریق فرمان show در ویندوز قابل مشاهده نباشه ممنون مرسی سحر
۲۵-آبان-۱۳۸۷, ۱۶:۰۲:۴۶
سلام براي دستكاريه فايل ها سرويس cryptographic ويندوز رو stop كنيد. (نمي دونم اسمش رو درست نوشتم يا نه! يه Remote همين جا گذاشته بودم. اونو ببينيد)