这个程序我现在还没有源程序,只有可执行程序。
进入程序后,就进入了程序命令行(象FTP似的:ftp>...。这个软件是:hts>...的命令行提示符),命令有好多个,还带有参数。命令的返回值是 字符串 或是 表格(行、列都不定)。
我想实现的是提供一个可视化的操作界面,将输入、输出都在可视化界面内进行。可以说我这个程序是一个外壳程序,我不知道怎么和这样的程序交互?怎么样接收程序的返回值?
20 个解决方案
#1
关注!
#2
用ShellExecute,具体你看看msdn
#3
关注
#4
用反编译工具得到它的汇编码,然后将JMP改到你的程序
#5
关注
#6
有没有高手帮帮忙?
#7
用ShellExecute函数,调用参数是比较好办的,现在关键是怎样得到他们的返回参数,
返回的具体有哪些类的参数呢?
返回的具体有哪些类的参数呢?
#8
你的问题很cool,但我还不太明白。那个console程序的返回值是一个退出码,即main()返回的东西,还是它大段大段的输出?如果是前者则简单多了,如果是后者则很难,你恐怕要出高分多吸引点人来关注了。500分不多。
#9
如果他的程序中用了stdin和stdout,你可以考虑用管道来实现你的要求。
将你的程序中的控制命令通过管道传递给console程序,输出也通过管道传输回来,
返回给你的界面。该方法可以试一试。
将你的程序中的控制命令通过管道传递给console程序,输出也通过管道传输回来,
返回给你的界面。该方法可以试一试。
#10
我给高分300,希望这么做不会伤害高手大虾的自尊心
#11
1.把你自己的可视化程序作为主程序,控制台程序作为一个其的一个系统调用执行:
system("hts ....");
2.将控制台程序的输出重定向到一个文本文件
system("hts para > test.txt");
3.用你自己的可视化程序分析文本文件并做相应输出
system("hts ....");
2.将控制台程序的输出重定向到一个文本文件
system("hts para > test.txt");
3.用你自己的可视化程序分析文本文件并做相应输出
#12
不过这样做的缺点是在你的程序system调用hts时,会跳出一个控制台窗口,你可设置MS_DOS属性为最小化。
二。你也可用CREATEPROCESS
二。你也可用CREATEPROCESS
#13
这个问题以前有人问过我,当时要升级的程序是DOS的集成电路版图设计软件,我当时的回答就是不可能。
不过象你这种纯字符交互的,可能有办法,刚才在MSDN里翻了翻,找到一个东西,关于控制台程序I/O重定向的,主题:"How to Spawn a Console App and Redirect Standard Handles"
不过象你这种纯字符交互的,可能有办法,刚才在MSDN里翻了翻,找到一个东西,关于控制台程序I/O重定向的,主题:"How to Spawn a Console App and Redirect Standard Handles"
#14
给你一个思路,调用CreateProcess,然后将你要执行的程序的输入和输出流重定项
#15
大虾们说的好,能不能具体一点?
#16
简单,这是输入出重定向问题,msdn里有例子:
HOWTO: Spawn Console Processes with Redirected Standard Handles
HOWTO: Spawn Console Processes with Redirected Standard Handles
#17
winmain() 函数的第3个参数即可交互命令行
#18
是不是研究一下Win32 console API? 如,
ReadConsoleOutput()
ReadConsoleOutput()
#19
我有delphi的例子
原理是createprocess + 重定向I/O
原理是createprocess + 重定向I/O
#20
You can use the API "ShellExecute" or "ShellExecuteEx". If you don't its argv that you can find it at MSDN.
Try to do, and you will reslove it easily.
Try to do, and you will reslove it easily.
#21
#1
关注!
#2
用ShellExecute,具体你看看msdn
#3
关注
#4
用反编译工具得到它的汇编码,然后将JMP改到你的程序
#5
关注
#6
有没有高手帮帮忙?
#7
用ShellExecute函数,调用参数是比较好办的,现在关键是怎样得到他们的返回参数,
返回的具体有哪些类的参数呢?
返回的具体有哪些类的参数呢?
#8
你的问题很cool,但我还不太明白。那个console程序的返回值是一个退出码,即main()返回的东西,还是它大段大段的输出?如果是前者则简单多了,如果是后者则很难,你恐怕要出高分多吸引点人来关注了。500分不多。
#9
如果他的程序中用了stdin和stdout,你可以考虑用管道来实现你的要求。
将你的程序中的控制命令通过管道传递给console程序,输出也通过管道传输回来,
返回给你的界面。该方法可以试一试。
将你的程序中的控制命令通过管道传递给console程序,输出也通过管道传输回来,
返回给你的界面。该方法可以试一试。
#10
我给高分300,希望这么做不会伤害高手大虾的自尊心
#11
1.把你自己的可视化程序作为主程序,控制台程序作为一个其的一个系统调用执行:
system("hts ....");
2.将控制台程序的输出重定向到一个文本文件
system("hts para > test.txt");
3.用你自己的可视化程序分析文本文件并做相应输出
system("hts ....");
2.将控制台程序的输出重定向到一个文本文件
system("hts para > test.txt");
3.用你自己的可视化程序分析文本文件并做相应输出
#12
不过这样做的缺点是在你的程序system调用hts时,会跳出一个控制台窗口,你可设置MS_DOS属性为最小化。
二。你也可用CREATEPROCESS
二。你也可用CREATEPROCESS
#13
这个问题以前有人问过我,当时要升级的程序是DOS的集成电路版图设计软件,我当时的回答就是不可能。
不过象你这种纯字符交互的,可能有办法,刚才在MSDN里翻了翻,找到一个东西,关于控制台程序I/O重定向的,主题:"How to Spawn a Console App and Redirect Standard Handles"
不过象你这种纯字符交互的,可能有办法,刚才在MSDN里翻了翻,找到一个东西,关于控制台程序I/O重定向的,主题:"How to Spawn a Console App and Redirect Standard Handles"
#14
给你一个思路,调用CreateProcess,然后将你要执行的程序的输入和输出流重定项
#15
大虾们说的好,能不能具体一点?
#16
简单,这是输入出重定向问题,msdn里有例子:
HOWTO: Spawn Console Processes with Redirected Standard Handles
HOWTO: Spawn Console Processes with Redirected Standard Handles
#17
winmain() 函数的第3个参数即可交互命令行
#18
是不是研究一下Win32 console API? 如,
ReadConsoleOutput()
ReadConsoleOutput()
#19
我有delphi的例子
原理是createprocess + 重定向I/O
原理是createprocess + 重定向I/O
#20
You can use the API "ShellExecute" or "ShellExecuteEx". If you don't its argv that you can find it at MSDN.
Try to do, and you will reslove it easily.
Try to do, and you will reslove it easily.