| View previous topic :: View next topic |
| Author |
Message |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Tue Feb 20, 2007 1:09 am Post subject: StdoutToVar |
|
|
I just saw this great post:
http://www.autohotkey.com/forum/viewtopic.php?t=8606
I thought I might share my own version which is actually porting to AHK of the script I've been using personally.
The main difference may be that it doesn't create the console window at all, not just hiding the console.
DOWNLOAD StdoutToVar.ahk.
Last edited by Sean on Wed Aug 22, 2007 7:44 am; edited 4 times in total |
|
| Back to top |
|
 |
garry
Joined: 19 Apr 2005 Posts: 944 Location: switzerland
|
Posted: Tue Feb 20, 2007 7:25 pm Post subject: |
|
|
Nice script, I don't understand DllCall, I tried with DOS before
| Code: | runwait,%comspec% /c ipconfig /all |find /V "XXXX" >ipconfig.txt,,hide
run,ipconfig.txt |
|
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2328
|
Posted: Fri Feb 23, 2007 3:54 am Post subject: |
|
|
Hi Sean. Your version has a few interesting differences. Thanks for sharing . |
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Fri Feb 23, 2007 4:19 am Post subject: |
|
|
| corrupt wrote: | Hi Sean. Your version has a few interesting differences. Thanks for sharing . |
It's my pleasure! |
|
| Back to top |
|
 |
Chris Site Admin
Joined: 02 Mar 2004 Posts: 10450
|
Posted: Thu Apr 26, 2007 6:54 pm Post subject: |
|
|
I've added a link to this great script from the script showcase.
I'm sure you have better things to do with your time, but the topmost post could use a bit more introduction (even a single sentence), and possibly a simple usage example. When I examine a post for accessibility and presentation, I ask:
1) What is somone's first impression upon viewing this post?
2) Can someone find out the gist of the post in under 30 seconds? (This helps them decide whether to continue reading the whole thing.)
Thanks for sharing your proficiency and creativity. |
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Thu Apr 26, 2007 11:54 pm Post subject: |
|
|
| Chris wrote: | | I've added a link to this great script from the script showcase. |
Thanks for adding the link to my script in this great place.
| Quote: | | I'm sure you have better things to do with your time, but the topmost post could use a bit more introduction (even a single sentence), and possibly a simple usage example. |
Now it's going to be weekend, I'll update the script, maybe adding StdIn too.
Thanks for pointing it out. |
|
| Back to top |
|
 |
toralf
Joined: 31 Jan 2005 Posts: 3842 Location: Bremen, Germany
|
Posted: Fri Apr 27, 2007 5:59 am Post subject: |
|
|
I would be interested in these points:
- Is it reliable/fail save?
- Are there any limitations on commands to be used?
- Is it fast? It looks like, since it seems to be using far less commands then CmdRet.
- How could a working directory be specified?
Has someone tested this code? _________________ Ciao
toralf  |
|
| Back to top |
|
 |
BoBoĻ Guest
|
Posted: Fri Apr 27, 2007 8:01 am Post subject: |
|
|
| Quote: | | and possibly a simple usage example. | I've to backup Chris' proposal. Noobs (I guess not necessarily your target audience ) will definitely benefit from having a sample to understand its full potential. Thx for sharing it.  |
|
| Back to top |
|
 |
majkinetor
Joined: 24 May 2006 Posts: 3544 Location: Belgrade
|
Posted: Fri Apr 27, 2007 8:31 am Post subject: |
|
|
Sean, thx for this great func.
One question: can you make it async ? _________________
 |
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Fri Apr 27, 2007 12:57 pm Post subject: |
|
|
| majkinetor wrote: | | One question: can you make it async ? |
I updated the script, however, it's a preliminary version yet.
Anyway, do you mean like this by async? |
|
| Back to top |
|
 |
majkinetor
Joined: 24 May 2006 Posts: 3544 Location: Belgrade
|
Posted: Fri Apr 27, 2007 1:57 pm Post subject: |
|
|
No. I mean about equivalent to CMDRet_Stream
Btw, I was always wondering is it possible to
| Quote: | | ; Create the console app without creating a console window |
so thx for this. _________________
 |
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Fri Apr 27, 2007 2:20 pm Post subject: |
|
|
Well, I failed to see a difference if I understood it correctly.
The StdOutput() in my script didn't wait until the console app finished either.
It also retrieved the data whenever available. Was that what you meant? |
|
| Back to top |
|
 |
majkinetor
Joined: 24 May 2006 Posts: 3544 Location: Belgrade
|
Posted: Fri Apr 27, 2007 2:37 pm Post subject: |
|
|
The difference is CMDRet_Stream notifies you on each new line, not after everything is finnished. Your version works like non stream version of CMDRet.
Anyway, its hard to define how this should work. For instance systeminfo command first displays status of currently scaned system item in the first line, deliting its contenst to show new status. Then it writes output normaly after everything is collected. Similar is Lame compressor which uses single line to update procentage.
When calling rar console app, CMDRet will return this string also
| Code: | | File name... 0% 1% 2% 3% .... 99% OK. |
While rar is compressing single file it changes single line and CMDRet returns each changed char. CMDRet_Stream doesn't do that as timer is slow. I wonder is there any reliable solution with AHK to be sure you got everything program wrote... CMDRet seams to catch all, but it is non async (i.e. the user routine is not called as soon as change is there) _________________
 |
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 1141
|
Posted: Fri Apr 27, 2007 3:21 pm Post subject: |
|
|
| majkinetor wrote: | | The difference is CMDRet_Stream notifies you on each new line, not after everything is finnished. Your version works like non stream version of CMDRet. |
I see, you meant line-by-line retrieving.
PS. I just noticed the SetTimer there. |
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2328
|
Posted: Sat Apr 28, 2007 5:19 pm Post subject: |
|
|
| majkinetor wrote: | When calling rar console app, CMDRet will return this string also
| Code: | | File name... 0% 1% 2% 3% .... 99% OK. |
While rar is compressing single file it changes single line and CMDRet returns each changed char. CMDRet_Stream doesn't do that as timer is slow. | This isn't due to a slow timer in CMDret_Stream but due something that was overlooked. CMDret_Stream doesn't currently trigger on new output but triggers when a new line is added. This is why the information is usually retrieved after execution instead of during. However, due to an apparent lack of interest in CMDret, although it is still being developed, I have decided not to spend the time posting any updates for it. CMDret was originally provided as a function to allow people at the forum an opportunity to participate in development in hopes that the result would inspire Chris to add this functionality (possibly with similar syntax and functionality of the version(s) posted) as a built-in command/function in AutoHotkey. This does not seem to have turned out to be the case unfortunately. I will likely post one more updated version soon with a message in the first post indicating that the version posted will be the final version.
Sean, It looks like your version is coming along nicely . I would have preferred if it the functionality was produced as a single function instead of several functions that rely on each other but some people tend to prefer things broken apart in small pieces. It's all good .
One of the main reasons for CMDret creating a hidden console window was for compatibility for a few specific applications and for creating workarounds for 16 bit applications (unreleased versions). This difference can be made in either version by modifying one line of code though. |
|
| Back to top |
|
 |
|