【发布时间】:2014-10-22 21:53:33
【问题描述】:
尽管您阅读了这些内容,但事实证明 Windows 屏幕保护程序“不仅仅是”一个重命名为 .scr 的 .exe。 .scr 文件不像 EXE 那样直接“启动”。相反,Windows 会在 .scr 文件中查找可执行文件,然后使用 Windows 想要提供给可执行文件的任何命令行参数重新启动该可执行文件。
这意味着,如果您使用自己的参数(例如,“myscreensaver.scr /windowed /doublebuffered”)创建 .scr 文件的快捷方式,当您使用该快捷方式时,Environment.CommandLine 会显示启动的内容是“myscreensaver.scr /S”。请注意,我的参数已被替换。
我了解这里/s、/c 和/p 参数的作用。这无需解释,我在屏幕保护程序中正确使用了它们。但我也想恢复我的 original 参数。是否可以获取启动我的进程的进程的名称,并获取提供给那个进程的命令行参数?
【问题讨论】:
-
当您创建屏幕保护程序时,您正在制作一个 Windows 窗体并将 exe 重命名为 scr,所以我不确定您从哪里得到
Despite what you read, it turns out that a Windows Screen Saver is not an .exe..。您是创建屏幕保护程序并可以控制它的人。我错过了什么吗?除此之外,如果您不安装屏幕保护程序,为什么还要费心将其重命名为 scr 并且如果您正在安装它,为什么要手动调用 scr(双击)?通过将其重命名为 scr 并安装它,您希望 windows 调用它。 -
我很确定你需要的东西是不可能的,你需要一种不同的方式,也许是一个配置文件。不过,也许有人会证明我错了。
-
@vesan 要更改屏幕保护程序设置,请使用选项表单。这些设置通常保存并加载到注册表/从注册表加载。就像我说的,如果你想手动调用它,不要让它成为一个 scr 文件。将其保留为 exe。很简单。
-
@vesan 感谢您尝试回答手头的问题,Vesan。我也有同样的怀疑。 :-) 是的,松饼,你错过了一些东西。当您必须从我的报价中删除“公正”时,您应该怀疑您实际上并没有解决该报价。我想我很清楚引用后声明的不同之处。
标签: c# winforms command-line-arguments screensaver windows-screensaver