#c# #.net #popup #suppress
#c# #.net #всплывающее окно #подавить
Вопрос:
Наша панель пользователя запускает все наше программное обеспечение как службы. Однако по какой-то причине программное обеспечение Mumble voice создает всплывающее окно, когда вы запускаете его с паролем администратора, установленным в командной строке. Кто-то опубликовал альтернативу, используя bat-файл, который запускает два процесса в качестве обходного пути, но есть ли какой-либо способ просто подавить всплывающее сообщение с помощью .NET? Я написал много приложений типа launcher, чтобы исправить подобные вещи, но я понятия не имею, как я мог бы подавить это сообщение.
Вот как выглядит файл .bat из обходного пути.
set /p VAR= < superadmin.txt
start murmur2.exe -supw %var%
ping 0.0.0.0 -n 3 > NUL
tskill murmur2
murmur.exe
Ответ №1:
Вы можете попробовать отслеживать открытые окна и закрывать всплывающее окно через 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);