PDA

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



aminbrleevb
شنبه 05 مرداد 1387, 19:02 عصر
با سلام
بچه ها سعی می کنم منظورم رو به خوبی برسونم
فرض کنید که مثلا ما چند برنامه رو باز کرده ایم اگه اشتباه نکنم وقتی که ما با موس روی هر کدوم می ریم در اصطلاح می گویند که فوکوس روی فلان برنامه هست
خوب حالا من می خوام مثلا برنامه ای بنویسیم که مثلا در صورت باز بودن یاهو مسنجر فوکوس به این برنامه بره
ممنون میشم اگه کمکم کنید

.:KeihanCPU:.
شنبه 05 مرداد 1387, 19:25 عصر
منظورتون از اینکه به این برنامه بره چیه؟

aminbrleevb
شنبه 05 مرداد 1387, 19:39 عصر
باور کن کاملا مشخص هست
کلید های ترکیبی alt+tab هست یه کاری شبیه به اون کار رو بکنه ولی بدون کلیک کردن بر موس
خوهش می کنم کمک کنید

aminbrleevb
شنبه 05 مرداد 1387, 19:40 عصر
منظورتون از اینکه به این برنامه بره چیه؟
منظورم اینه که کنترل از برنامه من خارج بشه و به اون برنامه یا صفحه بره

.:KeihanCPU:.
شنبه 05 مرداد 1387, 19:52 عصر
شما باید هندل اون پنجره رو بدست بیاری
تو سایت جستجو کنی چیزای زیادی پیدا میکنی
من سرعت کانکشنم پایینه و گر نه خودم میکردم

aminbrleevb
شنبه 05 مرداد 1387, 19:57 عصر
دوست من
من بلدم چجوری هندل رو بدست بیارم ولی از اون به بعد رو بلد نیستم
میشه بگین اگه هندل یه برنامه رو داشته باشیم چجورب کنترل رو به اون برنامه ببریم
اگین بگین مشکلم حل میشه

.:KeihanCPU:.
شنبه 05 مرداد 1387, 20:11 عصر
صبر کن واست میذارم.
باید پیداش کنم

Mbt925
شنبه 05 مرداد 1387, 20:17 عصر
توسط تابع ShowWindow می تونید هندل موردنظرتون رو فعال کنید.
مثال زیر پنجره ی مربوط به ماشین حساب رو (در صورت وجود) فعال می کنه.





Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal LpClassname As String, ByVal lpWindowName As String) As Long

Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Command1_Click()

Dim WhWnd As Long

WhWnd = FindWindow(vbNullString, "Calculator")
If WhWnd = 0 Then MsgBox "Not Found Window": Exit Sub

ShowWindow WhWnd , 0
ShowWindow WhWnd , 1

End Sub

.:KeihanCPU:.
شنبه 05 مرداد 1387, 23:05 عصر
باید کپشن پنجره مورد نظر رو بنویسید.

vbhamed
شنبه 05 مرداد 1387, 23:48 عصر
سلام
caption پنجره كه معلوم هست، دستورات زير رو هم بنويسيد



On Error Resume Next

Dim i%

For i = 0 To 10

DoEvents
AppActivate "program caption"
DoEvents

Next

Mbt925
یک شنبه 06 مرداد 1387, 00:52 صبح
جواب ساده بود و بهش هم رسیدید.

فاصله ی بین 2 پستتون 3 دقیقه است.
سوال پرسیدن خیلی خوبه ولی یه برنامه نویس تا جایی که ممکنه باید فکر کنه. آخرین راه حل پرسیدنه.

aminbrleevb
یک شنبه 06 مرداد 1387, 04:09 صبح
سلام
caption پنجره كه معلوم هست، دستورات زير رو هم بنويسيد



On Error Resume Next

Dim i%

For i = 0 To 10

DoEvents
AppActivate "program caption"
DoEvents

Next
با تشکر از شما من منظور از کد بالا رو نمی فهمم اگه امکان داره بگین برای چی هست و باید کجا وارد کنم







Mbt925 من میدونم جانم
شما اجازه پاک کردن رو دارین
یه مربع سفید بغل هر پست من اونو تیک بزن و سپس از پایین گزینه پاک کردن رو انتخاب کن
راستی از زحمات شما هم بسیار متشکرم و منو به خاطر عجول بودنم ببخشید و لطفا به تاپیک جدیدم در مورد Applications پاسخ دهید
متشکرم
اینم آدرسش (http://barnamenevis.org/forum/showthread.php?t=115174)

vbhamed
یک شنبه 06 مرداد 1387, 10:25 صبح
سلام
تو كد بالا اون قسمتي كه نوشته شده "program caption" به جاي اون عنوان پنجره مورد نظر خودتون رو بزاريد

aminbrleevb
یک شنبه 06 مرداد 1387, 18:23 عصر
باید بگم این کد خیلی بهتر از کد قبلی می باشد
واقعا مممنون چون کد قبلی در صورت استفاده زیاد حالت صفر و یک باعث هنگ سیستم میشد.