Skip to content

Commit 681018c

Browse files
committed
修复 部分程序启动错误
1 parent f7461a8 commit 681018c

File tree

4 files changed

+15
-19
lines changed

4 files changed

+15
-19
lines changed

Core.Window/AppTools.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,8 @@ internal static void AppSolverA(ConcurrentDictionary<string, SearchViewItem> col
322322
((Shell32.IShellLinkW)link).GetPath(sb, sb.Capacity, out data, 0);
323323
var argSb = new StringBuilder(260);
324324
link.GetArguments(argSb, argSb.Capacity);
325+
var workingDirectorySb = new StringBuilder(260);
326+
link.GetWorkingDirectory(workingDirectorySb, workingDirectorySb.Capacity);
325327
var arg = argSb.Length > 0 ? argSb.ToString() : null;
326328
if (arg != null && arg.Contains('%'))
327329
{
@@ -417,7 +419,8 @@ internal static void AppSolverA(ConcurrentDictionary<string, SearchViewItem> col
417419
PinyinItem = _pinyinProcessor.GetPinyin(localizedName,true),
418420
IsVisible = true, ItemDisplayName = localizedName,
419421
OnlyKey = fullName, IsStared = star, Arguments = arg,
420-
FileType = FileType.应用程序, Icon = null
422+
FileType = FileType.应用程序, Icon = null,
423+
StartDirectory = workingDirectorySb.ToString()
421424
});
422425
}
423426

Core.Window/SearchItemTool.cs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void OpenFile(SearchViewItem? searchViewItem)
2828
try
2929
{
3030
var bitmap = ((IClipboardService)ServiceManager.Services!.GetService(typeof(IClipboardService))!)
31-
.GetImage();
31+
.GetImage();
3232
var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
3333
var timeStamp = Convert.ToInt64(ts.TotalMilliseconds);
3434
var f = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads\\Kitopia" +
@@ -43,7 +43,7 @@ public void OpenFile(SearchViewItem? searchViewItem)
4343
{
4444
Log.Error("剪贴板图片保存失败");
4545
((IToastService)ServiceManager.Services.GetService(typeof(IToastService))!)
46-
.Show("剪贴板", "剪贴板图片保存失败");
46+
.Show("剪贴板", "剪贴板图片保存失败");
4747
return;
4848
}
4949

@@ -61,11 +61,11 @@ public void OpenFile(SearchViewItem? searchViewItem)
6161
break;
6262
case FileType.自定义情景:
6363
CustomScenarioManger.CustomScenarios
64-
.FirstOrDefault((e) => $"CustomScenario:{e.UUID}" == searchViewItem.OnlyKey)?.Run();
64+
.FirstOrDefault((e) => $"CustomScenario:{e.UUID}" == searchViewItem.OnlyKey)?.Run();
6565
break;
6666
case FileType.便签:
6767
((ILabelWindowService)ServiceManager.Services.GetService(typeof(ILabelWindowService))!)
68-
.Show(searchViewItem.OnlyKey);
68+
.Show(searchViewItem.OnlyKey);
6969
break;
7070
case FileType.自定义:
7171
searchViewItem.Action?.Invoke(searchViewItem);
@@ -109,17 +109,10 @@ public void OpenFile(SearchViewItem? searchViewItem)
109109
break;
110110
}
111111
default:
112-
if (searchViewItem.Arguments == null)
113-
{
114-
Shell32.ShellExecute(IntPtr.Zero, "open", "explorer.exe", searchViewItem.OnlyKey, searchViewItem.OnlyKey.Remove(searchViewItem.OnlyKey.LastIndexOf('\\')),
115-
ShowWindowCommand.SW_NORMAL);
116-
}
117-
else
118-
{
119-
Shell32.ShellExecute(IntPtr.Zero, "open", "explorer.exe",
120-
$"{searchViewItem.OnlyKey} {searchViewItem.Arguments}", searchViewItem.OnlyKey.Remove(searchViewItem.OnlyKey.LastIndexOf('\\')),
121-
ShowWindowCommand.SW_SHOWNORMAL);
122-
}
112+
113+
Shell32.ShellExecute(IntPtr.Zero, "open", searchViewItem.OnlyKey, searchViewItem.Arguments, searchViewItem.StartDirectory,
114+
ShowWindowCommand.SW_NORMAL);
115+
Log.Debug($"打开指定内容{searchViewItem.OnlyKey}_{searchViewItem.Arguments}_{searchViewItem.StartDirectory}");
123116

124117
break;
125118
}
@@ -365,7 +358,7 @@ public void OpenFolderInTerminal(SearchViewItem? item)
365358
public void OpenSearchItemByOnlyKey(string onlyKey)
366359
{
367360
if (((SearchWindowViewModel)ServiceManager.Services!.GetService(typeof(SearchWindowViewModel))!)._collection
368-
.TryGetValue(onlyKey, out var item))
361+
.TryGetValue(onlyKey, out var item))
369362
{
370363
OpenFile(item);
371364
}

KitopiaAvalonia/KitopiaAvalonia.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<ApplicationIcon>Assets\icon.ico</ApplicationIcon>
2929
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
3030
<DebugType Condition="'$(Configuration)' == 'Release'">none</DebugType>
31-
<Version>0.0.2.043</Version>
31+
<Version>0.0.2.044</Version>
3232
</PropertyGroup>
3333
<ItemGroup>
3434
<AvaloniaResource Include="Assets\FluentSystemIcons-Filled.ttf"/>

PluginCore

0 commit comments

Comments
 (0)