首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VC/MFC
硬件/系统
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
【特殊】VC中如何调用system32的命令行exe
[已结帖,结帖人:biggerstone]
加为好友
发送私信
在线聊天
biggerstone
bingstone
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
结帖率:
0.00%
发表于:
2008-08-19 17:07:30
楼主
我在XP系统下VC程序中,想调用windows\system32下的diskpart.exe自动进行分区。但该命令需要带参数。我试验了以下方式:
(1)使用ShellExecute()
char *szDiskPart = "diskpart.exe";
char szCommand[64] = {0};
sprintf(szCommand, "list disk");
ShellExecute(NULL, "open", szDiskPart, szCommand, NULL, SW_SHOW);
无法实现打印磁盘列表。 将ShellExecute中szCommand改成NULL,倒是可以显示出界面??
(2)使用system("diskpart")也可以出现界面,当使用system("diskpart list disk")就不行。
请问如何在VC程序中实现,类似在命令行diskpart>后输入list disk的功能???
问题点数:
10
回复次数:
8
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
biggerstone
bingstone
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-20 09:50:29
1
楼 得分:
0
顶啊
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lake_cx
等级:
可用分等级:
富农
总技术分:
8689
总技术分排名:
2447
发表于:
2008-08-20 10:48:53
2
楼 得分:
2
ShellExecute(NULL, "open", NULL, "diskpart.exe list disk", NULL, SW_SHOW);
就可以了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
maomaoxiong
毛毛熊
等级:
可用分等级:
掌柜
总技术分:
946
总技术分排名:
20360
发表于:
2008-08-20 11:29:48
3
楼 得分:
2
diskpart list disk语法错误,找到diskpart带参数使用的正确语法,然后填到system()中去调用
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
biggerstone
bingstone
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-20 16:07:29
4
楼 得分:
0
To 3楼:diskpart list disk确实是语法错误,只能使用diskpart /s scriptfile.txt的格式,但是system(“diskpart /s scriptfile.txt”),
但这样如何实现隐藏窗口呢?
我试验了都不能达到目的(根本就没有执行partition.txt脚本):
WinExec("diskpart /s partition.txt >> 3.txt ", SW_SHOW);
ShellExecute(NULL, "open", "diskpart /s partition.txt >> 3.txt ", NULL, NULL, SW_SHOW);
system("diskpart /s partition.txt >> 3.txt ")可以实现功能,但会闪出窗口来,想隐藏怎么办??
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
biggerstone
bingstone
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-20 16:12:54
5
楼 得分:
0
非常奇怪system("diskpart /s partition.txt >> 3.txt ")可以实现功能。
而WinExec("diskpart /s partition.txt >> 3.txt ", SW_SHOW);
ShellExecute(NULL, "open", "diskpart /s partition.txt >> 3.txt ", NULL, NULL, SW_SHOW); 却不能???
谁能说说:system和WinExec,ShellExecute有什么区别???
大侠们帮忙,再不解决就要丢饭碗了!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lake_cx
等级:
可用分等级:
富农
总技术分:
8689
总技术分排名:
2447
发表于:
2008-08-20 16:40:48
6
楼 得分:
2
用ShellExecute(NULL, "open", NULL, "diskpart /s partition.txt >> 3.txt", NULL, SW_SHOW);
“diskpart /s partition.txt >> 3.txt”这个是命令行
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lake_cx
等级:
可用分等级:
富农
总技术分:
8689
总技术分排名:
2447
发表于:
2008-08-20 16:42:06
7
楼 得分:
2
一般我会用CreateProcess,可以返回句柄等待它结束
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dux003
rare
等级:
可用分等级:
贫农
总技术分:
280
总技术分排名:
50866
发表于:
2008-08-21 18:13:02
8
楼 得分:
2
嗯,用CreateProcess和管道应该可以解决
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友