# Unable to write in notepad

**URL:** <https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356>\
**Category:** Ruby\
**Created:** [May 22, 2008, 8:55am UTC](https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356 "2008-05-22T08:55:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![pranjal\_jain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac91a4/32.png) [@pranjal\_jain](https://www.ruby-forum.com/u/pranjal_jain)\
**Post date:** [May 22, 2008, 8:55am UTC](https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356/1 "2008-05-22T08:55:31Z")

</div>

Hi All  
I am trying to write the data in the notepad. But I the data going in it  
is wrong. The output which I am getting in the notepad is

!FA

The code I used is as follows:

"

# Require the win32ole library:

require ‘win32ole’

# Create an instance of the Wscript Shell:

wsh = WIN32OLE.new(‘Wscript.Shell’)

# Try to activate the Notepad window:

if wsh.AppActivate(‘Notepad’)  
sleep(1)

# Enter text into Notepad:

wsh.SendKeys(‘Ruby{TAB}on{TAB}Windows{ENTER}’)

# ALT-F to pull down File menu, then A to select Save As…:

wsh.SendKeys(’!F’)  
wsh.SendKeys(‘A’)  
sleep(1)  
if wsh.AppActivate(‘Save As’)  
wsh.SendKeys(‘c:\temp\filename.txt{ENTER}’)  
sleep(1)

# If prompted to overwrite existing file:

if wsh.AppActivate(‘Save As’)

# Enter ‘Y’:

wsh.SendKeys(‘Y’)  
end  
end

# Quit Notepad with ALT-F4:

wsh.SendKeys(’%{F4}’)  
end

"

One more interesting thing is that here I am able to write the value in  
the notepad which is already opened. if the notepad is not opened, then  
ruby just intepret the script & does not write the output.

Please suggest the solution for this.  
Thankx in advance 🙂

---

<div class="post-metadata">

**Author:** ![pranjal\_jain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac91a4/32.png) [@pranjal\_jain](https://www.ruby-forum.com/u/pranjal_jain)\
**Post date:** [May 22, 2008, 10:47am UTC](https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356/2 "2008-05-22T10:47:35Z")

</div>

Hi,

2008/5/22 Pranjal J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> "  
> wsh.SendKeys(‘!F’)  
> end  
> Please suggest the solution for this.  
> Thankx in advance 🙂

Here is a working code:

# Require the win32ole library:

require ‘win32ole’

# Create an instance of the Wscript Shell:

wsh = WIN32OLE.new(‘Wscript.Shell’)  
if not wsh.AppActivate(‘Notepad’)  
wsh.Run(‘Notepad’)  
sleep(1)  
end

# Try to activate the Notepad window:

if wsh.AppActivate(Notepad)  
sleep(1)  
# Enter text into Notepad:  
wsh.SendKeys(‘Ruby{TAB}on{TAB}Windows{ENTER}’)  
# ALT-F to pull down File menu, then A to select Save As…:  
wsh.SendKeys(‘%FA’)  
sleep(1)  
wsh.SendKeys(‘c:\temp\filename.txt{ENTER}’)  
sleep(1)  
# If prompted to overwrite existing file:  
if wsh.AppActivate(‘Save As’)  
# Enter ‘Y’:  
wsh.SendKeys(‘Y’)  
end  
# Quit Notepad with ALT-F4:  
wsh.SendKeys(‘%{F4}’)  
end

Regards,

Park H.

---

<div class="post-metadata">

**Author:** ![pranjal\_jain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac91a4/32.png) [@pranjal\_jain](https://www.ruby-forum.com/u/pranjal_jain)\
**Post date:** [May 22, 2008, 11:19am UTC](https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356/3 "2008-05-22T11:19:10Z")

</div>

Hi  
I am sorry  
it worked for me sooner after I posted the question.I had used the same  
code which u mentioned.

But there is another problem I am facing.  
For running the the script the notepad should be opened before I execute  
the script.

I dnt want to keep any notepad open before I start running the script.  
Can u suggest how I can overcome this problem

Heesob P. wrote:

> Hi,
> 
> 2008/5/22 Pranjal J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > "  
> > wsh.SendKeys(‘!F’)  
> > end  
> > Please suggest the solution for this.  
> > Thankx in advance 🙂
> 
> Here is a working code:
> 
> # Require the win32ole library:
> 
> require ‘win32ole’
> 
> # Create an instance of the Wscript Shell:
> 
> wsh = WIN32OLE.new(‘Wscript.Shell’)  
> if not wsh.AppActivate(‘Notepad’)  
> wsh.Run(‘Notepad’)  
> sleep(1)  
> end
> 
> # Try to activate the Notepad window:
> 
> if wsh.AppActivate(Notepad)  
> sleep(1)  
> # Enter text into Notepad:  
> wsh.SendKeys(‘Ruby{TAB}on{TAB}Windows{ENTER}’)  
> # ALT-F to pull down File menu, then A to select Save As…:  
> wsh.SendKeys(‘%FA’)  
> sleep(1)  
> wsh.SendKeys(‘c:\temp\filename.txt{ENTER}’)  
> sleep(1)  
> # If prompted to overwrite existing file:  
> if wsh.AppActivate(‘Save As’)  
> # Enter ‘Y’:  
> wsh.SendKeys(‘Y’)  
> end  
> # Quit Notepad with ALT-F4:  
> wsh.SendKeys(‘%{F4}’)  
> end
> 
> Regards,
> 
> Park H.

---

<div class="post-metadata">

**Author:** ![pranjal\_jain](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ac91a4/32.png) [@pranjal\_jain](https://www.ruby-forum.com/u/pranjal_jain)\
**Post date:** [May 22, 2008, 11:30am UTC](https://www.ruby-forum.com/t/unable-to-write-in-notepad/138356/4 "2008-05-22T11:30:42Z")

</div>

Hi,

2008/5/22 Pranjal J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Can u suggest how I can overcome this problem

I guess you did not try my code.  
Following code is included for the opening notepad:

if not wsh.AppActivate(‘Notepad’)  
wsh.Run(‘Notepad’)  
sleep(1)  
end

Regards,

Park H.
