我想知道是否有可能在程序第一次启动时调用事件或方法,显然是第一次。这可能在C#中完成吗?如果可以的话,可以有人展示一些如何实现的例子如何在首次启动C#程序时运行方法或事件?
回答
你可以通过指定一些锁定文件的DelayUntilReboot
标志使用MoveFileEx本地方法:
class Program
{
[Flags]
enum MoveFileFlags
{
None = 0,
ReplaceExisting = 1,
CopyAllowed = 2,
DelayUntilReboot = 4,
WriteThrough = 8,
CreateHardlink = 16,
FailIfNotTrackable = 32,
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
static extern bool MoveFileEx(
string lpExistingFileName,
string lpNewFileName,
MoveFileFlags dwFlags
);
static void Main()
{
string lockFile = "foo.dat";
if (!File.Exists(lockFile))
{
// that's a first run after the reboot => create the file
File.WriteAllText(lockFile, "");
// Mark the file for deletion after reboot
MoveFileEx(lockFile, null, MoveFileFlags.DelayUntilReboot);
Console.WriteLine("it's a first run");
}
else
{
// that's a consecutive run
Console.WriteLine("it's a consecutive run");
}
}
}
嗨,这适用于控制台应用程序,但我怎么能在Windows窗体应用程序中使用它? – Dennis 2011-06-15 20:30:08
@Dennis,在WinForms应用程序中,你仍然有一个Program.cs启动器和一个'Main'方法,不是吗?因此,在创建主窗体之前,只需将此代码放在那里。或者你也可以把它放在主窗体的构造函数中,但这会很浪费,因为如果应用程序不能运行,你可能不需要等太多的东西来终止它。 – 2011-06-15 20:31:47
啊,我明白了,好吧,我设法让它在GUI应用程序(几乎!)中工作,但我得到这个错误:名称'MoveFileEx'在当前上下文中不存在。我缺少哪个命名空间? – Dennis 2011-06-15 20:34:44
- 1. 如何配置C#程序在首次启动操作系统时运行?
- 2. 如何在首次启动应用程序时访问任何方法
- 3. 如何在每个应用程序启动时运行一次方法?
- 4. 如何在首次启动时运行代码?
- 5. 如何在应用程序启动时运行一次?
- 6. 如何在首次启动应用程序时显示UIViewController?
- 7. 如何在首次启动应用程序时显示页面
- 8. 在启动/启动时自动启动应用程序的首选方法?
- 9. WebView在首次启动应用程序时无法登录
- 10. 在首次启动时执行应用程序指令
- 11. 如何在首次启动应用程序时显示UIAlertView(或UIView)?
- 12. 如何在wxpython启动GUI程序后立即运行事件?
- 13. 启动时运行c程序
- 14. JVM/Java强制应用程序在首次启动时运行较慢,Windows 8?
- 15. Spring首次或Spring启动
- 16. iCloud启用时首次启动iOS应用程序时冻结
- 17. 如何在启动骡子时自动运行一次流程?
- 18. 如何在Android应用程序首次启动时下载本地化文件
- 19. GPS在点击“确定”后首次运行时不会启动
- 20. Android Maps v2仅在首次启动时运行
- 21. C#Debug.log在方法首次启动后停止打印信息
- 22. 如何向C#应用程序首次启动时向SQL Server输入数据
- 23. 应用程序运行时首次运行活动正在显示
- 24. 如何仅在首次启动时使用启动画面?
- 25. 在屏幕启动时运行方法
- 26. 如何追踪应用程序首次在Android中启动?
- 27. 如何在计算机启动时以编程方式运行.exe文件? c#
- 28. Netbeans CUnit每次启动应用程序时运行一次
- 29. 如何使活动成为首次启动的活动,但仅限于第一次运行的应用程序
- 30. 在启动时运行应用程序
你的意思是它运行在计算机上的第一次,但没有后续执行? – Oded 2011-06-15 19:40:19
@Oded是这就是 – Dennis 2011-06-15 19:48:22
所以......基本上只有'一次性'运行?或者..它在计算机每次(重新)启动后只能运行一次? – KriZ 2011-06-15 19:50:42