OpenTween.Win32Api.GetPreviousProcess C# (CSharp) Method

GetPreviousProcess() public static method

public static GetPreviousProcess ( ) : Process
return System.Diagnostics.Process
        public static Process GetPreviousProcess()
        {
            var curProcess = Process.GetCurrentProcess();
            try
            {
                return Process.GetProcessesByName(curProcess.ProcessName)
                    .Where(p => p.Id != curProcess.Id)
                    .FirstOrDefault(p => string.Compare(p.MainModule.FileName, curProcess.MainModule.FileName, StringComparison.OrdinalIgnoreCase) == 0);
            }
            catch
            {
                return null;
            }
        }

Usage Example

Esempio n. 1
0
        private static void ShowPreviousWindow()
        {
            // 実行中の同じアプリケーションのウィンドウ・ハンドルの取得
            var prevProcess = Win32Api.GetPreviousProcess();

            if (prevProcess != null && prevProcess.MainWindowHandle == IntPtr.Zero)
            {
                // 起動中のアプリケーションを最前面に表示
                Win32Api.WakeupWindow(prevProcess.MainWindowHandle);
            }
            else
            {
                if (prevProcess != null)
                {
                    //プロセス特定は出来たが、ウィンドウハンドルが取得できなかった(アイコン化されている)
                    //タスクトレイアイコンのクリックをエミュレート
                    //注:アイコン特定はTooltipの文字列で行うため、多重起動時は先に見つけた物がアクティブになる
                    var rslt = Win32Api.ClickTasktrayIcon(Application.ProductName);
                    if (!rslt)
                    {
                        // 警告を表示(見つからない、またはその他の原因で失敗)
                        MessageBox.Show(MyCommon.ReplaceAppName(Properties.Resources.StartupText1), MyCommon.ReplaceAppName(Properties.Resources.StartupText2), MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    // 警告を表示(プロセス見つからない場合)
                    MessageBox.Show(MyCommon.ReplaceAppName(Properties.Resources.StartupText1), MyCommon.ReplaceAppName(Properties.Resources.StartupText2), MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
All Usage Examples Of OpenTween.Win32Api::GetPreviousProcess