Node.js 在Electron中生成的应用程序将在Electron应用程序窗口后面而不是前面打开对话框

Node.js 在Electron中生成的应用程序将在Electron应用程序窗口后面而不是前面打开对话框,node.js,printing,dialog,electron,Node.js,Printing,Dialog,Electron,我有一个以前用Flex和AIR编写的应用程序。此应用程序将使用启动三个子进程。两个是DotNet应用程序,一个是javaapplet。当AIR启动应用程序时,它们将在task manager的“详细信息”选项卡中显示为单个进程,并在“进程”选项卡中显示为AIR应用程序的子进程,如下所示 POSPrint应用程序是我们向其发送请求的打印应用程序,在发送请求时,如果未设置默认打印机,它将打开标准windows对话框以选择打印机,您可以正常单击“取消”或“确定” 我们正在将此应用程序迁移到电子和角

我有一个以前用Flex和AIR编写的应用程序。此应用程序将使用启动三个子进程。两个是DotNet应用程序,一个是javaapplet。当AIR启动应用程序时,它们将在task manager的“详细信息”选项卡中显示为单个进程,并在“进程”选项卡中显示为AIR应用程序的子进程,如下所示

POSPrint应用程序是我们向其发送请求的打印应用程序,在发送请求时,如果未设置默认打印机,它将打开标准windows对话框以选择打印机,您可以正常单击“取消”或“确定”

我们正在将此应用程序迁移到电子和角度

最初,我使用一个名为cross spawn的节点模块生成进程,但由于某些原因,我们在向生成的应用程序发送请求时遇到问题,它将接收请求,但随后它将不做任何处理

然后,我们使用普通节点child_进程模块并使用execFile启动应用程序。这允许我们发送请求(实际上,我们将http请求作为中间件发送到java小程序,java小程序与POSPrint通信)。这些请求正在到达POSPrint,现在使用这种启动应用程序的方法启动对话框。问题是,在Electron应用程序中,对话框在Electron应用程序后面打开,用户必须alt+tab或移动窗口才能看到对话框

起初,人们认为这是因为我们使用64位Electron并启动了一个32位POSPrint应用程序,但在我们创建了一个32位版本之后,我们仍然无法让对话框显示在前面。我们还尝试了通过spawn和exec生成进程的其他方法,但该对话框永远不会在Electron应用程序面前打开