张瑞宁 9 months ago
commit eb317219a7

@ -11,66 +11,43 @@ app.use(cors());
app.use(bodyParser.json()); app.use(bodyParser.json());
// window系统下创建快捷方式接口 // window系统下创建快捷方式接口
// app.post('/createShortcut', (req, res) => {
// // folderPath存放的路径 shortcutName 快捷方式名称 shortcutURL 快捷方式的访问地址
// const { folderPath, shortcutName, shortcutURL } = req.body;
// // 检查是否缺少任何一个值
// if (!folderPath || !shortcutName || !shortcutURL) {
// return res.status(400).send('少了参数!');
// }
// // 创建文件夹(如果不存在)
// if (!fs.existsSync(folderPath)) {
// fs.mkdirSync(folderPath, { recursive: true });
// }
// const shortcutFilePath = path.join(folderPath, `${shortcutName}.url`);
// // 删除旧的快捷方式文件(如果存在)
// if (fs.existsSync(shortcutFilePath)) {
// fs.unlinkSync(shortcutFilePath);
// }
// // 创建快捷方式
// const shortcutFolderPath = path.join(folderPath, shortcutName + '.url');
// const shortcutFileContent = `[InternetShortcut]\nURL=${shortcutURL}`;
// fs.writeFile(shortcutFolderPath, shortcutFileContent, (err) => {
// if (err) {
// console.error(err);
// res.status(500).send('安装失败!');
// } else {
// res.status(200).send('安装成功!');
// }
// });
// });
// linux系统下创建快捷方式接口
app.post('/createShortcut', (req, res) => { app.post('/createShortcut', (req, res) => {
const { // folderPath存放的路径 shortcutName 快捷方式名称 shortcutURL 快捷方式的访问地址
folderPath, const { folderPath, shortcutName, shortcutURL } = req.body;
shortcutName,
shortcutURL
} = req.body;
// 检查是否缺少任何一个值
if (!folderPath || !shortcutName || !shortcutURL) { if (!folderPath || !shortcutName || !shortcutURL) {
return res.status(400).send('少了参数!'); return res.status(400).send('少了参数!');
} }
// 创建文件夹(如果不存在)
if (!fs.existsSync(folderPath)) { if (!fs.existsSync(folderPath)) {
fs.mkdirSync(folderPath, { fs.mkdirSync(folderPath, { recursive: true });
recursive: true
});
} }
const shortcutLinkPath = path.join(folderPath, shortcutName); // window下用.url
// const shortcutFilePath = path.join(folderPath, `${shortcutName}.url`);
// linux中用.desktop
const shortcutFilePath = path.join(folderPath, `${shortcutName}.desktop`);
if (fs.existsSync(shortcutLinkPath)) { // 删除旧的快捷方式文件(如果存在)
fs.unlinkSync(shortcutLinkPath); if (fs.existsSync(shortcutFilePath)) {
fs.unlinkSync(shortcutFilePath);
} }
fs.symlink(shortcutURL, shortcutLinkPath, 'file', (err) => { // window下创建快捷方式
// const shortcutFolderPath = path.join(folderPath, shortcutName + '.url');
// const shortcutFileContent = `[InternetShortcut]\nURL=${shortcutURL}`;
// linux下创建快捷方式
const shortcutFolderPath = path.join(folderPath, `${shortcutName}.desktop`);
const shortcutFileContent = `[Desktop Entry]
Type=Application
Name=${shortcutName}
Exec=/usr/bin/chromium-browser ${shortcutURL}
Icon=/usr/share/icons/hicolor/48x48/apps/chromium-browser.png`;
fs.writeFileSync(shortcutFolderPath, shortcutFileContent, (err) => {
if (err) { if (err) {
console.error(err); console.error(err);
res.status(500).send('安装失败!'); res.status(500).send('安装失败!');
@ -79,46 +56,8 @@ app.post('/createShortcut', (req, res) => {
} }
}); });
// // 快捷方式的配置 // 设置文件权限为可执行
// const config = { fs.chmodSync(shortcutFolderPath, 0o755); // 0o755 表示 rwxr-xr-x 权限,即所有者可读写执行,其他用户可读执行
// name: shortcutName,
// exec: 'x-www-browser',
// // icon: '/path/to/favicon.png', // 图标路径,可选
// icon: '',
// url: shortcutURL,
// terminal: false,
// type: 'Application',
// categories: 'Network;WebBrowser;'
// };
// // 快捷方式文件内容
// let desktopFileContent = `[Desktop Entry]
// Name=${config.name}
// Exec=${config.exec} ${config.url}
// Type=${config.type}
// Icon=${config.icon || ''}
// Terminal=${config.terminal}
// Categories=${config.categories}
// Comment=Open ${config.name} in your web browser`;
// // 如果有图标路径,确保图标文件存在
// // if (config.icon && !fs.existsSync(config.icon)) {
// // console.error('Icon file does not exist.');
// // process.exit(1);
// // }
// // 创建快捷方式文件
// fs.writeFile(shortcutLinkPath, desktopFileContent, 'utf8', function (err) {
// if (err) {
// console.error(err);
// res.status(500).send('安装失败!');
// } else {
// res.status(200).send('安装成功!');
// }
// });
}); });
// 运行项目 需要进入到当前的文件夹目录打开终端 执行 node nodeService.js // 运行项目 需要进入到当前的文件夹目录打开终端 执行 node nodeService.js

@ -175,9 +175,13 @@ const InstallExe: FC<PageProps> = ({ }) => {
let info = JSON.parse(sysData); let info = JSON.parse(sysData);
info.installExe[index].select = true; info.installExe[index].select = true;
localStorage.setItem(`${urlParams?.fileType}`, JSON.stringify(info)); localStorage.setItem(`${urlParams?.fileType}`, JSON.stringify(info));
if (text == '安装失败!') {
message.error(text)
}else {
message.success(text) message.success(text)
} }
} }
}
// 取消选中 // 取消选中
const uncheck = (name: any) => { const uncheck = (name: any) => {

Loading…
Cancel
Save