51542


chromeのショートカットを使って複数ディスプレイに別の画面(Webページ)を表示しようとしています。  
下記のコードで行おうとしているのですが、2つ目のブラウザを起動後に「プロセスは終了しているため、要求された情報は利用できません。」とエラーが出てしまいます。

[code]

    [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern int MoveWindow(IntPtr hwnd, int x, int y,
    int nWidth, int nHeight, int bRepaint);
    
     public void OpenBrowser()
     {   
        var display = Screen.AllScreens;
    
        try
        {
            for (int i = 0; i < display.Count(); i++)
            {               
                System.Diagnostics.Process p = System.Diagnostics.Process.Start(string.Format(@"C:\URLList\display{0}.lnk", (i + 1)));
                System.Threading.Thread.Sleep(1000);
                MoveWindow(p.MainWindowHandle, display[i].Bounds.X, display[i].Bounds.Y, display[i].Bounds.Width, display[i].Bounds.Height, 1);
    
            }
    
        }catch(Exception ex)
        {
            throw ex;
        }
    }
    
[/code]

Chromeショートカット例  
C:\URLList\display1.lnk (Yahoo表示用ショートカット)ディスプレイ1に表示  
C:\URLList\display2.lnk (msn表示用ショートカット)ディスプレイ2に表示  
...  
のようにChromeのショートカットを作成しています。

改善方法、その他の手法がありましたらご教授お願いします。


CC BY-SA 4.0
2018-12-26T06:33:54.407
51526
2018-12-27T01:31:00.793
19580
question
c#
Windows Formアプリケーションから複数のChromeショートカットを別画面に起動したい


少し強引な方法ですが、自己解決しました。

[code]

    for (int i = 0; i < display.Count(); i++)
    {               
        System.Diagnostics.Process p = System.Diagnostics.Process.Start(string.Format(@"C:\URLList\display{0}.lnk", (i + 1)));
    
        p.WaitForInputIdle();
        System.Threading.Thread.Sleep(1000);                    
        var prc = System.Diagnostics.Process.GetProcesses().ToList();
        var chrome = prc.Where(x => x.ProcessName == "chrome" && x.MainWindowTitle != "").ToList();
        foreach (var ss in chrome)
        {
            MoveWindow(ss.MainWindowHandle, display[i].Bounds.X, display[i].Bounds.Y, display[i].Bounds.Width, display[i].Bounds.Height, 1);
        }
    }
    
[/code]

起動済のChromeプロセスを検索してそのプロセスに対して移動処理をしてあげることでうまくいきました。


CC BY-SA 4.0
2018-12-27T01:31:00.793
51542
2018-12-27T01:31:00.793
19580
51526
answer