使用Clash for Windows节点管理

rrmb3557661 2026-09-18 好用的VPN 32 0

初始化节点管理

在主方法 InitializeNodeManager 中初始化节点管理:

public class NodeManager {
    private Node nodes;
    private Node[] nodesList = new Node[];  // 用于存储节点列表
    private int nodeIndex = 0;
    public NodeManager() {
        InitializeNodeManager();
    }
    public void InitializeNodeManager() {
        // 获取当前节点列表
        var currentNodes = System.Math.GetNodes();
        // 初始化节点列表
        nodesList = new Node[currentNodes.Length];
        // 创建节点
        for (int i = 0; i < currentNodes.Length; i++) {
            var node = new Node();
            nodesList[i].ID = i;
            nodesList[i].Name = currentNodes[i].Name;
            nodesList[i].Host = currentNodes[i].Host;
            nodesList[i].Port = currentNodes[i].Port;
            nodesList[i].AutoRun = true;
            nodesList[i].AutoMode = "Manual";
            nodesList[i].AutoSize = true;
            nodesList[i].AutoDelete = true;
            nodesList[i].AutoDeleteWindow = true;
            nodesList[i].AutoDeleteFile = true;
            nodesList[i].AutoDeleteFile2 = true;
            nodesList[i].NameReplace = true;
            nodesList[i].AutoDeleteSize = true;
            nodesList[i].AutoDeleteDelete = true;
            nodesList[i].AutoDeleteDeleteWindow2 = true;
            nodesList[i].AutoDeleteDeleteFile = true;
            nodesList[i].AutoDeleteDeleteFile2 = true;
            nodesList[i].AutoDeleteDeleteDelete = true;
            nodesList[i].AutoDeleteDeleteDelete = true;
            // 添加节点到节点列表
            nodesList[i] = new Node();
        }
    }
    public Node AddNode(string nodeName, bool autosave = true) {
        // 检查节点是否已存在
        int index = nodesList.FindIndex(n => n.Name == nodeName);
        if (index != -1) {
            // 删除旧节点
            nodesList[index] = null;
            // 创建新的节点
            var newNode = new Node();
            newNode.Name = nodeName;
            newNodeHost = currentNodes[index].Host;
            newNode.Port = currentNodes[index].Port;
            newNode.AutoRun = (int)currentNodes[index].AutoRun;
            newNode.AutoMode = (int)currentNodes[index].AutoMode;
            newNode.AutoSize = (int)currentNodes[index].AutoSize;
            newNode.AutoDelete = (int)currentNodes[index].AutoDelete;
            newNode.AutoDeleteWindow = (int)currentNodes[index].AutoDeleteWindow;
            newNode.AutoDeleteFile = (int)currentNodes[index].AutoDeleteFile;
            newNode.AutoDeleteDelete = (int)currentNodes[index].AutoDeleteDelete;
            newNode.AutoDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteWindow;
            newNode.AutoDeleteDeleteFile = (int)currentNodes[index].AutoDeleteDeleteFile;
            newNode.AutoDeleteDeleteDelete = (int)currentNodes[index].AutoDeleteDeleteDelete;
            newNode.AutoDeleteDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteDeleteWindow;
            newNode.AutoDeleteDeleteDeleteFile = (int)currentNodes[index].AutoDeleteDeleteDeleteFile;
            newNode.AutoDeleteDeleteDeleteDelete = (int)currentNodes[index].AutoDeleteDeleteDeleteDelete;
            newNode.AutoDeleteDeleteDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteDeleteDeleteWindow;
            newNode.AutoDeleteDeleteDeleteDeleteFile = (int)currentNodes[index].AutoDeleteDeleteDeleteDeleteFile;
            newNode.NameReplace = (int)currentNodes[index].NameReplace;
            newNode.AutoDeleteSize = (int)currentNodes[index].AutoDeleteSize;
            newNode.AutoDeleteDelete = (int)currentNodes[index].AutoDeleteDelete;
            newNode.AutoDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteWindow;
            newNode.AutoDeleteDeleteDelete = (int)currentNodes[index].AutoDeleteDeleteDelete;
            newNode.AutoDeleteDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteDeleteWindow;
            newNode.AutoDeleteDeleteDeleteDelete = (int)currentNodes[index].AutoDeleteDeleteDeleteDelete;
            newNode.AutoDeleteDeleteDeleteDeleteWindow = (int)currentNodes[index].AutoDeleteDeleteDeleteDeleteWindow;
            newNode.AutoDeleteDeleteDeleteDeleteFile = (int)currentNodes[index].AutoDeleteDeleteDeleteDeleteFile;
            newNode.AutoDeleteDeleteDeleteDeleteDelete = (int)currentNodes[index].AutoDeleteDeleteDeleteDeleteDelete;
            // 删除旧节点
            nodesList[index] = null;
        } else {
            // 添加新的节点
            nodesList[index] = new Node();
        }
    }
}
// 示例:添加节点
Clash for Windows节点管理示例:
```csharp
// 初始化节点管理
InitializeNodeManager();
// 添加节点
AddNode("C:\ computers \ windows 1\ user\default\default");

访问节点属性

通过节点的ID访问其属性:

var node = nodesList[];
var name = node.Name;  // "C:\ computers \ windows 1\ user\default\default"
var host = node.Host;  // "192.168.1.1"
var port = node.Port;  // 22
var autoRun = node.AutoRun;  // true

配置节点

通过配置节点的属性来管理其行为:

  • AutoRun:控制节点是否自动运行。
  • AutoMode:控制节点如何管理资源(如删除)。
  • AutoSize:控制节点的大小是否自动调整。
  • AutoDelete:控制节点是否自动删除。

使用示例

以下是一个示例代码,用于在主窗口中添加节点:

using (System.Collections.Generic blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds blinds

使用Clash for Windows节点管理

上一篇:
扫码下载FANVPN

扫码下载FANVPN

0574-8716-4308
扫码下载FANVPN

扫码下载FANVPN

网站地图