vscode-扩展插件-调用系统程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangxuan0261/article/details/84029331

调用系统程序 (windows的exe)

尝试了几个nodejs库 如 child_process , shelljs 等去执行命令, 均失败, 但是用纯js写的就可以执行命令. 一度失望, 让后想到可以使用终端相关api, 在终端中打开, 尝试了一下结果ok啊啊啊!!! 喜大普奔…

以用Markdown编辑器打开Markdown文件为例.

    private mdTml: vscode.Terminal | undefined;
    public async openMarkdown() {
        let doc =  vscode.window.activeTextEditor!.document;
        let path = doc.uri.fsPath;
        if (doc.languageId !== "markdown") {
            Utils.showErrMsg(`不是 Markdown 文件, (${path})`);
            return;
        }
        
        if (this.mdTml === undefined) {
            this.mdTml = vscode.window.createTerminal("TyporaOpen");
        }

        let cmdStr = `Typora ${path}`; // Typora 所在目录必须在环境变量中, 你也可以把它抽出来作为配置
        this.mdTml.show(false);
        this.mdTml.sendText(cmdStr);
    }

	vscode.window.onDidCloseTerminal((terminal) => { // 监听终端被关闭
        if (terminal.name === "TyporaOpen") {
            this.mdTml = undefined;
        }
	});

猜你喜欢

转载自blog.csdn.net/yangxuan0261/article/details/84029331
今日推荐