mirror of
https://github.com/fanchenio/DawnLauncher.git
synced 2025-07-13 12:52:10 +08:00
修复某些情况下'以管理员身份启动'没有生效的问题、优化'新增/编辑项目'时'以管理员身份运行'显示逻辑。
This commit is contained in:
parent
0c2ae8ae5b
commit
d4520eef0c
@ -327,6 +327,9 @@ function run(
|
||||
item: Item
|
||||
) {
|
||||
if (item.data) {
|
||||
if (operation === "open" && item.data.runAsAdmin) {
|
||||
operation = "runas";
|
||||
}
|
||||
// 更新打开信息
|
||||
updateOpenInfo(type, item.id);
|
||||
// 判断类型
|
||||
|
@ -208,5 +208,5 @@ fn system_item_execute(target: String, params: Option<String>) {
|
||||
#[allow(dead_code)]
|
||||
#[napi]
|
||||
fn has_runas(path: String) -> bool {
|
||||
windows::has_runas(&path)
|
||||
windows::has_runas(path)
|
||||
}
|
||||
|
@ -722,6 +722,13 @@ pub fn shell_execute(
|
||||
start_location: Option<String>,
|
||||
) {
|
||||
thread::spawn(move || {
|
||||
let mut operation = operation;
|
||||
// 判断是否是runas,如果是的话,需要判断文件是否有以管理员身份运行的权限,如果没有改为open
|
||||
if operation == "runas" {
|
||||
if !has_runas(file.clone()) {
|
||||
operation = String::from("open");
|
||||
}
|
||||
}
|
||||
// dir
|
||||
let dir = start_location.unwrap_or_else(|| {
|
||||
// 判断是否是文件夹
|
||||
@ -793,7 +800,7 @@ pub fn system_item_execute(target: &str, params: Option<&str>) {
|
||||
/**
|
||||
* 判断文件是否有以管理员身份运行权限
|
||||
*/
|
||||
pub fn has_runas(path: &str) -> bool {
|
||||
pub fn has_runas(path: String) -> bool {
|
||||
// IShellItem
|
||||
let path = HSTRING::from(path);
|
||||
if let Ok(shell_item) =
|
||||
|
@ -329,9 +329,7 @@
|
||||
v-if="
|
||||
selectedMenuId === 0 &&
|
||||
form.data.target &&
|
||||
form.data.target.trim() !== '' &&
|
||||
(getFileExtname(form.data.target) === 'exe' ||
|
||||
getFileExtname(form.data.target) === 'bat')
|
||||
form.data.target.trim() !== ''
|
||||
"
|
||||
v-model:checked="form.data.runAsAdmin"
|
||||
:focusable="false"
|
||||
@ -459,7 +457,6 @@ import {
|
||||
isAbsolutePath,
|
||||
deleteExtname,
|
||||
getFileName,
|
||||
getFileExtname,
|
||||
} from "../../../commons/utils/common";
|
||||
import SystemItemList from "./components/SystemItemList.vue";
|
||||
import StartMenuItemList from "./components/StartMenuItemList.vue";
|
||||
@ -656,12 +653,6 @@ async function confirm() {
|
||||
if (!success) {
|
||||
return;
|
||||
}
|
||||
// 后缀
|
||||
let ext = getFileExtname(form.data.target);
|
||||
// 如果选中按管理员运行,但是文件类型不是exe和bat就修改为false
|
||||
if (form.data.runAsAdmin && (!ext || (ext !== "exe" && ext !== "bat"))) {
|
||||
form.data.runAsAdmin = false;
|
||||
}
|
||||
if (!id) {
|
||||
// 添加
|
||||
await addItem();
|
||||
|
@ -240,9 +240,9 @@ function runItem(e: any, dbclick: boolean) {
|
||||
let item = getItemById(itemId);
|
||||
if (item && item.data) {
|
||||
if (dbclick && store.setting.item.doubleClickOpen) {
|
||||
run("main", item.data.runAsAdmin ? "runas" : "open", item);
|
||||
run("main", "open", item);
|
||||
} else if (!dbclick && !store.setting.item.doubleClickOpen) {
|
||||
run("main", item.data.runAsAdmin ? "runas" : "open", item);
|
||||
run("main", "open", item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user