electron 弹出软键盘 / 执行c#代码

2024-01-08 14:42:21

1.弹出软键盘

Electron Main Process 模块介绍—ipcMainshell

Electron的主进程mian.js代码中 添加ipc通道消息:

  ipcMain.on('open-osk', async (event) => {
    await shell.openPath('osk');
    //异步返回消息
    event.reply("osk-start",[true])
  });

js发消息调用:

  window.electron?.ipcRenderer.on("osk-start",async (_,args)=>{
    console.log("执行结果"+args[0]);
  })
function openosk(){
  window.electron?.ipcRenderer.send("osk");
}

2.执行C#代码

安装electron-edge-js库:

npm install electron-edge-js
const edge = require('electron-edge-js');

// 自定义C#函数、执行cmd 命令-如打开软键盘
const openWindowsKeyboard = edge.func(`
    async (input) => {
        // 引入System.Diagnostics命名空间
        var process = new System.Diagnostics.Process();

        // 设置要执行的命令和参数
        process.StartInfo.FileName = "cmd.exe";
        process.StartInfo.Arguments = "/C osk"; // osk为打开软键盘的命令

        // 启动进程
        process.Start();

        // 等待进程退出并返回结果
        process.WaitForExit();
        return null;
    }
`);

//同样使用 Electron ipcMain 消息通道来调用方法:
  ipcMain.on('open-osk', async (event) => {       
    openWindowsKeyboard(null, (error, result) => {
      console.log(error,result);
      if (error) {
        console.error(error);
        event.reply("osk-start",[false])
      } else {
        event.reply("osk-start",[true])
        console.log("osk is open");
      }
    });
  });

文章来源:https://blog.csdn.net/qq_32698323/article/details/135453135
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。