How to take screenshot of full page through simple program?
<p>My requirement is to take screenshot of full page in Internet Explorer. I am aware of different tools available online for doing the same but since I want to achieve this on system where I don't have Admin rights, I can do it only with some program which doesn't require any installation.
I am looking for a program which can accept input(site URLs) from excel and then take full page screen shots of those sites.
Till now I only managed to open a site in IE, then do F11 to maximize screen and take screenshot of it. But, that gives cropped page snap since page height is more. I tried this with PowerShell.
Any suggestion/ideas?</p>

<pre><code>Capturing a screenshot

Param(
#[Parameter(Mandatory = $true)][string]
$Path = "C:\Sagar\Screens"
)    

$FileName = "$env:COMPUTERNAME - $(get-date -f yyyy-MM-dd_HHmmss).bmp"
$File = "$Path\$FileName"

Add-Type -AssemblyName System.Windows.Forms
Add-type -AssemblyName System.Drawing

# Gather Screen resolution information
$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
$Width = $Screen.Width
$Height = $Screen.Height
$Left = $Screen.Left
$Top = $Screen.Top

$ie = New-Object -com internetexplorer.application

$ie.Visible = $true

$ie.Navigate2("https://www.google.com/webhp?sourceid=chrome-    instant&amp;ion=1&amp;espv=2&amp;ie=UTF-8#q=how%20to%20send%20keys%20through%20powershell")

while($ie.busy){
Sleep -Seconds 2
}

Sleep -Seconds 2
$sig = '[DllImport("user32.dll")] public static extern bool      ShowWindowAsync(IntPtr hWnd, int nCmdShow);'

Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32

# Minimize window
[Win32.NativeMethods]::ShowWindowAsync($ie.HWND, 2)
# Restore window
[Win32.NativeMethods]::ShowWindowAsync($ie.HWND, 3)

#$ie.FullScreen = $true
Sleep -seconds 3

[void]     [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{F11}")

sleep -Seconds 2

Add-Type -AssemblyName System.Drawing

# Create bitmap using the top-left and bottom-right bounds
$bitmap = New-Object -TypeName System.Drawing.Bitmap -ArgumentList    $ie.Width, $ie.Height

# Create Graphics object
$graphic = [System.Drawing.Graphics]::FromImage($bitmap)
$ie.Left
$ie.Top
# Capture screen
$graphic.CopyFromScreen($ie.Left, $ie.Top, 0, 0, $bitmap.Size)

# Save to file
$bitmap.Save($File) 

Write-Output "Screenshot saved to:"
Write-Output $File
</code></pre>

#

<p>Found a solution to this. There is this thing called 'Watin' which helps in automation using IE and Firefox. It has a method to capture full page screenshot. Though screenshot quality is average, Watin works perfectly.</p>

<pre><code>    $executingScriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

    $filePath = $executingScriptDirectory + "\WatiN-2.1.0.1196\bin\net40\WatiN.Core.dll" #$executingScriptDirectory + "\net20\WatiN.Core.dll"
    $filePath1 = $executingScriptDirectory + "\WatiN-2.1.0.1196\bin\net40\Interop.SHDocVw.dll"

    [System.Reflection.Assembly]::LoadFile($filePath);
    [System.Reflection.Assembly]::LoadFile($filePath1);

    $url = "https://www.google.com/webhp?sourceid=chrome-instant&amp;ion=1&amp;espv=2&amp;ie=UTF-8#q=how%20to%20send%20keys%20through%20powershell"

     $ie = new-object WatiN.Core.IE $URL

     while($ie.busy){
                    sleep -milliseconds 50
                }

     $ie.BringToFront()

     $ie.CaptureWebPageToFile("C:\Sagar\Scripts\IsIt.jpg");
</code></pre>