1.引用别的程序的units
2.用messagebox(),使用的系统资源比较少
3.reg:Tregister
reg:=Tregister.create(self);
reg:=....
open key()
....
closekey()
.....
2.用messagebox(),使用的系统资源比较少
3.reg:Tregister
reg:=Tregister.create(self);
reg:=....
open key()
....
closekey()
.....
2。重定向到一个临时文本文件中 然后 打开文本文件 就可以了
3。楼上说的没错
接受lx_king的第一点另外我不想重定向到文本,这个我会。我要直接能够接收别的程序的输出信息!另外上面三点问题有详细源码的给高分!!
http://community.borland.com/article/0,1410,10387,00.html谁有Delphi的例子呢??谁来解释解释CreatePipe的用法!
//保存stdout
hSaveStdout := GetStdHandle(STD_OUTPUT_HANDLE);
//创建一个匿名管道(将子进程的Output重定向到父进程的Input里)
CreatePipe(ParentInput, ChildOutput, @SecurityAttributes, SizeOf(SecurityAttributes));
//将标准输出替换为ChildOutput
SetStdHandle(STD_OUTPUT_HANDLE, ChildOutput);
//创建一个不可被继承的Input副本
hProcess := GetCurrentProcess;
DuplicateHandle(hProcess, ParentInput, FProcess, @DuplicateInput, 0, False, DUPLICATE_SAME_ACCESS);
//将原来的Input关闭
CloseHandle(ParentInput);
//创建一个子进程(例如masm.exe xxx),将其中的继承属性设为真
CreateProcess(...);
//恢复stdout
SetStdHandle(STD_OUTPUT_HANDLE, hSaveStdout);
CloseHandle(ChildOutput);
//从管道中(即ParentInput的副本)读取数据
ReadFile(DuplicateInput, Buffer, SizeOf(Buffer), TransSize, nil);
以后有问题再问大家。