PDA

View Full Version : سوال: گرفتن فوکوس از برنامه هاي ديگر



hero4000
پنج شنبه 17 تیر 1389, 10:48 صبح
با سلام و خدا قوت به همه دوستان

من يک برنامه نوشتم که توي حافظه فعال هست و به محض فشار دادن کليدهاي خاصي در هر جاي ويندوز اين برنامه فعال ميشه

منتها يک مشکل دارم اونم اينه که وقتي پنجره برنامه فعال ميشه بعضي وقتها فوکوس روش نمياد

يعني به صورت چشمک زن توي تسکبار هي نارنجي ميشه و روي فرم فعال فعلي نمياد

من از دستور Active و Focus هم استفاده کردم

پيشايپش از شما متشکرم :لبخندساده:

nasim bahari
پنج شنبه 17 تیر 1389, 11:50 صبح
top most رو هم امتحان کردی ؟

hero4000
پنج شنبه 17 تیر 1389, 11:56 صبح
دوست عزيز من که نميخوام فرمم هميشه رو باشه بعدشم گفتم که بعضي وقتها درسته و بعضي وقتها رو نمياد

nasim bahari
پنج شنبه 17 تیر 1389, 12:12 عصر
دقیقاً متوجه منظورت نشدم ..............

اما منظور من این بود که وقتی برنامه فراخوانی شد.......... top most انجام بگیره.............

Hossis
پنج شنبه 17 تیر 1389, 12:39 عصر
ظاهرا در اون مواقع فورا برنامه هاي ديگر فوکس رو در اختيار مي گيرند.
براي اين کار بايد شما با يک تايمر ، مرتب فوکس رو به فرم خودتون بديد تا وقتي که کاملا فوکوس رو دريافت کرده باشد.

hero4000
پنج شنبه 17 تیر 1389, 13:17 عصر
دوست عزيز من توي برنامم يک NotifyIcon هم گذاشتم وقتي اين ايراد پيش مياد هيچ برنامه اي هم در حال اجرا نيست که فوکوس برنامه رو بگيره

من توي رويداد کليک NotifyIcon دقيقا همون دستورات کليد ميانبر رو نوشتم و وقتي اين مشکل پيش مياد روي NotifyIcon کليک که ميکنم مشکلي پيش نمياد و فوکوس به برنامه من منتقل ميشه

من که نفهميدم چي ميشه :متفکر: :عصبانی++:

Hossis
پنج شنبه 17 تیر 1389, 19:01 عصر
خوب اين کد رو هم تست کن شايد جواب داد


Sub xx_keydown
if e.keycode= x then NodifyIcon.click
end sub

hero4000
پنج شنبه 17 تیر 1389, 19:04 عصر
دوست عزيز من دقيقا همين دستور رو نوشتم

واقعا خودم هم موندم ايراد کجايه

جالبه که بعضي وقتها درست عمل ميکنه :کف::گیج:

hero4000
یک شنبه 20 تیر 1389, 08:55 صبح
از اساتيد محترم کسي نيست کمک کنه :ناراحت:

hero4000
سه شنبه 22 تیر 1389, 08:29 صبح
قبلا انجمن فعالتر بود :متفکر:

hero4000
پنج شنبه 24 تیر 1389, 08:34 صبح
:تشویق: :تشویق:

mahdi1373
پنج شنبه 24 تیر 1389, 12:34 عصر
سلام،
چون شما برنامه ات رو نذاشتی، من درست متوجه اشکالش نمیشم. ولی اگر بخوای میتونم توابعی رو برات معرفی کنم که همه پنجره های باز شده در ویندوز (یا فقط پنجره فعال رو) minimize (یا حتی مخفی) کنه و بعد روی برنامه ات فوکوس کنه.
در کل چند تا تابع در اختیار دارم که میتونم کدش رو برات بزارم:
_یافتن تمام پنجره های باز شده در ویندوز
_دریافت پنجره فعال
_مخفی و آشکار نمودن پنجره های ویندوز
_minimize نمودن پنجره دلخواه
_...

اگه تابع دیگه ای خواستی هم بگو شاید داشتم.

محسن شامحمدی
پنج شنبه 24 تیر 1389, 14:22 عصر
فکر کنم اگر از توابع Api استفاده کنی این مشکل رو نداشته باشه

hero4000
پنج شنبه 24 تیر 1389, 18:12 عصر
سلام،
چون شما برنامه ات رو نذاشتی، من درست متوجه اشکالش نمیشم. ولی اگر بخوای میتونم توابعی رو برات معرفی کنم که همه پنجره های باز شده در ویندوز (یا فقط پنجره فعال رو) minimize (یا حتی مخفی) کنه و بعد روی برنامه ات فوکوس کنه.
در کل چند تا تابع در اختیار دارم که میتونم کدش رو برات بزارم:
_یافتن تمام پنجره های باز شده در ویندوز
_دریافت پنجره فعال
_مخفی و آشکار نمودن پنجره های ویندوز
_minimize نمودن پنجره دلخواه
_...

اگه تابع دیگه ای خواستی هم بگو شاید داشتم.

اين راههايي که شما فرموديد از طريق توابع Api است من ميخوام بدونم چرا بعضي وقتها درسته و بعضي وقتها مشکل داره

من فقط به دنبال رفع مشکل اين برنامه نيستم و درک اين قضيه برام مشکله