2008-10-27 58 views

回答

21

你绝对不能认为:Windows可以安装在不同的驱动器号或不同的目录中。例如,在以前的工作中,PC Windows安装在D:\ WINNT中。

简短的回答是使用API​​调用GetSystemDirectory(),这将返回你以后的路。

较长的答案是问:你真的需要知道这个吗?如果你使用它来将文件复制到Windows目录中,我建议你问你是否真的想要这样做。不鼓励复制到Windows目录,因为您可以很容易地搞乱其他应用程序。如果您使用路径来查找DLL,为什么不仅仅依靠操作系统来找到合适的路径而不给路径呢?如果您正在深入了解操作系统文件的各个部分,请考虑:未来会如何运作?一般情况下,如果您希望程序能够在未来的Windows版本上运行,最好不要在Windows目录中明确指出。

2

这可能是更安全的使用“WINDIR”环境变量,然后追加“System32下”,以这条道路的尽头。有时Windows可能位于不同的文件夹或不同的驱动器下,因此“windir”会告诉你它在哪里。

据我所知,system32文件夹应该总是存在于windows文件夹下。

4

Windows可以安装在不同的硬盘和/或不同的文件夹中。使用%windir%或%systemroot%环境变量让你进入windows文件夹并追加system32。或者使用%path%变量,它通常是第一个入口,也是搜索dlls AFAIK等文件的首选方法。按照评论:不要过多地依赖system32 dir作为第一项。我认为可以安全地假设它在%path%的某处。

+0

不要仅仅采取%path%中的第一项。一大堆程序喜欢预先追加到PATH中,而不是追加后缀。 System32在我的LM PATH上大约是第九位。 – KTC 2008-10-27 06:52:22

+0

肯定是真的,只是假设它在那里,我会编辑:-) – 2008-10-27 06:56:49

3

我会用GetWindowsDirectory的Win32 API来获取当前Windows目录,追加System32下给它的,然后检查它是否存在。

16

不,你不能假设。

Windows可以安装到不同的路径。一种解决方法是通过调用GetSystemDirectory(作为Windows API的一部分实现)来查找它。

0

只是一个供参考,但在终端服务器环境(即,思杰),GetWindowsDirectory()可能会返回一个远程用户的唯一路径。

link text

随着越来越多的公司使用虚拟化桌面,开发者需要牢记这一点。

相关问题