Jump to content

Is the function "WinGetText" has a limitation?


Recommended Posts

Hi,

I'm doing WinGetText from a Notepad,

I am use the ConsolWrite in order to see what he get,

and everytime he is cutting the information in the same place, so I am missing everytime the relevant info I want to.

Here is info about the characters it took:

see picture

Also the notepad files are above 64k (as it written in the help file)

Is there another Function I can use for large files?

post-69315-0-15797400-1367148803_thumb.p

Link to comment
Share on other sites

#include <SendMessage.au3>
#include <WindowsConstants.au3>

;Im Assuming the file is test.txt in the Script Dir.
;It is opened through notepad. Only one instance of notepad is running
;All the text in the notepad is selected and copied to the clipboard
;Thereafter try the following methods.

$hNotepad = WinGetHandle("[CLASS:Notepad]")

$WinAPI = _SendMessage($hNotepad, $WM_GETTEXT, 0xFFFFFF, 0, 4)
$Native = WinGetText($hNotepad)

ConsoleWrite("WinAPI: " & StringLen($WinAPI) & "Chars." & @CRLF)
ConsoleWrite("Native: " & StringLen($Native) & "Chars." & @CRLF)
ConsoleWrite("FileRead: " & StringLen(FileRead("test.txt")) & "Chars." & @CRLF)
ConsoleWrite("Clipboard: " & StringLen(ClipGet()) & "Chars." & @CRLF)

;Clipboard method returns the maximum number of chars.
Hope it helps

Regards :)

Edited by PhoenixXL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Link to comment
Share on other sites

If you're just trying to get the text from a file into a variable, don't use Notepad, use FileOpen/FileRead instead.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

If you're just trying to get the text from a file into a variable, don't use Notepad, use FileOpen/FileRead instead.

BrewManNH:

It is notepad which popup so I need to get from this window, I can't know the path of the specific file because it depands on current time.

But maybe I will use the "Save As" option in order to save it with a path I'm know and doing what you said.

PhoenixXL:

Thanks, I will try it first and update here

Link to comment
Share on other sites

Finally it works with the FileRead method,

To get the path I taking the folder name through the "SaveAs" Window with the WinGetText.

and build the full path to the specific file so I can use the FileRead which get the all text from the file

By the way,

PhoenixXL - your method still cut the data.

Thanks all

Edited by atzoref
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...