重启电脑后出现的 Bootstrapper window
Bootstrapper window that appears after restarting the computer
这种行为是如何设置的?我找不到如何禁用引导程序在重新启动时启动。我将安装程序,关闭计算机,第二天,当我启动计算机时,会出现引导程序 window。即使它会卸载引导程序。而当我在测试中多次安装它时,恰好后来我有几个windows。但是这个弹窗不是每次都会有,不知道是什么原因。
编辑
查看 RegisterBegin 之后的日志:
Session begin, registration key:
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4},
options: 0x4, disable resume: No Registering bundle dependency
provider: {bf97c7e8-2ef4-4439-9504-96a7736c10f4}, version: 1.0.120.0
Updating session, registration key:
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4},
resume: Active, restart initiated: No, disable resume: No
你看disable resume: No
,我找不到任何相关信息,但可能会导致应用程序在重启后运行。
编辑2
这是因为引导程序添加寄存器 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce。
但找不到如何关闭它。
最终,这样做的原因是为引导程序添加了 RunOnce 注册表。网上写着,根据开发者的说法,这是对安装成功的确认。但就我而言,这对我来说是不必要的,因为我自己进行 post-configuration 测试。为了防止这种情况,我连接到 OnRegisterComplete 事件并删除了所有包含我的安装程序名称的寄存器。
但是,这需要 运行 具有管理权限的引导程序。
private void OnRegisterComplete(object sender, RegisterCompleteEventArgs e)
{
try
{
string registryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce";
RegistryKey key32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
RegistryKey key = key32.OpenSubKey(registryKey, true);
if (key != null)
{
var names = key.GetValueNames();
for (int i = 0; i < names.Length; i++)
{
var value = key.GetValue(names[i]);
if (value.ToString().Contains("NameInstaller.exe"))
key.DeleteValue(names[i]);
}
key.Close();
}
}
catch (Exception ex)
{
}
}
这种行为是如何设置的?我找不到如何禁用引导程序在重新启动时启动。我将安装程序,关闭计算机,第二天,当我启动计算机时,会出现引导程序 window。即使它会卸载引导程序。而当我在测试中多次安装它时,恰好后来我有几个windows。但是这个弹窗不是每次都会有,不知道是什么原因。
编辑
查看 RegisterBegin 之后的日志:
Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4}, options: 0x4, disable resume: No Registering bundle dependency provider: {bf97c7e8-2ef4-4439-9504-96a7736c10f4}, version: 1.0.120.0 Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{bf97c7e8-2ef4-4439-9504-96a7736c10f4}, resume: Active, restart initiated: No, disable resume: No
你看disable resume: No
,我找不到任何相关信息,但可能会导致应用程序在重启后运行。
编辑2
这是因为引导程序添加寄存器 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce。
但找不到如何关闭它。
最终,这样做的原因是为引导程序添加了 RunOnce 注册表。网上写着,根据开发者的说法,这是对安装成功的确认。但就我而言,这对我来说是不必要的,因为我自己进行 post-configuration 测试。为了防止这种情况,我连接到 OnRegisterComplete 事件并删除了所有包含我的安装程序名称的寄存器。
但是,这需要 运行 具有管理权限的引导程序。
private void OnRegisterComplete(object sender, RegisterCompleteEventArgs e)
{
try
{
string registryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce";
RegistryKey key32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
RegistryKey key = key32.OpenSubKey(registryKey, true);
if (key != null)
{
var names = key.GetValueNames();
for (int i = 0; i < names.Length; i++)
{
var value = key.GetValue(names[i]);
if (value.ToString().Contains("NameInstaller.exe"))
key.DeleteValue(names[i]);
}
key.Close();
}
}
catch (Exception ex)
{
}
}