我调用apiDeclare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongFunction WindowsDirectory() As String
    Dim WinPath As String
    WinPath = String(145, Chr(0))
    WindowsDirectory = Left(WinPath, GetWindowsDirectory(WinPath, Len(WinPath)))
End Function
在本机正常在客户服务器上得到的WindowsDirectory()=C:\Documents and Settings\Administrator\windows而且如果我删除的了windows目录,运行程序后还会自动生成!!太怪了,客户用的是win2000 server sp4。

解决方案 »

  1.   

    我这里结果是 "C:\WINDOWS"
      

  2.   

    http://support.microsoft.com/kb/924066/zh-cn
      

  3.   

    yachong(蚜虫) ( ) 信誉:100 :先谢了!看了,和文中所说刚好相反,microsoft没有提供解决方案,不知你可否把Kernel32.dll文件发个给我呢?[email protected]
      

  4.   

    客户服务器上的kernet32.dll版本是5.00.2195.7135。
      

  5.   

    再我机器里也正常
    给你发Kernel32.dll,难道你要反编译出来看看?
      

  6.   

    没那么强啊!只是想把kernet32.dll换了看看。当然风险也很大了,可能服务器就挂了....
    哎!难啊!!!客户急了,我也急了,又不想重装系统,服务器装起来太烦人了,用户又很多,重新一次至少也得1天的时间。
      

  7.   

    如果你用的是VB,根本不用这么麻烦,请看这段程序的运行结果:
    Private Sub Command1_Click()
        Dim i As Long
        For i = 1 To 29
            Debug.Print "Environ(" & i & ") = " & Environ(i)
        Next i
    End Sub
    --------------
    结果:
    Environ(1) = ACE_ROOT=D:\ACE\ACE-5.5+TAO-1.5+CIAO-0.5\ACE_wrappers
    Environ(2) = ALLUSERSPROFILE=C:\Documents and Settings\All Users
    Environ(3) = APPDATA=C:\Documents and Settings\Administrator\Application Data
    Environ(4) = CommonProgramFiles=C:\Program Files\Common Files
    Environ(5) = COMPUTERNAME=JZYWZWJ
    Environ(6) = ComSpec=C:\WINNT\system32\cmd.exe
    Environ(7) = HOMEDRIVE=C:
    Environ(8) = HOMEPATH=\Documents and Settings\Administrator
    Environ(9) = LOGONSERVER=\\JZYWZWJ
    Environ(10) = NUMBER_OF_PROCESSORS=2
    Environ(11) = OS=Windows_NT
    Environ(12) = Os2LibPath=C:\WINNT\system32\os2\dll;
    Environ(13) = Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN
    Environ(14) = PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    Environ(15) = PROCESSOR_ARCHITECTURE=x86
    Environ(16) = PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel
    Environ(17) = PROCESSOR_LEVEL=15
    Environ(18) = PROCESSOR_REVISION=0605
    Environ(19) = ProgramFiles=C:\Program Files
    Environ(20) = SESSIONNAME=Console
    Environ(21) = SystemDrive=C:
    Environ(22) = SystemRoot=C:\WINNT
    Environ(23) = TAO_ROOT=D:\ACE\ACE-5.5+TAO-1.5+CIAO-0.5\ACE_wrappers\TAO
    Environ(24) = TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
    Environ(25) = TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
    Environ(26) = USERDOMAIN=JZYWZWJ
    Environ(27) = USERNAME=Administrator
    Environ(28) = USERPROFILE=C:\Documents and Settings\Administrator
    Environ(29) = windir=C:\WINNT
      

  8.   

    换句话说,你想知道windows目录,只要这样就可以了:
    Environ("windir")   这个就可以出结果了!
      

  9.   

    忽然想到个问题,系统Windows目录是在配置文件里设置的,也就是用户有可能会更改这个配置,把windows目录改成别的,设置办法如下:
    我的电脑-属性-高级-环境变量-系统变量-windir
    看看你不好用服务器上这个设置的目录是什么,如果不对,改成正常,应该就OK了。
    ═══════════════════
    http://www.egooglet.com 资料、源码下载http://bbs.j2soft.cn 论坛交流
    ═══════════════════
      

  10.   

    无语,samwzhang(分全给我) 兄太强了,这段好用,分给你150吧!
      

  11.   

    cuizm(射天狼 http://www.j2soft.cn/) 我早就看过了,没有问题啊!还是谢谢你!!!
      

  12.   

    问题解决!!个人感觉samwzhang(分全给我)的方法太好了,大家可以看看。