PS2EXE-GUI v0.5.0.18
Changes:
- fixed "unlimited window width for GUI windows" issue in ps2exe.ps1 and Win-PS2EXE

List of changes (line numbers are from PS2EXE-GUI v0.5.0.17):
lines 87 to 88 - adjusted version number and date
line 102 - adjusted version number
line 114 - adjusted version number
line 1110 - inserted screen size check
line 1192 - inserted screen size check
line 1202 - inserted screen size check
line 1207 - removed braces
line 1212 - inserted screen size check
line 1215 - removed braces
line 1217 - removed braces
line 1358 - inserted screen size check
line 2299 - adjusted version number
line 2567 - removed comment



PS2EXE-GUI v0.5.0.17
Changes:
- set -noConfigFile as default, introduced parameter -configFile
- created comment based help
- removed aliases %, ? and select with full commmandlets
- several smaller optimizations

List of changes (line numbers are from PS2EXE-GUI v0.5.0.16):
before line 1 - comment based help
lines 4 to 5 - new parameter -configFile
line 9 - adjusted version number
line 21 - adjusted version number
lines 28 to line 32 - moved to line 162
lines 34 to line 39 - moved to line 190
lines 44 to 70 - changed help text
lines 185 to 189 - inserted code for -configFile
lines 301, 303, 306, 312, 331, 332, 2484, 2494 - removed aliases
line 2197 - adjusted version number
lines 2501 - changed for new default -noConfigFile



PS2EXE-GUI v0.5.0.16
Changes:
- introduced parameter -noOutput to supress every standard output (incl. verbose and informational output)
- introduced parameter -noError to supress every error output (incl. warning and debug output)
- introduced parameter -supportos to use functions of newest Windows versions (execute [Environment]::OSVersion to see the difference)

List of changes (line numbers are from PS2EXE-GUI v0.5.0.15):
lines 1 to 4 - definition of new parameters
line 8 - adjusted version number
line 21 - adjusted version number
line 47 - expanded help text
lines 69 to 71 - expanded help text
line 148 - inserted code to check for valid parameters with -supportOS
line 199 - inserted support for -noOutput and -noError for Powershell V2
line 202 - inserted support for -supportOS for Powershell V2
line 333 - added code for supportedOS manifest
line 345 - inserted code for supportedOS manifest
line 1880 - added code for -noOutput
line 1890 - added code for -noOutput
line 1895 - added code for -noOutput
line 1900 - added code for -noOutput
lines 1906 to 1907 - added code for -noError
line 1910 - added code for -noError
line 1916 - added code for -noError
line 1920 - added code for -noError
line 1923 - added code for -noError
line 1928 - added code for -noOutput
line 1932 - added code for -noOutput
line 1937 - added code for -noOutput
line 1947 - added code for -noOutput
line 1950 - inserted code for -noError
line 1953 - added code for -noOutput
line 1958 - added code for -noOutput
line 1983 - added code for -noOutput
line 1987 - added code for -noOutput
lines 1993 to 1994 - added code for -noError
line 1997 - added code for -noError
line 2164 - adjusted version number
line 2405 - added code for -noError
line 2410 - added code for -noError
line 2487 - added code for supportOS



PS2EXE-GUI v0.5.0.15
Changes:
- introduction of graphical front end "Win-PS2EXE"
- parameter "output file" is not mandatory anymore, if target filename is not specified source filename is used with extension ".exe"
- check if output file has extension ".exe" or ".com"
- PS2EXE's own dialogs (Inputbox, Choicebox, Keypress and Progress form) use the application's icon if present
- replacement of Write-Host with Write-Output, Write-Warning and Write-Error (affected lines not listed below)
- cleanup of upper and lower case letters and white space (affected lines not listed below)

List of changes (line numbers are from PS2EXE-GUI v0.5.0.14):
line 8 - adjusted version number
line 41 - check for empty $outputFile removed
lines 108 to 110 - added code to handle empty $outputFile
line 121 - inserted code to check if $outputFile has extension ".exe" or ".com"
line 362 - safer query for empty content
line 1022 - inserted code to set application's icon for input box if present
line 1107 - inserted code to set application's icon for choice box if present
line 1234 - inserted code to set application's icon for keypress form if present
line 1285 - added code to set application's icon for progress form form if present
line 2140 - adjusted version number



PS2EXE-GUI v0.5.0.14
Changes:
- introduced parameter -longPaths to support .Net4.62 long paths
(requirements: 1. Windows 10, 2. "Long Path" policy set, 3. Compile with -longPaths, 4. the generated config file has to be in the same directory as the executable)

List of changes (line numbers are from PS2EXE-GUI v0.5.0.13):
line 4 - definition of new parameters
line 8 - adjusted version number
line 21 - adjusted version number
line 49 - expanded help text
line 76 - appended help text
line 156 - appended parameter checks for -longPaths
lines 315 to 325 - inserted new manifest configuration for -longPaths parameter
line 2120 - adjusted version number
line 2392 - appended config file configuration for -longPaths parameter



PS2EXE-GUI v0.5.0.13
Changes:
- Get-Credential returns $NULL on abort when compiled with -noConsole or -credentialGUI
- implemented $Host.UI.RawUI.FlushInputBuffer() in console mode
- $Host.UI.RawUI.FlushInputBuffer() in noConsole mode starts an invisible window to prevent further windows to be opened in the background

List of changes (line numbers are from PS2EXE-GUI v0.5.0.12):
line 8 - adjusted version number
line 21 - adjusted version number
line 183 - parameters -credentialGUI and -noConfigfile for powershell v2 too
lines 661 to 664 - implemented FlushInputBuffer() (flush input in console mode, invisible form in noconsole mode)
line 1688 - PromptForCredential returns null on abort in noconsole mode
line 1734 - PromptForCredential returns null on abort in noconsole mode
line 2096 - adjusted version number



PS2EXE-GUI v0.5.0.12
Changes:
- with -NoConsole the prompt for Read-Host is shown now for secure input
- updated help text

List of changes (line numbers are from PS2EXE-GUI v0.5.0.11):
line 8 - adjusted version number
line 21 - adjusted version number
lines 45 to 47 - expanded help text
line 1798 - passing prompt to InputBox now
line 2094 - adjusted version number



PS2EXE-GUI v0.5.0.11
Changes:
- fixed errors with redirection of error stream and input stream ("handle is invalid")
- $host.privatedata.ErrorForegroundColor to $host.privatedata.VerboseBackgroundColor set colors in console mode
(can someone shoot Microsoft in the knee for this strange undocumented implementation)
- $host.privatedata.ProgressForegroundColor set the color of the progress bar in noConsole mode (when visual styles are not activated)
- fixed error with failing reference to Consolehost.dll
- new parameter -credentialGUI to generate graphical GUI for Get-Credential in console mode
- new parameter -noConfigfile to suppress generation of config file
- smaller fixes

List of changes (line numbers are from PS2EXE-GUI v0.5.0.10):
line 4 - definition of new parameters
line 8 - adjusted version number
line 21 - adjusted version number
lines 49 to 73 - expanded help text
line 155 - changed information text
line 261 - fixed error with failing reference to Consolehost.dll
line 386 - implementation of -credentialGUI
line 596 - fixed error with redirection of input stream ("handle is invalid")
line 1195 - set color for progress bar including conversion from ConsoleColor to Drawing.Color
line 1199 to 1204 - removed redundant object generation
line 1240 - inserted setting progress bar color
line 1274 - inserted contructor for setting progress bar color
line 1327 - inserted functions to check for redirection
line 1334 - inserted variables for console colors
line 1540 - implementation of -credentialGUI
line 1731 to 1736 - optimized WriteDebugLine
line 1746 to 1751 - optimized WriteErrorLine and implemented error redirection
line 1800 - implemented setting progress bar color
line 1815 to 1820 - optimized WriteVerboseLine
line 1830 to 1835 - optimized WriteWarningLine
line 1859 - inserted ConsoleProxy and PrivateData (very strange things)
line 1903 - adjusted version number
line 1940 to 1970 - removed functions to check for redirection (expanded and moved to line 1327)
line 2037 - changed check for redirection
linie 2239 to 2247 - implementation of -noConfigfile



PS2EXE-GUI v0.5.0.10
Changes:
- Get-Credential is assuming a generic login so no "\user" is returned if domain name is not set

List of changes (line numbers are from PS2EXE-GUI v0.5.0.9):
line 8 - adjusted version number
line 21 - adjusted version number
line 463 - checks for PSCredentialTypes.Generic instead of PSCredentialTypes.Domain now
line 1903 - adjusted version number



PS2EXE-GUI v0.5.0.9
Changes:
- added takeover of caption and message for $host.UI.PromptForCredential and Get-Credential.

List of changes (line numbers are from PS2EXE-GUI v0.5.0.8):
line 8 - adjusted version number
line 21 - adjusted version number
lines 389 to 392 - removed comments
line 437 - added Unicode coding
line 458 - changed comment
line 461 - inserted message and caption takeover
line 474 - changed comment
line 1905 - adjusted version number



PS2EXE-GUI v0.5.0.8
Changes:
- $ERRORACTIONPREFERENCE = 'Stop' bug corrected. The last error is not swallowed anymore.

List of changes (line numbers are from PS2EXE-GUI v0.5.0.7):
line 8 - adjusted version number
line 21 - adjusted version number
line 1905 - adjusted version number
line 2167 - inserted expression to retrieve last error



PS2EXE-GUI v0.5.0.7
Changes:
- parameter parsing bug corrected. A slash is not accepted as an introducing character for named parameters anymore.

List of changes (line numbers are from PS2EXE-GUI v0.5.0.6):
line 8 - adjusted version number
line 21 - adjusted version number
line 1905 - adjusted version number
line 2102 - corrected regular expression for parameter parsing



PS2EXE-GUI v0.5.0.6
Changes:
- button texts for input corrected, tries now to use localized strings for OK and Cancel

List of changes (line numbers are from PS2EXE-GUI v0.5.0.5):
line 8 - adjusted version number
line 21 - adjusted version number
lines 906 to 959 - get localized strings for OK and Cancel in input bix
lines 975 to 986 - translated some comments
line 1809 - adjusted version number



PS2EXE-GUI v0.5.0.5
Changes:
- new parameters -title, -description, -company, -product, -copyright, -trademark and -version to set meta data (as can be seen in the properties dialog in tab "Details" in Windows Explorer)
- new parameter -requireAdmin generates an executable that requires administrative rights and forces the UAC dialog (if UAC is enabled)
- new parameter -virtualize generates an executable that uses application virtualization when accessing protected system file system folders or registry
- several minor fixes

List of changes (line numbers are from PS2EXE-GUI v0.5.0.4):
line 1 - introduced new parameters, spread parameters over 4 lines for better readability
line 5 - adjusted version number
line 18 - adjusted version number
line 26 - shortened expression
line 32 - shortened expression
lines 54 to 60 - help text for new parameters
line 119 - inserted check that -requireAdmin and -virtualize are not provided together
line 152 - inserted new parameters for powershell v2
lines 153 to 155 - prevent call to powershell v2 ps2exe when psexe is compiled itself
line 168 - shortened expression
line 174 - shortened expression
line 180 - inserted value checks for new parameters
lines 251 to 252 - inserted compiler options for new parameters
line 303 - inserted compiler directives for new parameters
line 1809 - adjusted version number
line 2006 to 2036 - corrected bug in parameter computation ("number in parameter name")
line 2054 - translated comment
lines 2107 to 2110 - removed comments
lines 2146 to 2151 - corrected encoding for write of config file
line 2161 - appended deletion of manifest file (if generated before)



PS2EXE-GUI v0.5.0.4
Changes:
- corrected input handler: advanced parameters ([CmdletBinding()]) are working for compiled scripts now
- implemented input pipeline (only of strings) for compiled scripts (only Powershell V3 and above), e.g, Get-ChildItem | CompiledScript.exe
- Powershell V2 (or PS2EXE with switch -runtime20) compiles with .Net V3.5x compiler rather than with .Net V2.0 compiler now (there is no Microsoft support for .Net V2 anymore, so I won't do either)
- implemented missing console screen functions to move, get and set screen blocks (see example ScreenBuffer.ps1)
- several minor fixes

List of changes (line numbers are from PS2EXE-GUI v0.5.0.3):
line 5 - adjusted version number
line 18 - adjusted version number
lines 186 to 193 - check for V3.5 compiler, warning if only V2 compiler found
line 407 - inserted pinvoke definitions for new screen functions
lines 519 to 522 - implemented GetBufferContents method
lines 588 to 591 - implemented ScrollBufferContents method
line 598 - correction of block size in SetBufferContents(Rectangle, BufferCell) method
lines 606 to 609 - implemented SetBufferContents(Coordinats, BufferCell[,]) method
lines 1157 to 1160 - exception displays actual error message instead of fixed text
lines 1226 to 1229 - exception displays actual error message instead of fixed text
line 1664 - adjusted version number
line 1701 - inserted pinvoke definitions for string pipeline functions
lines 1765 to 1769 - corrected input handler and inserted input string pipeline
lines 1771 to 1774 - better variable name for output collection
line 1876 - corrected parameter
line 1878 - modifications for input string pipeline



PS2EXE-GUI v0.5.0.3
Changes:
- Write-Progress implemented for GUI output (parameter -noConsole), nesting of progresses is ignored
- removed unnecessary parameter -runtime30 (there is no such thing as a 3.x runtime)
- if -runtime20 and -runtime40 is supplied together an error message is generated now
- two references to Console removed from -noConsole mode for better stability

List of changes (line numbers are from PS2EXE-GUI v0.5.0.2):
line 1 - removed parameter -runtime30
line 5 - adjusted version number
line 18 - adjusted version number
lines 26 to 28 - check for runtime40 instead of runtime30
lines 38 to 66 - overworked help text
lines 121 to 135 - removed runtime30
lines 163 to 175 - removed runtime30
line 205 - reference to ConsoleHost only in console mode now
lines 208 to 213 - removed runtime30
lines 217 to 233 - removed runtime30
line 254 - removed unnecessary comment
line 956 - inserted new class ProgressForm for display of a progress bar in GUI mode
line 1421 - inserted new variable for WriteProgess in GUI mode
lines 1422 to 1425 - method WriteProgress implemented for GUI mode
line 1519 - adjusted version number
lines 1641 to 1645 - replaced Console.WriteLine with MessageBox.Show for GUI mode
line 1768 - corrected typo
lines 1817 to 1821 - removed runtime30



PS2EXE-GUI v0.5.0.2
Changes:
- STA or MTA mode is used corresponding to the powershell version when not specified (V3 or higher: STA, V2: MTA)
  This prevents problems with COM and some graphic dialogs
- icon file is seeked in the correct directory

List of changes (line numbers are from PS2EXE-GUI v0.5.0.1):
line 5 - adjusted version number
line 18 - adjusted version number
lines 111 to 115 - overworked routine to get icon file path
line 174 - when no -STA or -MTA switch is given, the threading apartment is set here according to the powershell version



PS2EXE-GUI v0.5.0.1
Changes:
- PROGRESS handler removed

List of changes (line numbers are from PS2EXE-GUI v0.5.0.0):
line 5 - adjusted version number
line 18 - adjusted version number
lines 1600 to 1603 - removed handler for progress stream, resulted in progress output converted to string (e.g.: "parent = -1 id = 0 act = Activity stat = State cur =  pct = -1 sec = -1 type = Completed")



PS2EXE-GUI v0.5.0.0

Changes by Markus Scholtes:
- treats Powershell 5 or above like Powershell 4
- Unused classes ReadKeyForm and CredentialForm in console output removed
- remove dead code
- System.Windows.Forms and System.Drawing are loaded for GUI output
- Write methods use MessageBox.Show in GUI output
- InputBox class introduced which is used for Readline, Read LineasSecureString and Prompt with GUI output
- ChoiceBox-Klasse introduced which is used for PromptForChoice with GUI output
- ReadKeyBox-Klasse introduced which is used for ReadKey with GUI output
- Prompt accepts SecureString and PSCredential as field types now
- Prompt: when conversion of input fails, the prompt reappears
- PromptForPassword: corrected string overflow in 32 bit runtime
- PromptForCredential for console: computer name is used, user name is demanded when needed
- PromptForChoice accepts help texts and default values now
- the console output methods do not use black background and white foreground, but use the actual colors now
- missing methods WriteLine() and WriteLine(ConsoleColor, ConsoleColor, String) added
- method SetBufferContents for Clear-Host added
- method KeyAvailable added
- method BufferSize for GUI output corrected
- in GUI output the class Console is not called anymore
- input and output file are seeked and generated in the correct directory
- check that input file is not the same as the output file
- doubled VERBOSE and WARNING handler removed
- new, corrected and much expanded parser for command line parameters
- several small fixes
- revision of help and error texts

What is still missing:
Write-Progress


List of changes (line numbers are from PS2EXE v0.5.0.0):
lines 38 to 70 - updated help text
line 74 - powershell versions greater than 4 are treated like version 4
lines 94 to 107 - corrected generation of absolute file paths
line 108 - added check whether input file is the same as output file
line 140 - added icon file parameter for runtime 2.0
line 167 - omitted, no need for Set-Location
lines 207 to 208 - omitted, full paths already retrieved
lines 253 to 272 - omitted
lines 280 to 342 - omitted
line 414 - corrected StringBuilder constructor for 32 bit environments
line 430 - allocated enough space for long user or domain names
lines 447 to 561 - omitted
lines 564 to 582 - moved to beginning of c# code
line 579 - added Forms and Drawing namespaces in GUI mode
line 586 - removed variable CONSOLE, added variables to store console colors for GUI environment
lines 588 to 598 - added GUI support for BackgroundColor
lines 600 to 614 - corrected dummy size for BufferSize for GUI, so WriteLine is called
lines 616 to 627 - added GUI support for CursorPosition
lines 629 to 639 - added GUI support for CursorSize
line 643 - removed exception
lines 646 to 656 - added GUI support for ForegroundColor
lines 663 to 669 - implemented KeyAvailable
lines 671 to 674 - added GUI support for MaxPhysicalWindowSize
lines 676 to 679 - added GUI support for MaxWindowSize
line 694 - added support for NUMLOCK
lines 698 to 700 - added working GUI support for ReadKey
lines 709 to 712 - implemented, even Clear-Host works now
lines 719 to 733 - added GUI support for WindowPosition
lines 735 to 749 - added GUI support for WindowSize
lines 751 to 761 - added GUI support for WindowTitle
line 762 - added classes for input boxes, choice boxes and read key boxes
line 765 - removed constant CONSOLE
line 772 - initializing of screen colors added
lines 775 to 856 - Prompt: added GUI support, added secure text, added help messages
lines 858 to 906 - PromptForChoice: added GUI support
lines 908 to 937 - PromptForCredential: corrected handling of readonly user names
lines 939 to 964 - PromptForCredential: corrected handling of readonly user names
line 973 - added private variables for input boxes
lines 974 to 977 - added GUI support for ReadLine
lines 979 to 986 - ReadLineAsSecureString: implemented password input in console and GUI
lines 988 to 993 - Write: corrected color management, added GUI support
lines 995 to 1000 - Write: corrected color management, added GUI support
lines 1002 to 1007 - WriteDebugLine: corrected color management, added GUI support
lines 1009 to 1014 - WriteErrorLine: corrected color management, added GUI support
line 1016 - added function WriteLine(ConsoleColor, ConsoleColor, string)
line 1016 - added function WriteLine()
lines 1016 to 1021 - WriteLine: removed color management, added GUI support
lines 1028 to 1033 - WriteVerboseLine: corrected color management, added GUI support
lines 1035 to 1040 - WriteWarningLine: corrected color management, added GUI support
line 1047 - removed constant CONSOLE
line 1110 - set correct version number
line 1150 - removed constant CONSOLE
line 1193 to 1206 - removed Console.CancelKeyPress in case there is no console
line 1213 to 1216 - removed handler for verbose stream, resulted in double verbose output
line 1217 to 1220 - removed handler for warning stream, resulted in double warning output
line 1275 to 1280 - inserted a much improved routine to retrieve parameters (still faulty in some situations)
lines 1299 to 1303 - exception is displayed in a message box when there is no console
lines 1305 to 1309 - wait text is displayed in a message box when there is no console
