PuTTY window is there, although it gets the "transparent" property for some bogus reason. A lighter workaround than the ones I've seen so far is to set visibility back.
The following methods work on 32 bit Vista Home Premium, SP2. YMMV.
Method 1, a short AutoHotkey script:
; show_PuTTY.ahk
; Must be launched when putty.exe is already running
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
WinWait, PuTTY Configuration
WinSet, Transparent, 255
Method 2, Powershell script called from batch file (it doesn't need any additional programs):
# unhide.ps1
$definition = @"
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
public static void ShowWin()
{
IntPtr hwnd = FindWindow("PuTTYConfigBox", "PuTTY Configuration");
SetWindowLong(hwnd, -20, 524288);
}
"@
add-type -MemberDefinition $definition -Namespace my -Name WinApi
do {}
until(Get-Process putty -ErrorAction SilentlyContinue | Select -p Responding)
[my.WinApi]::ShowWin()
Then you may call it from a batch file (eg. PuTTY.bat
), placed in the same position where unhide.ps1
lies:
@echo off
rem PuTTY.bat
start "" "%ProgramFiles%\PuTTY\putty.exe"
rem Use %ProgramFiles(x86)% for 32 bit PuTTY on 64 bit Vista
powershell.exe -ex remotesigned -f unhide.ps1
Please see credits on comment below.