- NSIS Discussion
- Get results of executable
Archive: Get results of executable
daisywheel
10th July 2007 08:34 UTC
Get results of executable
...sorry for maybe usual question...but I spent half an hour and can't find an answer
How can I get result of silent executable file? Let's say I want to run some.exe with some_params and get output from console(of course some.exe is console app).
tnx,
Roman
Red Wine
10th July 2007 08:39 UTC
See the included NsExec plugin.
daisywheel
10th July 2007 13:15 UTC
Originally posted by Red Wine
See the included NsExec plugin.
I use
ExecWait '"$TEMP\WhoUses.exe -m kernel32.dll" > "c:\WhoUses.txt"'
or
nsExec::Exec '"$TEMP\WhoUses.exe -m kernel32.dll" > "c:\WhoUses.txt"'
but it doesn't work.
Can you help?
Anders
10th July 2007 13:32 UTC
try using nsExec::ExecToStack without the redirection
Afrow UK
10th July 2007 14:24 UTC
Yeh, use ExecToStack.
The reason your output redirection was not working was because you need to use COMSPEC.
By the way, I'm working on a plugin so that you don't have to use WhoUses.exe. It uses the same Windows NT+ only undocumented API's but with an embedded NSIS list displaying programs to close.
Stu
daisywheel
10th July 2007 15:02 UTC
I feel lack of info on nsExec. Where can find the description of this plugin?
Anders
10th July 2007 15:11 UTC
http://nsis.sourceforge.net/Docs/nsExec/nsExec.txt (First hit on google btw)
daisywheel
10th July 2007 15:14 UTC
yes, you are right but I was looking in plugins and nsExec::Exec in google
daisywheel
10th July 2007 15:39 UTC
guys, it doesn't work...
StrCpy $3 '$TEMP\WhoUses.exe -m kernel32.dll > c:\WhoUses.txt'
nsExec::ExecToStack $3
FileOpen $0 'c:\WhoUses1.txt' 'w'
FileWrite $0 $3
FileClose $0
but command stored in c:\WhoUses1.txt is ok
daisywheel
10th July 2007 16:36 UTC
finally I've done it
StrCpy $3 '$TEMP\WhoUses.exe -m kernel32.dll'
nsExec::ExecToStack $3
Pop $0
Pop $1
MessageBox MB_OK "$1"
NSIS become really challenging. Feel like I'm a first week in IT :)
Afrow UK
10th July 2007 17:04 UTC
My NSIS plugin will be ready soon which works faster than WhoUses.exe and does not use Microsoft Foundation Classes.
It also avoids the awful use of TerminateThread which results in a memory leak that WhoUses.exe has. Last of all, it avoids the system latch up of NtQueryObject which occurs on file handles that it does not have access to.
Stu
daisywheel
11th July 2007 07:00 UTC
I'm really looking forward to your plugin. I even was going to write similar plugin to implement some my requirements. I have some troubles with WhoUses and I'd really like to have NSIS functionality similar to embedded in InstallShield when it says what applications are using/blocking system resources your want to have access to.
One more comment: it would be useful to get not only exe file name like firefox.exe but also description of application which will help user to find it in tray. In my case: WINAMP.COM | Forums - Reply to Topic - Mozilla Firefox
So, when can we expect your great plugin? :)
Afrow UK
11th July 2007 10:56 UTC
Sorry, I should have said;
http://forums.winamp.com/showthread.php?threadid=274168
Stu
daisywheel
11th July 2007 11:01 UTC
cool!
Great job!
I'll test it asap