Example #1
0
        private static System.Collections.Generic.IEnumerable <Cmd> GetOpenUrlCommands(string url)
        {
            string additionalFlags = "";

            if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
            {
                try
                {
                    if (Syscalls.getuid() == 0 || Syscalls.geteuid() == 0)
                    {
                        additionalFlags += " --no-sandbox ";
                    }
                }
                catch { }
            } // End if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)


            if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows))
            {
                // https://brockallen.com/2016/09/24/process-start-for-urls-on-net-core/
                // hack because of this: https://github.com/dotnet/corefx/issues/10361
                yield return(new Cmd()
                {
                    FileName = "cmd", Arguments = $"/c start {url.Replace("&", "^&")}", CreateNoWindow = true
                });

                yield return(new Cmd()
                {
                    FileName = "msedge.exe", Arguments = url
                });
            }

            yield return(new Cmd()
            {
                FileName = "google-chrome", Arguments = additionalFlags + url
            });

            yield return(new Cmd()
            {
                FileName = "chromium-browser", Arguments = additionalFlags + url
            });

            yield return(new Cmd()
            {
                FileName = "chrome", Arguments = additionalFlags + url
            });

            yield return(new Cmd()
            {
                FileName = "chromium", Arguments = additionalFlags + url
            });

            yield return(new Cmd()
            {
                FileName = "firefox", Arguments = url
            });

            if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
            {
                yield return(new Cmd()
                {
                    FileName = "xdg-open", Arguments = url
                });

                yield return(new Cmd()
                {
                    FileName = "openvt", Arguments = url
                });
            } // End if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)

            yield return(new Cmd()
            {
                FileName = "open", Arguments = url
            });

            yield return(new Cmd()
            {
                FileName = "start", Arguments = url
            });
        } // End Function GetCommands