调整windows窗口大小

This commit is contained in:
wanghongen
2023-06-24 20:14:56 +08:00
parent c1c3286441
commit 221e11f17f
9 changed files with 46 additions and 39 deletions

View File

@@ -1,23 +1,23 @@
-----BEGIN CERTIFICATE-----
MIID1jCCAr6gAwIBAgIJAJHqGActdgp0MA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
BAYTAkNOMQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzEOMAwGA1UECgwF
UHJveHkxETAPBgNVBAsMCFByb3h5UGluMREwDwYDVQQDDAhQcm94eVBpbjAeFw0y
MzA2MjIxMTIwMjBaFw0zMzA2MTkxMTIwMjBaMGIxCzAJBgNVBAYTAkNOMQswCQYD
VQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzEOMAwGA1UECgwFUHJveHkxETAPBgNV
BAsMCFByb3h5UGluMREwDwYDVQQDDAhQcm94eVBpbjCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMRjfFvFDZS+PsdedUNq0Kn5t7RFNS0iQrZALr4LJm3U
wtatHtMEWBb9ptam8pWezxrZPZ81+qnTcaq/To82yus5hJa4JRk223YWn5JDd4iz
H4gcnSomhUQ6Ycrc0v+I7UEaHV+bQsleHEfYi2+E1qF+FBhRveLSPmz2QORd/U4+
gDlOptgNWMQ9OTRHsMoDzb8J4SlcBu+s0dnq2WHOM9boGnfk2wIgE+16uB23epPo
Yjex8zYGUswh8gNrIzXsr7i9IGtGf67FQYCWOXfZLeGgy0Q0/r1lwSmywUkNaZIs
iGZHveZsLtW93MWMFw0uneEvHsuQV+e8sdLI/633TGcCAwEAAaOBjjCBizAdBgNV
HQ4EFgQU4YXwKkBDFoZY3D81RM25ECSc2qcwHwYDVR0jBBgwFoAU4YXwKkBDFoZY
3D81RM25ECSc2qcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAaYwEwYD
VR0RBAwwCoIIUHJveHlQaW4wEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcN
AQELBQADggEBAB51+IWp5uCliQxxRzJS1Pg0A7ZVaWCCVQMkLtpfkK6GIGP/tgzn
xKf2hZw4tyd5Q9bKAzDBDR76GGsUvC666BjQFUmb/Av8+2f5I0Q55ZzAwKMSEPWU
D9gYN1C1E6o6exJQlgumpD9MB8GGHrKZyHy9vopVi26r7kkzXiz4b3tDIkexLePb
04Konox7v8S62+IFHLhdi6MybXbZxvhmGcLQvogRKUEBFCLBc+Ht+ZLtHPlfZuUf
v9yCKrPWW+8vRTItQjaewEaBbpZyKmp8pCWKqCtJHe0/lbGysX4FJDIwC6hHGM19
S2TuBqtJYrUesVj/HDOOJTAJ46SKMTqQRow=
MIID4jCCAsqgAwIBAgIJAKcH8Dna4mnZMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV
BAYTAkNOMQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzERMA8GA1UECgwI
UHJveHlQaW4xETAPBgNVBAsMCFByb3h5UGluMRQwEgYDVQQDDAtQcm94eVBpbiBD
QTAeFw0yMzA2MjQxNjA2MDlaFw0zMzA2MjExNjA2MTBaMGgxCzAJBgNVBAYTAkNO
MQswCQYDVQQIDAJCSjEQMA4GA1UEBwwHQmVpSmluZzERMA8GA1UECgwIUHJveHlQ
aW4xETAPBgNVBAsMCFByb3h5UGluMRQwEgYDVQQDDAtQcm94eVBpbiBDQTCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMRjfFvFDZS+PsdedUNq0Kn5t7RF
NS0iQrZALr4LJm3UwtatHtMEWBb9ptam8pWezxrZPZ81+qnTcaq/To82yus5hJa4
JRk223YWn5JDd4izH4gcnSomhUQ6Ycrc0v+I7UEaHV+bQsleHEfYi2+E1qF+FBhR
veLSPmz2QORd/U4+gDlOptgNWMQ9OTRHsMoDzb8J4SlcBu+s0dnq2WHOM9boGnfk
2wIgE+16uB23epPoYjex8zYGUswh8gNrIzXsr7i9IGtGf67FQYCWOXfZLeGgy0Q0
/r1lwSmywUkNaZIsiGZHveZsLtW93MWMFw0uneEvHsuQV+e8sdLI/633TGcCAwEA
AaOBjjCBizAdBgNVHQ4EFgQU4YXwKkBDFoZY3D81RM25ECSc2qcwHwYDVR0jBBgw
FoAU4YXwKkBDFoZY3D81RM25ECSc2qcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
Af8EBAMCAaYwEwYDVR0RBAwwCoIIUHJveHlQaW4wEwYDVR0lBAwwCgYIKwYBBQUH
AwEwDQYJKoZIhvcNAQELBQADggEBAAc2s5TwuOdPdl3gYs121sY+HEMyXfsnVTGV
dIlgjf+a0ECir2bcs64udaCIgBjd/vqhShMeqeQ4GJW7Ypb9556L213xjbLj/ZVU
rgZda6oVd4der8YEHXKLxWAGlZQeeKHhw1lN4PYwxxGaf7/wsM7Dil0JLyOBtJaJ
zNRzVzK9UHASDx0qDQVUBbeYzRviVCjxAGBNM/eNlPDX7m//vgCLxQgcxVdoJvMQ
kSVQddo+d8fxnPAVx77dyX0T/ek7PQOsL6d08TVCdvgv50LwE8f9EMhHVv7zjEv2
0ZSaRQ0pvUnc0ClKXIGeMD71eYeeTz7CGjndxy5bdV/wmoo3Yek=
-----END CERTIFICATE-----

View File

@@ -15,8 +15,10 @@ void main() async {
WidgetsFlutterBinding.ensureInitialized();
//设置窗口大小
await windowManager.ensureInitialized();
WindowOptions windowOptions = WindowOptions(
minimumSize: const Size(960, 680),
minimumSize: const Size(980, 600),
size: Platform.isMacOS ? const Size(1200, 750) : const Size(1080, 650),
center: true,
titleBarStyle: Platform.isMacOS ? TitleBarStyle.hidden : TitleBarStyle.normal);
windowManager.waitUntilReadyToShow(windowOptions, () async {

View File

@@ -1,10 +1,10 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:network_proxy/network/http/http.dart';
import 'package:network_proxy/network/http/http_headers.dart';
import 'package:network_proxy/network/util/attribute_keys.dart';
import 'package:network_proxy/network/util/file_read.dart';
import 'package:network_proxy/network/util/request_rewrite.dart';
import 'channel.dart';
@@ -84,7 +84,7 @@ class HttpChannelHandler extends ChannelHandler<HttpRequest> {
response.headers.set("Content-Disposition", 'inline;filename=ProxyPinCA.crt');
response.headers.set("Connection", 'close');
var body = await rootBundle.load('assets/certs/ca.crt');
var body = await FileRead.read('assets/certs/ca.crt');
response.headers.set("Content-Length", body.lengthInBytes.toString());
if (request.method == HttpMethod.head) {

View File

@@ -5,6 +5,8 @@ import 'dart:math';
import 'package:basic_utils/basic_utils.dart';
import 'package:network_proxy/network/util/x509.dart';
import 'file_read.dart';
Future<void> main() async {
await CertificateManager.getCertificateContext('www.jianshu.com');
CertificateManager.caCert.tbsCertificateSeqAsString;
@@ -78,14 +80,12 @@ class CertificateManager {
return;
}
//从项目目录加入ca根证书
// var caPem = await rootBundle.loadString('assets/certs/ca.crt');
var caPem = await File('assets/certs/ca.crt').readAsString();
var caPem = await FileRead.readAsString('assets/certs/ca.crt');
_caCert = X509Utils.x509CertificateFromPem(caPem);
//根据CA证书subject来动态生成目标服务器证书的issuer和subject
//从项目目录加入ca私钥
// var privateBytes = await rootBundle.load('assets/certs/ca_private.der');
var privateBytes = await File('assets/certs/ca_private.der').readAsBytes();
var privateBytes = await FileRead.read('assets/certs/ca_private.der');
_caPriKey = CryptoUtils.rsaPrivateKeyFromDERBytes(privateBytes.buffer.asUint8List());
_initialized = true;

View File

@@ -0,0 +1,13 @@
import 'package:flutter/services.dart';
class FileRead {
static Future<String> readAsString(String file) async {
return rootBundle.loadString(file);
// return File(file).readAsString();
}
static Future<Uint8List> read(String file) async {
return rootBundle.load(file).then((bateData) => bateData.buffer.asUint8List());
// return File(file).readAsBytes();
}
}

View File

@@ -6,8 +6,7 @@ class SystemProxy {
if (Platform.isMacOS) {
_setProxyServerMacOS("127.0.0.1:$port", enableSsl);
} else if (Platform.isWindows) {
_setProxyServerWindows("127.0.0.1:$port");
setProxyEnableWindows(true);
_setProxyServerWindows("127.0.0.1:$port").then((value) => setProxyEnableWindows(true));
}
}

View File

@@ -63,7 +63,7 @@ class X509Generate {
// Add Validity
var validitySeq = ASN1Sequence();
validitySeq.add(ASN1UtcTime(DateTime.now().toUtc()));
validitySeq.add(ASN1UtcTime(DateTime.now().subtract(const Duration(days: 3)).toUtc()));
validitySeq.add(ASN1UtcTime(DateTime.now().add(Duration(days: days)).toUtc()));
data.add(validitySeq);

View File

@@ -30,13 +30,6 @@ class _SocketLaunchState extends State<SocketLaunch> with WindowListener {
super.dispose();
}
@override
void onWindowMinimize() {
started = false;
widget.proxyServer.stop();
setState(() {});
}
@override
void onWindowClose() {
started = false;

View File

@@ -26,7 +26,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
FlutterWindow window(project);
Win32Window::Point origin(10, 10);
Win32Window::Size size(960, 800);
Win32Window::Size size(980, 680);
if (!window.Create(L"ProxyPin", origin, size)) {
return EXIT_FAILURE;
}