C#cmd提示符无法看到telnet.exe

时间:2016-07-14 20:07:26

标签: c# cmd telnet

我使用C#和控制台程序来创建一个新的cmd进程,没有重定向stdin或stdout,所以我可以从这里输入命令行。 (我从那里使用telnet时遇到了麻烦,所以这一步只是一次调查。) 能够输入窗口并接收输出。 当我切换到c:Windows \ system32时,输入dir te * .exe不显示任何内容。 在我直接创建的另一个命令提示符中,我看到了文件(telnet.exe)。 关于什么是错的任何建议?

    {

        ProcessStartInfo startInfo = new ProcessStartInfo(@"cmd.exe"); 
        startInfo.UseShellExecute = false;
        startInfo.CreateNoWindow = true;
        startInfo.WindowStyle = ProcessWindowStyle.Normal; 
        startInfo.CreateNoWindow = false;
        startInfo.Arguments = host;
        using (Process p = new Process())
        {
            p.StartInfo = startInfo;
            p.Start();
        }
    }

3 个答案:

答案 0 :(得分:3)

我相信,自Windows 7以来,您必须将Telnet安装为Windows功能。

Here您有一个在Win 7上启用Telnet的指南,但它适用于Win 8.1和Windows 10。

万一您无法阅读该网站,步骤如下:

转到“控制面板” - >程序 - >打开或关闭Windows功能 - >向下滚动,直到找到Telnet客户端选项

答案 1 :(得分:0)

基于上面的文章,查看了项目构建属性。 平台目标设置为x86。 改为"任何CPU"至少让我看到这个节目!

BTW我在发布这个帖子之前已经找了几天的答案了,但是在相关的边缘 - " C#创建的新进程无法访问某些文件"在我创建这个问题之后给了我信息

谢谢,启发式!

答案 2 :(得分:0)

这是一个非常狡猾的人。当您使用Windows资源管理器或直接打开命令提示符时,您正在启动64位进程。当您使用Process.Start()启动“cmd.exe”时,您将获得与启动它的进程相同的版本。在您的情况下,您正在创建一个32位进程,因此您将获得32位版本的命令提示符。如果您将项目更改为创建目标x64,您将看到文件!

为什么会这样?因为,根据您是通过32位还是64位应用程序访问System32,您实际上将访问不同的 System32文件夹!有关详细信息,请点击此链接:

https://superuser.com/questions/330941/some-files-in-system32-not-accessible-outside-explorer-on-windows-7