Подавить всплывающее окно процесса в .NET - PullRequest
1 голос
/ 21 мая 2011

Наша пользовательская панель запускает все наше программное обеспечение как сервисы. По любой причине, однако, голосовое программное обеспечение Mumble создает всплывающее окно, когда вы запускаете его с паролем администратора, установленным в командной строке. Кто-то опубликовал альтернативу, используя bat-файл, который запускает два процесса как обходной, но есть ли способ просто подавить всплывающее сообщение, используя .NET? Я написал много приложений типа запуска, чтобы исправить подобные вещи, но я понятия не имею, как я мог подавить это сообщение.

Вот как выглядит .bat файл из обходного пути.

set /p VAR= < superadmin.txt
start murmur2.exe -supw %var%
ping 0.0.0.0 -n 3 > NUL
tskill murmur2
murmur.exe

1 Ответ

0 голосов
/ 21 мая 2011

Вы можете попытаться отслеживать открытые окна и закрывать всплывающее окно через winapi, когда оно появляется

[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);

public const int WM_COMMAND = 0x0112;
public const int WM_CLOSE = 0xF060;

int handle = FindWindow(lpClassName, lpWindowName);
SendMessage(handle, WM_COMMAND, WM_CLOSE, 0);
...