我编写了自己的屏幕保护程序,它使用与屏幕保护程序可执行文件(.scr文件)位于同一目录的其他文件。
如果我右键点击屏幕保护程序并选择' 测试',一切顺利,就会找到这些额外的文件。
但是,如果我右键单击并单击' 安装'为了安装屏幕保护程序,似乎无法再找到这些文件了。
安装过程是否会制作另一个屏幕保护程序副本,或者更改工作目录?如果是这样,它在哪个目录?
它是Windows 7桌面。
到目前为止,我已在Windows文件夹,程序文件,程序文件(x86)中搜索。
更新
因此,我添加了以下代码来确定可执行文件的位置。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
屏幕保护程序似乎是从我放置它的目录运行的,从原始文件开始。但是,安装后,我可以从可执行文件到达同一文件夹中的文件的唯一方法是使用完整路径。如果我将其作为 Test 运行,我只能使用文件名。
这应该是一个关于发生了什么的线索,我想。上面的函数,如果我将其作为 Test 运行,则返回长文件名,但如果我将其作为 Installed 运行,则返回短文件名。我认为当已安装时,它会作为某种特殊进程运行,或者可能是子进程,这也会干扰文件访问。
发生了什么事?
答案 0 :(得分:0)
我添加了一段代码来确定当前的工作目录,并发现在 Installed 模式下运行屏幕保护程序时,当前工作目录变为 C:\ Windows \ system32 ,这当然会解释如何引用文件。
Environment.CurrentDirectory