示例#1
0
        private void InitializeTimer()
        {
            var securityAttributes = new WinApiClass.SECURITY_ATTRIBUTES();

            handleTimer = WinApiClass.CreateWaitableTimer(
                ref securityAttributes,
                false,
                "TimerMessageBoxes"
                );
        }
示例#2
0
        private void InitializeSemaphore()
        {
            var securityAttributes = new WinApiClass.SECURITY_ATTRIBUTES();

            handleSemaphore = WinApiClass.CreateSemaphore(
                ref securityAttributes,
                5,
                5,
                "SemaphoreForms"
                );
        }
示例#3
0
        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()}");
        }