关于shell的问题? 郁闷了2天了~~~~~

sear 2004-07-13 09:26:42
我现在有个项目是用ASP开发的想实现取MAC地址功能,因此运用了DLL技术,, 我在DLL程序里想执行一个Shell("C:\Windows\System32\CMD.EXE" , 1) 但是编译后在运行的时候却出现
Invalid procedure call or argument 的错误...

但是改为 Shell("C:\Windows\NOTEPAD.EXE" , 1) 却成功... 请问为什么呀

另外,Shell("C:\Windows\System32\Ipconfig /all > D:\IPInfor.txt" , 1) 也是同样的错误
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sear 2004-07-14
  • 打赏
  • 举报
回复
TTTTTTT
sear 2004-07-14
  • 打赏
  • 举报
回复
谢谢大家的回复,,, 可是问题依旧是没有解决呀 还是显示Invalid procedure call or argument 的错误 下面的模块的代码
'获取MAC地址的组件方法实现二
Public Sub GetMacAddress2()
Dim Str_Cmd As String
Dim BatFilePath As String
Dim CmdRe As Long

BatFilePath = App.Path + "\copyhelp.txt"
Str_Cmd = "Cmd.exe /C Ipconfig.exe /all > " + BatFilePath
'Obj_Response.Write Str_Cmd
CmdRe = Shell(Str_Cmd, vbHide)
End Sub

不知道哪位高人能帮下忙 我是及度郁闷呀~~~ 对了 我用的是2003的系统 把Str_Cmd变量的字符串输出 在运行里 执行 一切ok 但是在程序里就抱Invalid procedure call or argument 的错误 郁闷呀~~~
我是在ASP页面里引用这个DLL的 全部错误显示是

YLCmsSystem 错误 '800a0005'
Invalid procedure call or argument
/mac.asp,行 7

mac.asp,行 7 代码为:
Obj_Mac.GetMacAddress2()
xingzhiyun 2004-07-13
  • 打赏
  • 举报
回复
到晚上查查有个vbpipe.dll
这个dll可以把dos命令的输出直接在内存中接收,叫做输出重定向功能,这些功能在.net中是小儿科,可是在vb中的调动一大堆api,幸好有人把它做成了dll。
还有用ipconfig实际是不好的做法,如果安装了多块网卡,则会显示多个mac地址。应该在服务器端进行读取这样才是最可靠的方法。因为和某个源连接的只有一块网卡。
helanshan 2004-07-13
  • 打赏
  • 举报
回复
我编过一个小程序,用Shell调用了很多系统程序,相当于一个快捷方式集合,想要的话留下
QQ或EMAIL
helanshan 2004-07-13
  • 打赏
  • 举报
回复
操作系统不一定装在C:如果指定路径会造成错误,并且因操作系统的关系
(98为command.com,2K/XP为CMD.com)也可能造成错误。
不用指定路径就可以直接使用: Shell "command.com", 1
以上Shell语句在98/XP双系统下通过。。

northwolves 2004-07-13
  • 打赏
  • 举报
回复
没问题啊
Private Sub Form_Load()
Shell "C:\Windows\System32\CMD.EXE", 1
End Sub
sear 2004-07-13
  • 打赏
  • 举报
回复
怎么没有人回复呀~~~~ 这个问题是太简单了没有人愿意回答 还是太难了没有人回答的上来呀~~ 郁闷了 请大家帮帮忙吧~~~

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧