背景
我有一个C#windows Form应用程序,它根据打开的应用程序的上一个实例的顶部和左侧值设置其默认的顶部和左侧值。
例如,app A在left = 50和top = 15时打开。用户将应用程序窗口向右拖动,以便应用程序的左侧= 500,顶部= 50。用户退出应用程序并重新打开应用程序。它的当前位置是它最后关闭的位置(左= 500,顶部= 50)。
问题
我想在重新启动Windows操作系统后将值重置为left = 50和top = 15。 谷歌搜索只是在应用程序退出后重置值,但我想要的是在Windows操作系统重启后重置值。
我目前唯一可以想到的方法是在任务调度程序中创建一个任务调度程序,在Windows重启后运行批处理脚本文件来调整应用程序的.config
文件中的值,但这样做需要一个维护一个额外的脚本文件并创建一个任务(更多的工作)。
答案 0 :(得分:1)
你控制源代码吗?如果是,请在启动逻辑运行一次后开始执行此操作:
在调整大小事件时,如果新大小未最大化,则将新大小存储到注册表或用户>中的配置文件中。 (该用户)> Appdata>本地> (贵公司)> (你的申请)
如果表单刚刚移动且未调整大小,请参阅:C# Form Move Stopped Event
在应用启动时,如果此值存在且适用于当前屏幕分辨率,则使用它。
答案 1 :(得分:1)
另一种方法是检测自上次应用程序启动以来Windows重新启动并相应地重置设置。
简单的解决方案是存储一个额外的设置,比如all = sys.argv[1]
help = sys.argv[2]
if sys.argv[1] >=1:
print("Test")
else:
print 'Test'
if sys.argv[1] >=2:
print("Test2")
else:
print 'Test2'
,并将其设置为应用程序启动时的当前时间。
然后您可以将其与启动时间进行比较,并确定自上次启动以来系统是否重新启动:
LastLaunchTime
系统正常运行时间计算来自此处:Retrieve system uptime using C#