PDA

View Full Version : نیاز به برنامه کلیک در نقطه ی خاصی از صفحه دستکاپ



imanpazoki
سه شنبه 20 مهر 1395, 23:24 عصر
سلام و عرض ادب خدمت دوستان و استادان بزرگوار

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

ممنون میشم راهنمایی بفرمایید
منتظر پاسخ شما هستم
یاعلی

vbhamed
پنج شنبه 22 مهر 1395, 09:37 صبح
سلام

به تاپیک زیر مراجعه نمایید

http://barnamenevis.org/showthread.php?530794-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%DA%A9%D9%84%DB%8C%DA%A9-%DA%86%D9%BE-%D9%85%D9%88%D8%B3

imanpazoki
پنج شنبه 22 مهر 1395, 18:10 عصر
سلام و درود
از برنامه فوق استفاده کردم در کار مشکل ایجاد میکنه
زمانی که این موس کلیکر فعال هست اجازه کارکردن با موس رو نمیده و از طرفی ممکنه جایگاه پیغام تغییر کنه

اگر برنامه ای نوشته بشه خیلی بهتره
سپاس

meys34
شنبه 24 مهر 1395, 22:16 عصر
سلام

با فرض داشتن متن دقیق و یکتا بودن متن اون دو کار میشه کرد:

1- متن پنجره (caption) مورد نظر ثابت و متن دکمه ثابت است:

فرض کنید که متن پنجره Project1 و متن دکمه دقیقا OK باشد
Private Sub Timer1_Timer()
Dim l As Long
l = FindWindowEx(0, 0, "#32770", "Project1")
If l Then
l = FindWindowEx(l, 0, vbNullString, "OK")
If l Then
SendMessage l, WM_LBUTTONDOWN, 0, ByVal 0&
SendMessage l, WM_LBUTTONUP, 0, ByVal 0&
End If
End If
End Sub

2- فقط متن پنجره ثابت است...

Dim l As Long
l = FindWindowEx(0, 0, "#32770", "Project1")
If l Then
SendMessage l, WM_CLOSE, 0, ByVal 0&
End If

اگر متن دقیق پیغام رو بخواید پیدا کنید باید لیستی از پنجره های موجود و زیر مجموعه های اون ها رو بدست بیارید و توش سرچ کنید

البته اگر فقط بخواید از شر پیغام مزاحم خلاص بشید میشه اون پنجره رو همینجوری باز گذاشت ولی به گوشه صفحه جابجا کرد طوری که اصلا دیده نشه...

اگر اینها جواب نداد باید بیشتر توضیح بدید (متن پنجره، ثابت بودن یا ...) تا بشه برنامه بهتری نوشت

imanpazoki
شنبه 24 مهر 1395, 23:51 عصر
سلام

با فرض داشتن متن دقیق و یکتا بودن متن اون دو کار میشه کرد:

1- متن پنجره (caption) مورد نظر ثابت و متن دکمه ثابت است:

فرض کنید که متن پنجره Project1 و متن دکمه دقیقا OK باشد
Private Sub Timer1_Timer()
Dim l As Long
l = FindWindowEx(0, 0, "#32770", "Project1")
If l Then
l = FindWindowEx(l, 0, vbNullString, "OK")
If l Then
SendMessage l, WM_LBUTTONDOWN, 0, ByVal 0&
SendMessage l, WM_LBUTTONUP, 0, ByVal 0&
End If
End If
End Sub

2- فقط متن پنجره ثابت است...

Dim l As Long
l = FindWindowEx(0, 0, "#32770", "Project1")
If l Then
SendMessage l, WM_CLOSE, 0, ByVal 0&
End If

اگر متن دقیق پیغام رو بخواید پیدا کنید باید لیستی از پنجره های موجود و زیر مجموعه های اون ها رو بدست بیارید و توش سرچ کنید

البته اگر فقط بخواید از شر پیغام مزاحم خلاص بشید میشه اون پنجره رو همینجوری باز گذاشت ولی به گوشه صفحه جابجا کرد طوری که اصلا دیده نشه...

اگر اینها جواب نداد باید بیشتر توضیح بدید (متن پنجره، ثابت بودن یا ...) تا بشه برنامه بهتری نوشت

فرضیه اول خیلی نزدیک هست به اون چیزی که من میخوام
ممنون از پاسختون
فقط یه لطفی کنید بگید که کدهارو در چه قسمتی قرار بدم ؟
تایمر میخواد ؟ دکمه میخواد و .....

meys34
یک شنبه 25 مهر 1395, 15:37 عصر
داخل تایمر با interval مثلا 100 بزارید و متن Project1 و OK رو به دلخواه تغییر بدید و امتحان کنید...