PDA

View Full Version : بستن یک برنامه با استفاده از عنوان آن



MAiLDEREMi
شنبه 16 تیر 1386, 20:03 عصر
با سلام خدمت دوستان
در VB6 این توانایی وجود داشت که با استفاده از فرمان های API نظیر GetWindowText پنجره مورد نظر خود را مشخص و اون رو می بستیم.
ولی به دلیل اینکه تعدادی از این فرامین در VB.Net تغییر کرده اند نتونستم اون کار رو با اون کیفیت انجام بدم. راستش اگر امکان داره کوتاهترین کد برای شناسایی پنجره ای با عنوان خاص و بستن اون رو اینجا بذارین.

متشکرم

ghafoori
شنبه 16 تیر 1386, 21:18 عصر
دوست عزیز فکر کنم شما باید از همون api ها استفاده کنید چون api های دات نت تمام این قابلیت ها را فراهم نی کند و یک نگاهی هم به این تاپیک بندازید هم بدک نیست
http://barnamenevis.org/forum/showthread.php?t=71791

MAiLDEREMi
یک شنبه 17 تیر 1386, 00:42 صبح
دوست عزیز فکر کنم شما باید از همون api ها استفاده کنید چون api های دات نت تمام این قابلیت ها را فراهم نی کند و یک نگاهی هم به این تاپیک بندازید هم بدک نیست
http://barnamenevis.org/forum/showthread.php?t=71791

متشکر ولی این دقیقا اون چیزی که می خواستم نبود. راستش من با اون WindowSpy کار کردم ولی مشکل من اینجاست که هر کدی می نویسم، الگوریتم کثیفی میشه گفتم شاید یکی بهترش رو نوشته باشه.

اَرژنگ
یک شنبه 17 تیر 1386, 17:51 عصر
متشکر ولی این دقیقا اون چیزی که می خواستم نبود. راستش من با اون WindowSpy کار کردم ولی مشکل من اینجاست که هر کدی می نویسم، الگوریتم کثیفی میشه گفتم شاید یکی بهترش رو نوشته باشه.
کدتان را بفرستید ، شاید یکی بتواند تمیزترش کند.
اینکه دنبال کد تمیزتر میگردید نشان این است که به کارتان افتخار میکنید ، و خوب پیشرفت خواهید کرد. کاشکی همه برنامه نویسان مثل شما همیشه در حال بهتر کردن کدشان باشند.

MAiLDEREMi
جمعه 22 تیر 1386, 04:07 صبح
با تشکر از دوستان
به دلایلی چون نشد از Win32 استفاده کنم برای همین فعلا یه کد ساده می ذارم.
کد زیر ساده ترین شکل برای خروج از یک Application هست و «برای فلدرها نیست»

Public Class Form1
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal LpClassname As String, ByVal IpWindowName As String) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SendMessage(FindWindow(vbNullString, "WINDOW TITLE"), &H10, 0, 0)
End Sub
End Class

رضا عربلو
جمعه 22 تیر 1386, 05:22 صبح
کجای ان کثیف است؟
شما دقیقاً درست کار کرده اید. تنها راه دستکاری برنامه های دیگر استفاده از توابع api است.

رضا عربلو
جمعه 22 تیر 1386, 05:25 صبح
تنها شاید بهتر بود برای خوانایی بهتر برنامه به جای &H10 از constant با نامی که در api help امده است استفاده می کردید

MAiLDEREMi
جمعه 22 تیر 1386, 05:37 صبح
تنها شاید بهتر بود برای خوانایی بهتر برنامه به جای &H10 از constant با نامی که در api help امده است استفاده می کردید

راستش این بعد از پاکسازیه D: