@@ -32,23 +32,26 @@ private WindowsTermScripts() {}
32
32
"public static extern uint SetConsoleMode(\n " +
33
33
" IntPtr hConsoleHandle,\n " +
34
34
" uint dwMode);\n " +
35
- "public const int STD_OUTPUT_HANDLE = -11 ;\n " +
35
+ "public const int STD_ERROR_HANDLE = -12 ;\n " +
36
36
"public const int ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;\n " +
37
37
"'@\n " +
38
38
"\n " +
39
39
"$WinAPI = Add-Type -MemberDefinition $signature `\n " +
40
40
" -Name WinAPI -Namespace ConinModeScript `\n " +
41
41
" -PassThru\n " +
42
42
"\n " +
43
- "$handle = $WinAPI::GetStdHandle($WinAPI::STD_OUTPUT_HANDLE )\n " +
43
+ "$handle = $WinAPI::GetStdHandle($WinAPI::STD_ERROR_HANDLE )\n " +
44
44
"$mode = 0\n " +
45
45
"$ret = $WinAPI::GetConsoleMode($handle, [ref]$mode)\n " +
46
46
"if ($ret -eq 0) {\n " +
47
- " throw \" GetConsoleMode failed (is stdin a console?)\" \n " +
48
- "}\n " +
49
- "$ret = $WinAPI::SetConsoleMode($handle, $mode -bor $WinAPI::ENABLE_VIRTUAL_TERMINAL_PROCESSING)\n " +
50
- "if ($ret -eq 0) {\n " +
51
- " throw \" SetConsoleMode failed (is stdin a console?)\" \n " +
47
+ " Write-Host \" Error: GetConsoleMode failed (is stderr a console?)\" \n " +
48
+ "} else {\n " +
49
+ " $ret = $WinAPI::SetConsoleMode($handle, $mode -bor $WinAPI::ENABLE_VIRTUAL_TERMINAL_PROCESSING)\n " +
50
+ " if ($ret -eq 0) {\n " +
51
+ " Write-Host \" false\" \n " +
52
+ " } else {\n " +
53
+ " Write-Host \" true\" \n " +
54
+ " }\n " +
52
55
"}\n " ;
53
56
54
57
/**
@@ -68,7 +71,7 @@ private WindowsTermScripts() {}
68
71
" [DllImport(\" kernel32.dll\" , SetLastError = true)]\n " +
69
72
" public static extern IntPtr GetStdHandle(int nStdHandle);\n " +
70
73
"\n " +
71
- " public const int STD_OUTPUT_HANDLE = -11 ;\n " +
74
+ " public const int STD_ERROR_HANDLE = -12 ;\n " +
72
75
"\n " +
73
76
" [StructLayout(LayoutKind.Sequential)]\n " +
74
77
" public struct COORD\n " +
@@ -100,14 +103,14 @@ private WindowsTermScripts() {}
100
103
"\n " +
101
104
"Add-Type -TypeDefinition $signature -Language CSharp\n " +
102
105
"\n " +
103
- "$outputHandle = [Kernel32]::GetStdHandle([Kernel32]::STD_OUTPUT_HANDLE )\n " +
106
+ "$outputHandle = [Kernel32]::GetStdHandle([Kernel32]::STD_ERROR_HANDLE )\n " +
104
107
"\n " +
105
108
"$info = New-Object Kernel32+CONSOLE_SCREEN_BUFFER_INFO\n " +
106
109
"\n " +
107
110
"if ([Kernel32]::GetConsoleScreenBufferInfo($outputHandle, [ref]$info)) {\n " +
108
111
" Write-Host \" Size: $($info.srWindow.Right - $info.srWindow.Left + 1) $($info.srWindow.Bottom - $info.srWindow.Top + 1)\" \n " +
109
112
"} else {\n " +
110
- " Write-Host \" Error: \" + [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()\n " +
113
+ " Write-Host \" Error: Win32 error $( [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()) \" \n " +
111
114
"}\n " ;
112
115
113
116
}
0 commit comments