关于程序调用win7自带的telnet功能的疑问

茉妮卡 2012-08-05 05:40:36
首先,我已十分确定一定以及肯定已经安装了win7自带的telnet功能。
在cmd上,敲telnet,可以转入telnet的客户端命令行。

欢迎使用 Microsoft Telnet Client

Escape 字符为 'CTRL+]'

Microsoft Telnet>


可为什么用createprocess启用起来的cmd.exe,却不能用telnet?随便其他的ping,就可以。

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

D:\其他工程\HelloWorld\2>telnet
telnet
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\其他工程\HelloWorld\2>ping 127.0.0.1
ping 127.0.0.1

正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64

127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

D:\其他工程\HelloWorld\2>


即使是我先cd到telnet.exe的当前目录,也说找不到这个文件。

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

D:\其他工程\HelloWorld\2>c:
c:

C:\>cd Windows
cd Windows

C:\Windows>cd system32
cd system32

C:\Windows\System32>telnet.exe
telnet.exe
'telnet.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Windows\System32>.\telnet.exe
.\telnet.exe
'.\telnet.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Windows\System32>type .\telnet.exe
type .\telnet.exe
系统找不到指定的文件。

C:\Windows\System32>type .\ping.exe
type .\ping.exe
记w跃莣厸3繻???€8?鑻YY吚t+婡$凌餍冟荅
ing"
...全文
621 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
写代码的可可 2014-07-03
  • 打赏
  • 举报
回复
同问 回显信息如何得到?
pangxuesong 2013-10-18
  • 打赏
  • 举报
回复
楼主,找到telnet.exe之后,CreateProcess一个telnet并用管道与其交互,有回显么?
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

恩 ,很有可能是你的参数设置错误,你可以先检查一下你的参数, 如果实在不行的话, 就这样做:
你建立一个cmd的双工管道, 然后通过管道让cmd运行telnet命令,再通过管道把结果返回来, 这样应该可以达到目的了
[/Quote]
是的,我创建的cmd,就是用读写管道来输入输出的。呃,这头像怎么看起来像小马啊。
海海海 2012-08-05
  • 打赏
  • 举报
回复
恩 ,很有可能是你的参数设置错误,你可以先检查一下你的参数, 如果实在不行的话, 就这样做:
你建立一个cmd的双工管道, 然后通过管道让cmd运行telnet命令,再通过管道把结果返回来, 这样应该可以达到目的了
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

在你的程序运行的cmd里面
dir c:\windows\sysnative\telnet.exe
[/Quote]
找到了,神奇,百度了一下sysnative,学习了,谢谢。
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
在你的程序运行的cmd里面
dir c:\windows\sysnative\telnet.exe
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

你的程序32?
[/Quote]
是的。我用VC++ 6.0编的,难道得换个64位的编译器?
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
你的程序32?
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

64位windows?
[/Quote]
是的,64位win7,什么问题?
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
64位windows?
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

那就说明telnet不在这个system32,你先用普通方法运行telnet,然后用任务管理器查看文件位置
[/Quote]
运行telnet后,在任务管理器的进程里面找到telnet,然后右键“打开文件位置”,就直接打开C:\Windows\System32,然后标记在telnet.exe。
之前你说的dir C:\Windows\System32\telnet.exe,用cmd去执行,也是可以找到,就是我程序创建的cmd找不到。
C:\Users\acer>dir C:\Windows\System32\telnet.exe
驱动器 C 中的卷是 ACER
卷的序列号是 1E81-90EF

C:\Windows\System32 的目录

2009/07/14 09:39 79,872 telnet.exe
1 个文件 79,872 字节
0 个目录 52,533,841,920 可用字节
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
那就说明telnet不在这个system32,你先用普通方法运行telnet,然后用任务管理器查看文件位置
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

dir C:\Windows\System32\*.exe
看有没有telnet
[/Quote]
没有telnet,是怎么回事呢?
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
dir C:\Windows\System32\*.exe
看有没有telnet
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

dir C:\Windows\System32\telnet.exe
[/Quote]

也是不行,找不到。

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

D:\其他工程\HelloWorld\2>dir C:\Windows\System32\telnet.exe
dir C:\Windows\System32\telnet.exe
驱动器 C 中的卷是 ACER
卷的序列号是 1E81-90EF

C:\Windows\System32 的目录

找不到文件

D:\其他工程\HelloWorld\2>
Lactoferrin 2012-08-05
  • 打赏
  • 举报
回复
dir C:\Windows\System32\telnet.exe
茉妮卡 2012-08-05
  • 打赏
  • 举报
回复
后面ping.exe,都可以找得到,为什么telnet.exe就说找不到呢?
那个目录下面是有的。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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