alroyso 1 year ago
parent
commit
49dab265e5
1 changed files with 66 additions and 0 deletions
  1. 66 0
      lib/app/controller/GlobalController.dart

+ 66 - 0
lib/app/controller/GlobalController.dart

@@ -1,4 +1,5 @@
 import 'dart:io';
+import 'package:flutter/services.dart';
 import 'package:flutter/widgets.dart';
 import 'package:get/get.dart';
 import 'package:naiyouwl/app/bean/proxie.dart';
@@ -37,6 +38,7 @@ class GlobalController extends GetxController {
   var tunProxySwitchIng = false.obs;
   bool allowStatusUpdate = false;
   final _wlBaseHelpPlugin = WlBaseHelp();
+  var sysInfo = ''.obs;
 
   final selectedNode = Rx<NodeMode?>(null);
   // 策略组
@@ -81,12 +83,76 @@ class GlobalController extends GetxController {
     //await controllers.service.serviceModeSwitch(true);
     // init clash core
 
+    //判断clash 程序是否在启动中,如果是可以先停止
+
      await controllers.service.initClashCoreConfig();
      if (controllers.service.coreStatus.value != RunningState.running) return;
      await controllers.core.updateVersion();
     //initRegularlyUpdate();
   }
 
+  // Platform messages are asynchronous, so we initialize in an async method.
+  Future<void> platformState() async {
+    String platformVersion;
+    if(Platform.isWindows){
+      try {
+        platformVersion =
+            await _wlBaseHelpPlugin.getPlatformVersion() ?? 'Unknown platform version';
+      } on PlatformException {
+        platformVersion = 'Failed to get platform version.';
+      }
+      sysInfo.value = platformVersion;
+    }
+    else {
+      sysInfo.value = '';
+    }
+
+  }
+
+  Future<void> onRunAdmin() async {
+    if(Platform.isWindows){
+      String isRunadminErore;
+      try {
+        isRunadminErore = await _wlBaseHelpPlugin.runAsAdministrator() ?? 'error';
+      } on PlatformException {
+        isRunadminErore = 'error';
+      }
+    }
+
+  }
+
+  Future<void> onIsRunAdmin() async {
+    if(Platform.isWindows){
+      bool isAdmin;
+      try {
+        isAdmin = await _wlBaseHelpPlugin.isRunningAsAdmin() ?? false;
+      } on PlatformException {
+        isAdmin = false;
+      }
+    }
+  }
+
+  Future<void> onIsProcessRunning(String passName) async {
+    if(Platform.isWindows){
+      bool isRun;
+      try {
+        isRun = await _wlBaseHelpPlugin.isProcessRunning(passName) ?? false;
+      } on PlatformException {
+        isRun = false;
+      }
+    }
+
+  }
+
+  Future<void> onkillProcess(String passName) async {
+
+    try {
+      await _wlBaseHelpPlugin.killProcess(passName);
+    } on PlatformException {
+
+    }
+
+  }
   void updateMsg(String msg) {
     msgStatus.value = msg;
   }