NsScreenshot plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.)
(Added own mirror link, removed my e-mail address and some minor textual changes.)
Line 3: Line 3:
== Links ==
== Links ==
<attach>NsScreenshot.zip</attach><br>
<attach>NsScreenshot.zip</attach><br>
[[Image:Zip.gif]] [http://home.studenten.net/~wowleon/nsScreenshot.zip <strike>NsScreenshot.zip</strike>] (52 KB) (Mirror #1)
[[Image:Zip.gif]] [http://www.wirwar.com/NSIS/nsScreenshot.zip nsScreenshot.zip] (52 KB) (Author's mirror)


== Description ==
== Description ==
nsScreenshot is a NSIS-plugin created by [mailto:leon@wirwar.com?subject=nsScreenshot Leon Zandman] that can create a screenshot and save it to a bitmap (BMP) file.
nsScreenshot is a NSIS-plugin created by Leon Zandman that can create a screenshot and save it to a Windows bitmap (BMP) file.


== Usage ==
== Usage ==
Line 12: Line 12:


*Full-screen capture
*Full-screen capture
*Capture of a specific window (identified by window handle)
*Capture of a specific window (identified by its window handle)


To capture the full screen and save it to 'c:\fullscreen.bmp' use the
To capture the full screen and save it to 'c:\fullscreen.bmp' use the

Revision as of 01:04, 25 November 2005

Author: lzandman (talk, contrib)


Links

NsScreenshot.zip (52 KB)
Zip.gif nsScreenshot.zip (52 KB) (Author's mirror)

Description

nsScreenshot is a NSIS-plugin created by Leon Zandman that can create a screenshot and save it to a Windows bitmap (BMP) file.

Usage

It supports two types of screenshots:

  • Full-screen capture
  • Capture of a specific window (identified by its window handle)

To capture the full screen and save it to 'c:\fullscreen.bmp' use the following script:

; Put filename of screenshot onto stack
Push "c:\fullscreen.bmp"
 
; Capture full screen
nsScreenshot::Grab_FullScreen

Pop $1
; $1 contains "ok" if the screenshot was taken
; $1 contains "error" if something went wrong
 
StrCmp $1 "ok" ok1 0
DetailPrint "nsScreenshot error"
Goto next1
ok1:
; Get image dimensions from stack (only available when "ok")
Pop $R1
Pop $R2
DetailPrint "nsScreenshot OK"
DetailPrint "Dimensions:  ($R1x$R2)"
next1:

For capturing a specific window and saving it to 'c:\screenshot.bmp' use the following script:

; Put window handle of window to be captured
; onto stack. You can use FindWindow for this.
; We'll use the NSIS window in this example
Push $HWNDPARENT
 
; Put filename of screenshot onto stack
Push "c:\screenshot.bmp"
 
; Capture window
nsScreenshot::Grab

Pop $1
; $1 contains "ok" if the screenshot was taken
; $1 contains "error" if something went wrong
 
StrCmp $1 "ok" ok1 0
DetailPrint "nsScreenshot error"
Goto next1
ok1:
; Get image dimensions from stack (only available when "ok")
Pop $R1
Pop $R2
DetailPrint "nsScreenshot OK"
DetailPrint "Dimensions:  ($R1x$R2)"
next1:

The distribution includes an example NSIS-script file that should be easy to understand.

Important Note

nsScreenshot always captures the full-screen. For capturing a specific window it will determine the rectangle occupied by that window and crop it out of the total picture, thus resulting in a screenshot of only that specific window. This means that the window to be captured has to be visible (and on top)!

nsScreenshot was created after some discussion in this forum thread.