private void InitializeTimer() { var securityAttributes = new WinApiClass.SECURITY_ATTRIBUTES(); handleTimer = WinApiClass.CreateWaitableTimer( ref securityAttributes, false, "TimerMessageBoxes" ); }
private void InitializeSemaphore() { var securityAttributes = new WinApiClass.SECURITY_ATTRIBUTES(); handleSemaphore = WinApiClass.CreateSemaphore( ref securityAttributes, 5, 5, "SemaphoreForms" ); }
public void LaunchProgram(string programName, string fileName) { WinApiClass.SECURITY_ATTRIBUTES processAttributes = new WinApiClass.SECURITY_ATTRIBUTES(); WinApiClass.SECURITY_ATTRIBUTES threadAttributes = new WinApiClass.SECURITY_ATTRIBUTES(); WinApiClass.STARTUPINFO startupinfo = new WinApiClass.STARTUPINFO(); WinApiClass.PROCESS_INFORMATION processInformation = new WinApiClass.PROCESS_INFORMATION(); WinApiClass.CreateProcess( programName, fileName, ref processAttributes, ref threadAttributes, false, 0, IntPtr.Zero, Environment.CurrentDirectory, ref startupinfo, out processInformation ); Thread.Sleep(2000); WinApiClass.TerminateProcess(processInformation.hProcess, 1); Console.WriteLine($"Last error: {WinApiClass.GetLastError()}"); }