Unable to write in notepad

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 :slight_smile:

···

--
Posted via http://www.ruby-forum.com/.

Hi,

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 :slight_smile:

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 Heesob

···

2008/5/22 Pranjal Jain <pranjal.jain123@gmail.com>:

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 Park wrote:

···

Hi,

2008/5/22 Pranjal Jain <pranjal.jain123@gmail.com>:

"
wsh.SendKeys('!F')
end
Please suggest the solution for this.
Thankx in advance :slight_smile:

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 Heesob

--
Posted via http://www.ruby-forum.com/\.

Hi,

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

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 Heesob

···

2008/5/22 Pranjal Jain <pranjal.jain123@gmail.com>: