определяем ID процесса
X++:
static int GetCurrentProcessId()
{
Dll kernel32 = new Dll(#KERNELDLL);
DllFunction processId = new DllFunction(kernel32, "GetCurrentProcessId");
;
processId.returns(ExtTypes:: DWord);
return processId.call();
}
затем убиваем его
X++:
static void TerminateProcess(int _processId)
{
Dll kernel32 = new Dll(#KERNELDLL);
DllFunction closeHandle = new DllFunction(kernel32, "CloseHandle");
DllFunction terminateProcess = new DllFunction(kernel32, "TerminateProcess");
DllFunction openProcess = new DllFunction(kernel32, "OpenProcess");
int hProcess;
closeHandle.returns(ExtTypes:: DWORD);
closeHandle.arg(ExtTypes:: DWORD);
terminateProcess.returns(ExtTypes:: DWord);
terminateProcess.arg(ExtTypes:: DWord, ExtTypes:: DWord);
openProcess.returns(ExtTypes:: DWord);
openProcess.arg(ExtTypes:: DWord, ExtTypes::DWord, ExtTypes:: DWord);
hProcess = openProcess.call(1, false, _processId);
terminateProcess.call(hProcess, 1);
closeHandle.call(hProcess);
}