NsScreenshot plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Added own mirror link, removed my e-mail address and some minor textual changes.)
m (Small textual correction)
Line 74: Line 74:


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


nsScreenshot was created after some discussion in [http://forums.winamp.com/showthread.php?s=&threadid=149561 this] forum thread.
nsScreenshot was created after some discussion in [http://forums.winamp.com/showthread.php?s=&threadid=149561 this] forum thread.


[[Category:Plugins]]
[[Category:Plugins]]

Revision as of 08:34, 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 full screen 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 when capturing!

nsScreenshot was created after some discussion in this forum thread.