Моя цель — при обнаружении какого-либо вмешательства я хочу прекратить работу приложение немедленно, но оставьте пользователю какое-то уведомление. У меня также есть такая функция, как завершение удаленного сеанса, когда владелец приложения может завершить сеанс клиента. То же самое касается и случая, когда истекает срок действия лицензии. Я не хочу просто закрыть приложение, я хочу оставить пользователю сообщение.
Я читал о некоторых решениях, но вижу проблемы в каждом из них:
- Создайте отдельное приложение, которое создает диалоговое окно, и запускайте его как новый процесс.
Я не знаю хотите отправить дополнительные 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 ... dent-of-th