Домой Process Блокировка окон запущенных приложений : Справочник по C#

Блокировка окон запущенных приложений : Справочник по C#

760
0


      В данном примере рассмотрена функция позволяющая реализовать блокировку всех запускаемых и запущенных приложений кроме вашего!
Для работы необходимо подключить следующее пространство имен:

using System.Runtime.InteropServices;

Подключаем функции GetDesktopWindow,GetWindow и EnableWindow из библиотеки user32.dll.

[DllImport("user32.dll", SetLastError = false)]
static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool EnableWindow(IntPtr hWnd, bool bEnable);

Так же необходимо добавить флаги, необходимые для прохода по запущенным приложениям.

enum GetWindow_Cmd : uint
{
GW_HWNDFIRST = 0,
GW_HWNDLAST = 1,
GW_HWNDNEXT = 2,
GW_HWNDPREV = 3,
GW_OWNER = 4,
GW_CHILD = 5,
GW_ENABLEDPOPUP = 6
}

Ниже представлена функция блокировки окон приложений, которую необходимо добавить в метод «button1_Click«, события «Click«, элемента управления «Button1»:

private void button1_Click(object sender, EventArgs e)
{
//получаем первое дочернее окно Рабочего стола
IntPtr hwnd = GetWindow(GetDesktopWindow(), GetWindow_Cmd.GW_CHILD);
if (hwnd != IntPtr.Zero)
{
//перебираем все окна в системе
while (hwnd != IntPtr.Zero)
{
//проверка, что блокируем не свое окно
if (hwnd != this.Handle)
{
//блокируем окно
//(вид окна, как будто его блокирует диалоговое окно)
EnableWindow(hwnd, false);
}
//получаем хендл следующего окна
hwnd = GetWindow(hwnd, GetWindow_Cmd.GW_HWNDNEXT);
}
}
}

Указывая в EnableWindow(hwnd, false) true или false вы блокируете или разблокируете приложения!

ЧИТАТЬ ТАКЖЕ:  Использование веб-службы для определения страны происхождения IP-адреса.: Справочник по C#

Ссылка для скачивания примера: Rusfolder.net

Блокировка окон запущенных приложений : Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь