Uygulamamı masaüstünde gösterirken/en aza indirgeme/küçültme tüm pencereleri simge durumuna küçültülmüş simge durumuna küçültün C#Uygulamayı masaüstünü gösterirken/tüm pencereleri simge durumuna küçültmeyi en aza indirirken nasıl bildirebilirim?
cevap
Aşağıdakiler başlamanıza neden olabilir. Bu sadece üzerinde bir liste kutusu (adlandırılmış listMessages) ile standart bir formdur. Bir masaüstü simge durumuna küçült/showall gerçekleştirdiğimde, form WM_SIZE iletilerini yakalar ve Message m değerlerini ListBox'a gönderir. Formunuz, tipik en aza indirgeme ve olayları en üst düzeye çıkarma konusunda yanıt vermeyebilir, ancak bu iletileri windows ileti pompasından almalıdır. Bildiğim kadarıyla herhangi başka bir pencere bu biraz daha karmaşık ama aynı zamanda yapılabilir gösterilmiştir eğer aşağıdaki kullanabilirsiniz tüm pencereleri en aza indirmek için ....
using System;
using System.Windows.Forms;
namespace MinimizeAll
{
public partial class Form1 : Form
{
private const int WmSize = 5;
private const int SizeRestored = 0;
private const int SizeMinimized = 1;
private const int SizeMaximized = 2;
private const int SizeShow = 3;
private const int SizeHide = 4;
public Form1()
{
InitializeComponent();
}
protected override void WndProc(ref Message m)
{
try
{
if (m.Msg == WmSize)
{
var wparam = m.WParam.ToInt32();
switch (wparam)
{
case SizeRestored:
case SizeMinimized:
case SizeMaximized:
case SizeShow:
case SizeHide:
var output = string.Format("{0}{1:X} {2:X} {3:X} {4:X} {5:X}", prefix, m.Msg, m.WParam.ToInt32(), m.LParam.ToInt32(), m.HWnd.ToInt32(), m.Result.ToInt32());
listMessages.Items.Add(output);
break;
default:
// this is just a demo (code police)...
base.WndProc(ref m);
return;
}
}
else
{
base.WndProc(ref m);
}
}
catch (Exception)
{
listMessages.Items.Add("err");
base.WndProc(ref m);
}
}
}
}
http://www.pinvoke.net/index.aspx söz konusu olduğunda paha biçilmez bir kaynaktır Bu tür bir işi yapmak ve sizlere de eşlik edebilir. –
So ... tespitinin:
"Microsoft Shell Denetimleri ve Otomasyonu" COM başvurusuna projenize ekleyin (Referanslar => Ekle => COM).
sonra folowing yapın:
Shell32.ShellClass shell = new Shell32.ShellClass();
shell.MinimizeAll(); // can also do: shell.UndoMinimizeAll();
veya geç bağlama ile
:Object shell;
shell = CreateObject("Shell.Application");
shell.MinimizeAll();
Şimdi size bazı
olayları (AllMinimized gibi) bu COM kullanabilirsiniz emin değilim. .. Bir WinForm uygulamasının en aza indirilmesini engellemek için (Simge durumuna küçült düğmesiyle):
void Form1_Resize(object sender, System.EventArgs e) // Handles Form1.Resize
{
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
}
Ayrıca buradan bir göz atabilirsiniz: Amacıyla http://pinvoke.net/default.aspx/user32.EnumDesktopWindows
size uygulama için Küçültülmüş haber verilmesini (masaüstü/tüm minimize nasıl en olası olay/minimize tüm pencereleri, Sen gerek uygulamanızın güncel formunun
this.WindowState
mülkiyet kontrol edin. O zaman en aza eğer Düzenlendi
FormWindowState.Minimized
eşit olmalıdır: bu deneyin:
foreach (Process proc in Process.GetProcesses())
{
/// check proc.StartInfo.ProcessWindowStyle here
/// it Gets window state to use when the process is started.
}
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo_properties.aspx
i kodlarını göstermek için, pencere devlet –
bütün cevabı düzenlenmiş diğer uygulamaları izlemek isteyen iyi bu deneyin:
{
/// onay proc (Process.GetProcesses() içinde Süreç proc)
foreach .StartInfo.ProcessWindowStyle burada
/// İşlem başlatıldığında kullanılacak pencere durumunu alır.
}
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo_properties.aspx –
AceMark
Ben biçimlendirmek ve daha iyi lüzum kodlarını göstermek için önceki cevabı düzenledim. – AceMark
tamamen Ian Boyd'un yorum katılıyorum. Hiçbir şekilde tanımlanmış sistem davranışını atlatmaya çalışmayın. Ancak, tanımlanmış sistem davranışına uymak ve hala aradığınız şeyi almak (belki), ana pencereniz için gizlemek istemediğiniz appbars'u kullanmak isteyebilirsiniz. Bir uygulama çubuğu, görev çubuğu gibidir, tam ekran uygulamasının çalışması dışında tüm zaman görünür kalır.
Kullanım COM yılında Microsoft Shell Controls And Automation
ait Add Reference Namespace Shell32
Kod: Doğru diyorsun: İstediğiniz halde
Shell32.Shell s32 = new Shell32.Shell();
Çağrı s32 nesne ..
- 1. JFrame simge durumuna küçült düğmesini devre dışı bırakın
- 2. Geri düğmesini tıklattığınızda uygulamayı en aza indirin android
- 3. Yaratılan uygulamayı en aza indirdiğimde, açıldığında neden tekrar başlıyor?
- 4. Qt C++ pencereyi simge durumuna küçültme ve büyütme
- 5. Firefox eklentisi: pencerenin simge durumuna küçültüp küçültmediğini kontrol edin
- 6. Sidenav tarayıcıyı en aza indirgemiyorum göstermiyor
- 7. Android'de tüm uygulama nasıl en aza indirilir?
- 8. Görev çubuğu simgesine tıklandığında nasıl tanımlanamayan bir aşama en aza indirilir
- 9. HTML içeriğini en aza indirgeme
- 10. WPF'deki Windows gadget'ı - "Masaüstünü göster" etkinleştirildiğinde göster
- 11. Tüm pencereleri en aza indirgemek için SendMessage() işlevini kullanın, ancak eski masaüstünü görüntüleyene kadar Thread.Sleep() öğesinden daha verimli bir şekilde geçmeniz gerekiyor:
- 12. RMSE'yi en aza indirgemek için parametreleri uyarlayın
- 13. Yazdırılabilir raporları uygulamadaki acıyı en aza indirgeme
- 14. Dizi özelliğini nasıl bildirebilirim?
- 15. Yani en aza indirmek istiyorum r
- 16. En Aza jQuery örneği fazla örneğini
- 17. Boole ifadelerinin en aza indirgenmesi NP-Complete?
- 18. Süreç en aza indirilmeye başlanamaz C#
- 19. Java yığın izinin içeriğini en aza indirgeme
- 20. clearApplicationUserData uygulaması en aza indirir app
- 21. Pencerem ne zaman wxPython ile en aza indirilir?
- 22. Eclipse Juno - Odakları kaybettiklerinde görünümlerin en aza indirgenmesi nasıl sağlanır?
- 23. Baidu'nun ekoları etrafındaki boşluklar nasıl en aza indirilir
- 24. Çalışan uygulamalar java kullanılarak en aza indirilmiş durumda nasıl bulunur?
- 25. Vim'de benzer satırları eklerken tuş vuruşlarını nasıl en aza indirebilirim?
- 26. Scipy kullanarak bir işlevin bir argümanı nasıl en aza indirilir?
- 27. AS3'te bir XML belgesini nasıl en aza indirebilirim/küçültebilirim
- 28. Tüm SQL depolanmış yordamları bir kerede nasıl en aza indirir
- 29. Python'da Dinamik Diziyi Nasıl Bildirebilirim
- 30. Bildirim Simge indirilirken dosya
Merhaba, netleştirmek isteyebilirsiniz şimdi: bazı WinAPI çağrılarını kullanmanız nedeniyle, görev çubuğunun "Hızlı Başlatma" sında simgesine tıklamak ... normalde tüm pencereleri otomatik olarak gizleyen ... uygulamanızın hala görünür durumda kalmasını sağlıyor mu? Uygulamanızın "gizlenmesi" (görünmez kılma), uygulamanızın (en üstteki pencere gibi davranıp davranmadığı) olup olmadığı ve uygulamanızın hiç bir zaman minimuma indirilmiş olup olmadığı arasında ayrım yapmak önemlidir. – BillW
@BillW evet Uygulamam, masaüstü düğmesinin tıklatılmasından sonra bile görülebilir, ancak uygulamam en üst pencere değil, uygulamayı gizlemek istemiyorum. Uygulamamdaki bir formu gizlemek/göstermek istiyorum. (form en üstteki pencereden daha küçük boyuttadır) –
Merhaba, bu konuda size yardımcı olamayacağım, ama SO üzerinde bazı gerçek api guruları var! Gerçekten ne soruyor olursanız olacağımı merak ediyorum: "Uygulamamın, çalışma zamanındaki ..." Masaüstü Göster "simgesini tıkladığında nasıl bilgilendirilebileceğimi (kısaltılmış, altında -hood, aslında) tüm uygulama pencerelerini gizler? " Sonuçta, bir bildirim alırsanız, uygulamanızın formlarını/pencerelerini istediğiniz gibi yapılandırabilirsiniz. Umarım bu yararlı bir yorumdur; Bu yorum, sorduğun şeyin sadece bir bölümünü ele alabilir, bence. – BillW