Моя цель - когда будет обнаружено какое-то вмешательство, я хочу немедленно закрыть приложение, но оставить пользователь с каким-то уведомлением. У меня также есть такая функция, как удаленное завершение сеанса, когда владелец приложения может завершить сеанс клиента, то же самое происходит в случае истечения срока действия лицензии. Я не хочу просто закрывать приложение, я хочу оставить пользователю сообщение
Я читал о некоторых решениях, но вижу проблемы в каждом из них:
- Создайте отдельное приложение, которое будет вызывать DialogBox и запускаться как новый процесс:
Я не хочу отправлять дополнительные exe-файлы, это должна быть одна собственная библиотека - Использование powershell и ShellExecute
Я обеспокоен тем, что powershell может быть заблокирован на некоторых компьютерах или ему потребуются права администратора. У меня есть этот код, который работает
Код: Выделить всё
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class NativeMethods {
[DllImport("user32.dll", CharSet=CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, string text, string caption, int options);
}
"@
[NativeMethods]::MessageBox([IntPtr]::Zero, "Wykryto naruszenie", "Ał", (0x10 -bor 0x1000))
- Используйте VBS вместе с Windows Script Host
На некоторых компьютерах Windows Script Host может быть заблокирован
Подробнее здесь: https://stackoverflow.com/questions/793 ... f-main-pro
Мобильная версия