# Regarding win 32 screenshot

**URL:** <https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703>\
**Category:** Ruby\
**Created:** [August 4, 2010, 10:57am UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703 "2010-08-04T10:57:13Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vardhan\_patil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/a6a055/32.png) [@vardhan\_patil](https://www.ruby-forum.com/u/vardhan_patil)\
**Post date:** [August 4, 2010, 10:57am UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703/1 "2010-08-04T10:57:13Z")

</div>

Me using the latest version of gem win32screen shot…  
But while taking desktop screenshot i get undefined method `call for  
nil:NilClass  
for capture\_area in bitmap maker.rb line 159  
bitmap maker.rb line 127  
and screenshot.rb line 29

Plz help

---

<div class="post-metadata">

**Author:** ![vardhan\_patil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/a6a055/32.png) [@vardhan\_patil](https://www.ruby-forum.com/u/vardhan_patil)\
**Post date:** [August 4, 2010, 4:54pm UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703/2 "2010-08-04T16:54:18Z")

</div>

vardhan patil wrote:

> Me using the latest version of gem win32screen shot…  
> But while taking desktop screenshot i get undefined method `call for  
> nil:NilClass  
> for capture\_area in bitmap maker.rb line 159  
> bitmap maker.rb line 127  
> and screenshot.rb line 29
> 
> Plz help

You need to pass it a block, like the readme examples do.

> **[GitHub - jarmo/win32screenshot: Capture Screenshots on Windows with Ruby](https://github.com/jarmo/win32screenshot)**
>
> Capture Screenshots on Windows with Ruby. Contribute to jarmo/win32screenshot development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![vardhan\_patil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/a6a055/32.png) [@vardhan\_patil](https://www.ruby-forum.com/u/vardhan_patil)\
**Post date:** [August 7, 2010, 12:40pm UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703/3 "2010-08-07T12:40:37Z")

</div>

Maybe using yield might be better indeed, like Roger recommended some  
time ago. It seems that this named block variable doesn’t help much as  
i hoped. Too bad that Ruby won’t throw error or show warning if named  
block variables are used but no block given… for me it’s like x  
parameters are needed, but x-1 parameters given and there’s no default  
value for block so error should be shown like it is done with other  
cases where more or less parameters are given to the method than  
expected.

Jarmo

---

<div class="post-metadata">

**Author:** ![vardhan\_patil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/a6a055/32.png) [@vardhan\_patil](https://www.ruby-forum.com/u/vardhan_patil)\
**Post date:** [August 7, 2010, 2:01pm UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703/4 "2010-08-07T14:01:05Z")

</div>

> Too bad that Ruby won’t throw error or show warning if named  
> block variables are used but no block given… for me it’s like x  
> parameters are needed, but x-1 parameters given and there’s no default  
> value for block so error should be shown like it is done with other  
> cases where more or less parameters are given to the method than  
> expected.

Yeah the only way I know of to force their use it so either use yield  
(which will throw a LocalJumpError: no block given), or to raise like

raise LocalJumpError.new unless block  
or  
raise LocalJumpError.new unless block\_given? (handle the implicit case)

I wonder if there’s some other way, as well, that I don’t know about.

---

<div class="post-metadata">

**Author:** ![vardhan\_patil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/a6a055/32.png) [@vardhan\_patil](https://www.ruby-forum.com/u/vardhan_patil)\
**Post date:** [August 8, 2010, 11:20pm UTC](https://www.ruby-forum.com/t/regarding-win-32-screenshot/192703/5 "2010-08-08T23:20:53Z")

</div>

Released version 0.0.6 where i’m using yield instead of block.call.  
Hopefully it makes it more clear that block needs to be used 🙂

Jarmo
