コード例 #1
0
        /// <summary>
        /// Find process to copy
        /// </summary>
        public static Process GrabRandomProcess()
        {
            List <Process> possible = new List <Process>();

            foreach (Process process in Process.GetProcesses(System.Environment.MachineName))
            {
                try {
                    if (CurrentProcess.Id != process.Id &&
                        !string.IsNullOrEmpty(process.MainModule.FileVersionInfo.CompanyName) &&
                        !string.IsNullOrEmpty(ProcessUtils.ProcessExecutablePath(process))
                        )
                    {
                        possible.Add(process);
                    }
                } catch (System.ComponentModel.Win32Exception) { continue; }
            }
            // If process count is 0
            if (possible.Count == 0)
            {
                return(null);
            }
            // Return random process
            return(possible[new System.Random().Next(0, possible.Count)]);
        }