我希望我的 flutter windows 应用程序在系统启动时自动启动。
我使用 win32 包来实现此目的,它可以在 Windows 10 上运行。但在 Windows 11 上,不会创建任何注册表项。
我还在启动应用程序文件夹中添加了exe的快捷方式,但仍然不起作用。
我禁用了后卫,禁用了安全启动,没有运气。
如有任何建议,我们将不胜感激。
win32 用法:
void addApplicationToStartup() {
var path = Platform.resolvedExecutable;
final key = 'Software\\Microsoft\\Windows\\CurrentVersion\\Run';
final hkey = calloc<HKEY>();
final lpKey = TEXT(key);
final lpValueName = "MyApp".toNativeUtf16();
final lpData = path.toNativeUtf16();
try {
// Open the registry key
final result = RegOpenKeyEx(
HKEY_CURRENT_USER, lpKey, 0, KEY_WRITE, hkey);
if (result != ERROR_SUCCESS) {
throw WindowsException(result);
}
// Set the registry value
final result2 = RegSetValueEx(
hkey.value,
lpValueName,
0,
REG_SZ,
lpData.cast<Uint8>(),
(path.length + 1) * sizeOf<Uint16>());
if (result2 != ERROR_SUCCESS) {
throw WindowsException(result2);
}
print('Application added to startup successfully.');
} finally {
// Clean up
free(hkey);
free(lpData);
free(lpKey);
free(lpValueName);
}
}
我解决了这个问题。问题是我试图添加我的应用程序来启动需要提升权限的应用程序。删除提升的权限要求后,该应用程序被添加到启动。