Win32 API kullanarak C # Cephesi'ne Pencere getirmek

oy
35

Ben ön plana harici uygulamanın penceresini getirmek için gereken bir uygulama yazma ve mutlaka odağı çalmak değilim (kullanıcıyı ayarı odağı çalmak / değil çalmaya geçiş yapabilirsiniz yoktur).

Win32 API kullanarak bu konuda gitmek için en iyi yolu nedir? Ben SetForeground () denedim ama her zaman odak çalar ve consistenly çalışmaz.

Bu konuda gitmek için en iyi yolu nedir? Düşüncesi olan var mı?

Oluştur 06/08/2008 saat 01:55
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
14

SetForegroundWindow odağı çalmak gerekiyordu ve onu başarısız olur belirli durumlar söz konusudur edilir.

SetForegroundWindow işlevi ön plana belirtilen pencereyi oluşturulan iş parçacığı koyar ve pencereyi harekete geçirir. Klavye giriş penceresinin yöneliktir

Ile odak yakalayan deneyin SetCapture önce arama yapmak için. SetForegroundWindow, SetActiveWindow, hatta bunu yapabilirsiniz bir klik taklit: Ayrıca pencereyi öne getirme farklı şekillerde içine bakmak.

Cevap 06/08/2008 saat 02:06
kaynak kullanıcı

oy
5

SetForegroundWindow, SetActiveWindow ve BringWindowToTop arasındaki fark nedir? Bu hepsi aynı şeyi yaparsanız olarak görünür.

MSDN göre, SetForegroundWindow pencere ve doğrudan klavye odağını devreye girer. Bu süreç arka planda olsa bile çalışma çalışır. SetActiveWindow SetForegroundWindow aynı şeyi yapar, ancak uygulama en öndeki uygulama değilse o şey yapmaz. Son olarak, BringWindowToTop sadece üstüne pencereyi getirir ve klavye odağı değişmez.

Cevap 06/08/2008 saat 14:20
kaynak kullanıcı

oy
2

Eğer SetWindowPos kullanarak denediniz. Bu taşıma, yeniden boyutlandırma ve Windows z sırasını ayarlamak için kanonik fonksiyonudur. Kullanabileceğiniz bir SWP_NOACTIVATE bayrağı vardır. Bak http://msdn.microsoft.com/en-us/library/ms633545(VS.85).aspx . Ben başka bir işlem ait bir pencere bu denemedim, ama denemeye muhtemelen değer.

Cevap 24/08/2008 saat 22:51
kaynak kullanıcı

oy
2

Odaklanmalısın çalmak değil BringWindowToTop işlevini deneyebilirsiniz. Ben kullanmadım, ancak aradığınızı gibi görünüyor.

Cevap 06/08/2008 saat 02:37
kaynak kullanıcı

oy
1

SetWindowPos + SWP_NOACTIVATE işi ​​yapar.

Cevap 18/12/2009 saat 08:23
kaynak kullanıcı

oy
0

Daha sonra, pencerenin HWND almak Win32 API bulunan BringWindowToTop işlevini kullanmak için FindWindow kullanabilirsiniz.

Cevap 06/05/2011 saat 15:44
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more