2012-08-03 17 views
5

Programım, bir kullanıcı tarafından talep edildiğinde bir dizi bilgi penceresi açmalı ve Windows 7 görev çubuğunda bir tür özel gruplama uygulamak ister.kontrol pencereleri Uygulamam için 7 görev çubuğu gruplaması

İstenen işlevler: Tüm bilgi pencereleri birlikte gruplanmalı (kullanıcılar sistemde gruplama etkinse, yani), ancak ana pencerem bilgi pencereleriyle gruplandırılmamalıdır.

Bilgi pencereleri için yeni bir işlem oluşturamıyorum.

Düşünce sürecim, bilgi penceresinin pencere tanıtıcısının bir şekilde görev çubuğunu ayrı ayrı gruplamak için bir şekilde değiştirilebilmesi için bir yol olabileceğidir, ancak dürüst bir şekilde bununla nereden başlayacağımı bile bilmiyorum.

DÜZENLEME Ive bazı yeni bilgiler buldum. Burada belirtildiği gibi SHGetPropertyStoreForWindow bir şeyler yapmak mümkün olabilir:

... http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx#where Uygulamanın çalışan pencerelerin herhangi bir özellik olarak. Bu, iki yoldan biriyle ayarlanabilir: Bir işlemin sahip olduğu farklı pencereler, görev çubuğu gruplamasını denetlemek için farklı AppUserModelID'leri gerektiriyorsa, pencerenin özellik deposunu almak için SHGetPropertyStoreForWindow'u kullanın ve AppUserModelID'yi bir pencere özelliği olarak ayarlayın.

+0

Pencerelerinizi aynı appID'ye atayın. –

cevap

0

Ben Windows API Code Pack for .NET ve aşağıdaki kodu kullanarak bu çözüldü: aynı kimliğe sahip atanan

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid); 

Pencere araya getirilir - Benzersiz kimlikli pencereler ayrı görev çubuğu simgesi bulunur.

+0

Pencere tanıtıcısı nasıl alınır ve bu (id) kimliği nedir? – Brackets

+0

@Brackets: herhangi bir rehberi kullanabilirsiniz. Aynı kılavuzdaki Windows birlikte gruplandırılır - benzersiz bir kimliğe sahip pencereler ayrı bir görev çubuğu simgesine sahip olur. – caesay

2

Application User Model IDs diyor ki:

"tek işlemle ait farklı pencereler görev çubuğu gruplama kontrol etmek farklı AppUserModelIDs gerektiriyorsa, pencerenin özellik deposu almak ve bir pencere özelliği olarak AppUserModelID ayarlamak için SHGetPropertyStoreForWindow kullanıyoruz."

+0

Bu benim için çalıştı. Windows API Kod Paketini bir .NET 2.0 uygulaması olarak kullanamadım. – user326608

+0

Sorunum, uygulamamızın COM aracılığıyla başlatılabiliyor olmasıydı ve her zaman olduğu zaman görev çubuğu gruplandırmasında bir araya gelecekti ve COM aracılığıyla çocuk uygulamasını çağıran ana uygulama ile aynı simge ve görev çubuğu düğmesini kullanacaktı. Bu hile yaptı VB.NET kodu: 'Public Declare Function SetCurrentProcessExplicitAppUserModelID Lib "Shell32.dll" Alias ​​As Integer "SetCurrentProcessExplicitAppUserModelID"(ByVal AppID As String))' 'SetCurrentProcessExplicitAppUserModelID (" CompanyName.ProductName. SubProduct.1.0.0.0 ")' – user326608

İlgili konular