Пользуюсь такой командой: Environ("windir")
У меня на компьютере отрабатывает нормально и выдает: C:\Windows
У товарища программа виснет на этой команде.
Может можно как то по другому определить, на каком диске установлена система?
'Где-то в объявлении класса
Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As UInteger) As UInteger
'Где в методе класса
Dim sWindows As New String("", 260)
GetWindowsDirectory(sWindows, 260)
Console.WriteLine(sWindows)
Admiralisimys писал(а):В теме речь про системную директорию, а в заголовке про системный диск. Отвечал на первый пост.
Admiralisimys писал(а):Или воспользоваться Win32 UnManaged вариантом
Declare Unicode Function ... Alias "GetWindowsDirectoryW" ...
Admiralisimys писал(а):... будет неудобство заключающие в том ...
Module All
Declare Unicode Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryW" (ByVal lpBuffer As String, ByVal nSize As UInteger) As UInteger
Public Sub Main()
Dim Path As New String(" "c, GetWindowsDirectory(Nothing, 0))
GetWindowsDirectory(Path, Path.Length)
MsgBox(Path)
End Sub
End Module
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Function GetWinDir() As String
Dim szBuffer As String = " "
Dim lngRet As Long
lngRet = GetWindowsDirectory(szBuffer, 50)
GetWinDir = Left$(szBuffer, lngRet)
End Function
Admiralisimys писал(а):В теме речь про системную директорию, а в заголовке про системный диск. Отвечал на первый пост.
Admiralisimys писал(а):Environment.GetEnvironmentVariable("SystemDrive")
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 31