你可以这样做:
在您的主要方法中:
if ((args.Length > 0 && args[0].ToLower() == "minimized") ||
(AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0 &&
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0] == "minimized"))//ClickOnce arguments
{
//My code to start minimized. My system tray is always visible
main.WindowState = FormWindowState.Minimized;
main.Hide();
main.ShowInTaskbar = false;
}
else {
//Code to start normally
main.WindowState = FormWindowState.Normal;
main.ShowInTaskbar = true;
main.Show();
}
然后,您可以通过 ClickOnce 应用程序传递“最小化”参数以将其最小化。
为了自动启动我的 ClickOnce 应用程序,我创建了一个这样的快捷方式:
CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Programs) + @"\LVH Tools\MyMiniTools.appref-ms", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\MyMiniTools", "minimized")
“MyMiniTools”是应用程序的名称,“LVH Tools”是发布者的名称。
创建快捷方式:
public void CreateShortcut(string destinationPath, string shortcutPath, string arguments = "")
{
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
shortcutPath = Path.ChangeExtension(shortcutPath, "lnk");
IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(shortcutPath);
shortcut.TargetPath = destinationPath;
shortcut.IconLocation = destinationPath;
shortcut.Arguments = arguments;
shortcut.Description = Path.GetFileNameWithoutExtension(destinationPath);
shortcut.Save();
}
另一种使用 ClickOnce 启用自动启动的方法在ClickOnce 应用程序自动启动和完全卸载或自定义 ClickOnce 安装的方式中进行了说明。