我正在使用的公司有一个用你的vb6编写的程序,它经常更新,并且大多数客户端从映射的网络驱动器运行可执行文件.这实际上几乎没有问题,其中最大的问题是自动更新.目前,updater程序(用c ++编写)重命名现有的exe,然后下载并将新版本放入旧版本的位置.这通常很好,但在某些环境中它只是失败了.
解决方案是从microsoft运行此命令:
for /f "skip=4 tokens=1" %a in ('net files') do net files %a /close
Run Code Online (Sandbox Code Playgroud)
此命令将关闭所有共享的网络文件(大多数),然后更新程序可以替换exe.
在C++中,我可以使用该System("");函数来运行该命令,或者我可以重定向输出net files,并遍历查找有问题的特定文件的结果并运行net file /close命令来关闭它们.但是,如果winapi功能具有类似的功能以获得更好的可靠性和未来的安全性,那将会更好.
有没有办法让我以编程方式查找所有网络共享文件并关闭相关文件?
child_process.fork从 vscode 调试进程执行失败并返回退出代码 12。从终端会话运行相同的测试成功。
import { expect } from 'chai';
import { fork } from 'child_process';
import path from 'path';
describe('Child Process Fork', () => {
it('Successfully Forks A Simple Process', (done) => {
const child = fork(path.join(__dirname, 'SimplyExit.js'), [], { stdio: 'pipe' });
child.on('exit', (data) => {
expect(data).to.equal(0);
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
process.exit(0);
Run Code Online (Sandbox Code Playgroud) StatusBarIOS 有一个方法addListener可以让我们监听状态栏高度的变化,如下所示:
StatusBarIOS.addListener('statusBarFrameWillChange', (statusBarData) => {
this.setState({statusBarHeight: statusBarData.frame.height});
});
Run Code Online (Sandbox Code Playgroud)
StatusBarIOS 已弃用,并显示代码已合并到 StatusBar 的消息
我们如何收听该statusBarFrameWillChange事件?