PDA

View Full Version : حرفه ای: بستن برنامه



omid-vbAuto
شنبه 22 آبان 1389, 15:42 عصر
دوستان عزیز اطلاع دارن که به کمک دستور Shell میشه هر نوع فایلی رو باز کرد.حالا اگه کسی مثل من بخواد بعد باز کردن فایلی با دستور Shell اونو ببنده باید چکار کنیم؟؟؟؟

کد مربوطشو بنویسید.


تشکر میکنم

Saman_12
شنبه 22 آبان 1389, 16:17 عصر
همچین حرفه ای هم نیست :

Private Sub OpenByShell(ByVal PathName As String, _
Optional ByVal Styl As Microsoft.VisualBasic.AppWinStyle = AppWinStyle.MinimizedFocus, _
Optional ByVal Wait As Boolean = False, Optional ByVal TimeOut As Integer = -1)

Dim ID As Integer = Shell(PathName, Styl, Wait, TimeOut)

SaveSetting(Application.ProductName, "Shell", IO.Path.GetFileName(PathName), ID)
End Sub

Private Sub CloseByShell(ByVal FileName As String)

Dim ID As Integer = GetSetting(Application.ProductName, "Shell", FileName, 0)

Process.GetProcessById(ID).Kill()
DeleteSetting(Application.ProductName, "Shell")
End Sub

به کمک دستور Shell میشه هر نوع فایلی رو باز کرد
اینطور نیست که بشه با این دستور هر فایلی رو باز کرد بلکه با استفاده از این دستور تنها میشه برنامه ای رو به اجرا در آورد.

omid-vbAuto
شنبه 22 آبان 1389, 19:08 عصر
با سلام دوست عزیز من خودم با استفاده از کد زیر دستور Shell رو انجام می دادم:




Shell("Explorer A.jpg", AppWinStyle.NormalFocus)





اما شما از دستور Shell به صورت زیر استفادهکردین که دو پارامتر آخری رو نتونستم بفهمم واسه چی گذاشتین؟:متفکر: و چه کاری می کنند؟



OpenByShell(ByVal PathName As String, Optional ByVal Styl As Microsoft.VisualBasic.AppWinStyle = AppWinStyle.MinimizedFocus, Optional ByVal Wait As Boolean = False, Optional ByVal TimeOut As Integer = -1)




در ضمن کدهای مربوط به بستن برنامه ای که گذاشته بودین Error داد و اجرا نشد؟!!!



از دوستان خواهش می کنم اگر می خوان کمک کنند با نمونه برنامه کمک کنند تا این Error ها پیش نیاد.


با تشکر

Saman_12
شنبه 22 آبان 1389, 19:41 عصر
اول اون دوتا Sub رو اظافه کنید بعد هم اینجوری استفاده کنید :

OpenByShell("CMD", AppWinStyle.NormalFocus)
Threading.Thread.Sleep(1000)
CloseByShell("CMD")

خود دستور Shell هم اون دو پارمتر آخر رو داره اما نیاز به ذکر اون هانیست چون یک مقدار پیش فرض برای اون ها در نظر گرفته شده :
پارامتر Wait که مقدار پیشفرض اون False هست تعیین میکند که ابتدا دستور Shell عمل نماید یا کد های بعد از آن.
پارامتر TimeOut نیز که مقدار پیشفرض اون -1 هست تعیین میکند که برنامه بعد از چند میلی ثانیه اجرا شود.

Alghoochi
شنبه 22 آبان 1389, 20:43 عصر
کد بستن برنامه رو بین دستور Try بنویس تا اگه برنامه باز نبود یا توسط کاربر بسته شده بود ارور نده.

این کد:


Process.GetProcessById(ID).Kill()

mahdi1373
شنبه 22 آبان 1389, 20:49 عصر
این کد هم میشه:


shell ("tskill appname")

omid-vbAuto
شنبه 22 آبان 1389, 21:48 عصر
هر چند من از دوستان خواهش کردم نمونه برنامه بدن ،اونها هم روی من زمین نداختن.مرسی


این برنامه ای که خودم نوشتم.و هنوز مشکلش حل نشده.!!!

60200

از دوستان آشنا به این مقوله درخواست یاری می کنم.البته من نمی خوام تو فرمم از Timer استفاده کنم.

Saman_12
شنبه 22 آبان 1389, 22:48 عصر
اگر دقت کرده باشی Style توی کد های زیر به طور تقریبی تاثیری نداره (هر دو به صورت نرمال و با گرفتن فوکس اجرا می شوند.) :

Shell("Explorer C:\Sea.jpg", AppWinStyle.MinimizedFocus)
و

Shell("Explorer C:\Sea.jpg", AppWinStyle.MaximizedFocus)

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

فکر کنم برای کار شما با بدست آوردن هندل پنجره فعال (چند میلی ثانیه بعد از باز شدنش توسط دستور Shell ) و جستوجوی نام عکس در عنوان پنجره ( برای اطمینان بیشتر ) بشه یک کارا هایی انجام داد این کار ها را باید با API های زیر انجام داد :
GetForeGroundWindow و GetWindowTextLength و GetWindowText

omid-vbAuto
یک شنبه 23 آبان 1389, 01:44 صبح
همون طور که دوستمون به خوبی اشاره کردن مشکل برنامه برای باز کردن وجود نداره مشکل تو بستنشه که این ID قبلا بسته شده.


حالا دوستان اطلاعاتی در ایم موارد دارن مثلا چطور میشه یه فایل عکس رو باز و بسته کرد؟؟؟


حالا در موارد مشابه یک mp3 ویا یک فیلم.:متفکر:

omid-vbAuto
یک شنبه 23 آبان 1389, 14:54 عصر
همون طور که دوستمون به خوبی اشاره کردن مشکل برنامه برای باز کردن وجود نداره مشکل تو بستنشه که این ID قبلا بسته شده.


حالا دوستان اطلاعاتی در ایم موارد دارن مثلا چطور میشه یه فایل عکس رو باز و بسته کرد؟؟؟


حالا در موارد مشابه یک mp3 ویا یک فیلم.:متفکر:


دوستانی که در این مورد اطلاعات دارن .لطفا کمک کنید.