Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            // linux下可能需要手动复制SharpProxy项目中的libs文件夹, 不然会报错找不到 config.json 等配置文件
            // 如果报错注意查看Console输出的错误信息, trojan go lib有详细的日志输出
            // 即使以GUI程序启动, 调试模式也会在visual studio中输出控制台日志
            Console.WriteLine(SharpProxyTrojanGo.GetPlatformInfo());

            var dir = Environment.CurrentDirectory + "/libs";

            SharpProxyTrojanGo.Start(dir, false);

            Thread.Sleep(1000);
            Console.WriteLine("输入Q终止程序");
            while (true)
            {
#if Debug
                var s = Console.ReadLine(); // 如果不阻塞进程,main程序退出之后golang的后台线程会被关闭
                if (s.ToLower() == "q")
                {
                    break;
                }
#else
                Thread.Sleep(1000);
#endif
            }

            SharpProxyTrojanGo.Stop();
            Thread.Sleep(1000);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            // linux下可能需要手动复制SharpProxy项目中的libs文件夹, 不然会报错找不到 config.json 等配置文件
            // 如果报错注意查看Console输出的错误信息, trojan go lib有详细的日志输出
            // 即使以GUI程序启动, 调试模式也会在visual studio中输出控制台日志
            Console.WriteLine(SharpProxyTrojanGo.GetPlatformInfo());

            var dir = Environment.CurrentDirectory + "/libs";

            SharpProxyTrojanGo.Start(dir);


            Console.WriteLine("输入Q终止程序");
            while (true)
            {
                var s = Console.ReadLine(); // 如果不阻塞进程,main程序退出之后golang的后台线程会被关闭
                if (s != null && s.ToLower() == "q")
                {
                    break;
                }
                else if (s == null)
                {
                    Console.WriteLine("标准输入流为null, 可能是被其他进程启动, 作为子进程运行.");
                    Thread.Sleep(1000 * 60 * 60);
                    continue;
                }
            }

            SharpProxyTrojanGo.Stop();
            Thread.Sleep(1000);
        }
Ejemplo n.º 3
0
        //初始化浏览器并启动
        public void InitializeChromium()
        {
            CefSettings settings = new CefSettings();

            // 启用缓存和cookie
            settings.CachePath             = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\Cache";
            settings.PersistSessionCookies = true;

            // trojan go 客户端代理端口可以在配置文件中修改
            settings.CefCommandLineArgs.Add("proxy-server", "socks5://127.0.0.1:1082");

            // dir是Trojan go客户端配置文件的目录
            SharpProxyTrojanGo.Start(Environment.CurrentDirectory + "/libs");

            // Initialize cef with the provided settings
            Cef.Initialize(settings);
            // Create a browser component
            chromeBrowser = new ChromiumWebBrowser("https://www.google.com/");
            // Add it to the form and fill it to the form window.
            this.panelBrowser.Controls.Add(chromeBrowser);
            chromeBrowser.Dock            = DockStyle.Fill;
            chromeBrowser.LifeSpanHandler = new OpenPageSelf(); // 不用新窗口打开url
            chromeBrowser.KeyboardHandler = new CefKeyBoardHander();
            this.Width  = 1024;
            this.Height = 800;

            var bookConfigs = BooksUtils.GetAllBookConfig();

            bookConfigs.ForEach(x =>
            {
                x.BookName = $"{x.BookName}-{x.Author}";
            });
            cbxBookConfig.DataSource    = bookConfigs;
            cbxBookConfig.DisplayMember = nameof(Book.BookName);
            cbxBookConfig.ValueMember   = nameof(Book.Id);
            cbxBookConfig.SelectedIndex = 0;
        }