2010-08-05 1 views
1

Когда вы открываете Internet Explorer или Mozilla, появляется новая задача в панели задач.C# Программно отключить функциональность панели задач

При щелчке правой кнопкой мыши на панели задач этот пункт он Саидов

восстановление, перемещение, размер, свернуть, развернуть, близко.

Теперь у меня есть приложение, которое не использует размер, минимизирует, максимизирует или закрывает.

Может кто-нибудь дать мне быстрый ход или возглавить, чтобы отключить их?

Спасибо заранее Кевин

ответ

2

Вы можете использовать функцию SetWindowLong (http://msdn.microsoft.com/en-us/library/ms633591(VS.85).aspx).

[DllImport("user32.dll", SetLastError = true)] 
private static extern int GetWindowLong(IntPtr hWnd, int nIndex); 
[DllImport("user32.dll")] 
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); 

int GwlStyle = -16;  // GWL_STYLE 
int WsSysMenu = 0x80000; // WS_POPUP 

var hwnd = new WindowInteropHelper(this).Handle; 
SetWindowLong(hwnd, GwlStyle, GetWindowLong(hwnd, GwlStyle) & ~WsSysMenu); 

Проверить выше ссылку для получения дополнительной информации о том, что значения GwlStyle и WsSysMenu указывают. Это приведет к тому, что окно станет всплывающим окном. Тем не менее, это также удаляет кнопки закрытия, максимизации и минимизации сверху справа.

+0

hmmm. этот ответ в порядке, но он получается с помощью дескриптора окна. Я хотел бы, чтобы они изменили размер окна, но они не должны были нажимать на размер панели задач, потому что изменение размера я использую инструментом захвата. – Kevin

+0

@ Kevin, если вы смешиваете 'Handle' с ручкой изменения формы, прошу немного прочитать о winapi и обработчиках (http://www.codeproject.com/KB/winsdk/InsideWindHandles.aspx). Здесь 'Handle' является указателем на объект (или winodw), который используется Windows API для взаимодействия с ним, и функция удаляет элементы меню по умолчанию, которые вы нажимаете правой кнопкой мыши на кнопке панели задач. – TheVillageIdiot