问一个关于winexec的问题!(50分)

  • 主题发起人 主题发起人 sh6
  • 开始时间 开始时间
S

sh6

Unregistered / Unconfirmed
GUEST, unregistred user!
我用winexec('netstat>tmp.txt',sw_show);
tmp.txt应该保存netstat的执行结果!但为什麽tmp.txt文件总是没有变化!
 
winexec('c:/windows/netstat.exe > tmp.txt',sw_show);
 
是不是'command/c netstat>tmp.txt' ?
 
还是不行!
 
其实Winexec和开始菜单中的run是一样的,
我在那里边试了,也是不行,不知道怎么回事,
而在dos下就可以,真是莫名其妙!!!!
 
需要用输出重定向
以VC++语言代码为例:
main()
{
/* 保存标准输出和标准错误输出设备句柄 */
int _stdout = fileno(stdout);
int _stderr = fileno(stderr);
/* 创建文件 */
int fd = open("tmp.txt", O_WRONLY | O_CREAT | O_TRUNC);
close(fileno(stdout)); // 关闭标准输出
dup2(fd, fileno(stdout)); // 将标准输出重定向到你的文件
close(fileno(stderr)); // 关闭标准错误输出
dup2(fd, fileno(stderr)); // 将标准错误输出重定向到你的文件

winexec("netstat", SW_HIDE); // 执行命令

/* 一下恢复现场 */
close(fd);
dup2(_stdout, fileno(stdout));
close(fd);
dup2(_stderr, fileno(stderr));
return 0;
}

 
能以delphi为例么?
 
可以用API,函数为ShellExecute
 
应该是 winexec('command /c nbtstat -a aIp > aTemp.text', sw_Normal);
 
不要怪别人不理你,看看你自己能记住自己的帐号么??
说说,shuoshuo,shshsh,sh1,sh2……,sh8,sh9……
该结束的题自己结束吧!!!!!!
 
后退
顶部