@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The GetWindowsDirectory API !!!!C# Signature: [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] static extern uint GetWindowsDirectory(StringBuilder lpBuffer, uint uSize); !!!!VB.NET Signature <DllImport("kernel32.dll", SetLastError:=true, EntryPoint:="GetWindowsDirectoryW", CharSet:=CharSet.Unicode)> _ Public Function GetWindowsDirectory(<MarshalAs(UnmanagedType.LPTSTR)>lpBuffer As System.Text.StringBuilder, _ uSize As UInteger ) As UInteger End function !!!!VB Signature Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _ (ByVal Buffer As String, ByVal Size As Integer) As Integer !!!!User-Defined Types: None. !!!!Notes: Q. For the above VB DllImport declaration, Visual Studio's Code Analysis throws error 'CA2101: Specify marshaling for P/Invoke string arguments'. Should the marshalling not be: <MarshalAs(UnmanagedType.LPWStr)> Otherwise lpBuffer will be converted to Ansi and then passed to a Unicode API method. !!!!Tips & Tricks: Please add some! Here are two ways to get the Windows path Private Sub test() Dim sSystemPath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.System) MessageBox.Show(sSystemPath.Substring(0, sSystemPath.LastIndexOf("\"))) MessageBox.Show(System.Environment.GetEnvironmentVariable("windir")) End Sub !!!!VB Sample Code: As SDim WinDir tring = Space(255) Dim Res As Integer = GetWindowsDirectory(WinDir, WinDir.Length) WinDir = WinDir.Substring(0, Res) !!!!VB.NET Sample Code: Shared Function wins() As String Dim sb As StringBuilder =new StringBuilder(100) Dim f as UInteger = 100 GetWindowsDirectory(sb,i) return sb.ToString() End Function !!!!C# Sample Code: const int MaxPathLength = 255; StringBuilder sb = new StringBuilder(MaxPathLength); int len = (int)GetWindowsDirectory(sb, MaxPathLength); _windowsDirectory = sb.ToString(0, len); !!!!C# Sample Code (Alternative): static string wins() { StringBuilder sb =new StringBuilder(100); int i = 100; uint f; GetWindowsDirectory(sb,ref i); return sb.ToString() ; } !!!!Alternative Managed API: Environment.GetEnvironmentVariable("windir"); Documentation: GetWindowsDirectory@msdn on MSDN
Edit kernel32.GetWindo...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.