0

美好的一天,伙计们。

目前,我正在开发一个代码来执行我保存为 *.ttl 文件的 Teraterm 宏。文件名为“new.ttl”,内容如下:

显示0

归档删除'a.txt'

暂停 5

:关闭

壁橱

因此,逻辑只是删除​​“a.txt”文件,等待 5 秒并关闭 Teraterm。当我使用 Teraterm 手动运行这个 new.ttl 时,它可以完美运行,我在选项卡控件>宏中加载宏。在我开始编写更复杂的代码之前,这个简单的 .ttl 文件仅供我试用。

现在,我尝试使用 C# 启动 .ttl 文件。代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Threading;
using System.Diagnostics;

namespace TeraTermConnect
{
    class Program
    {
        static void Main(string[] args)
        {
            //Declare process for .ttl
            Process process = new Process();
            ProcessStartInfo start = new ProcessStartInfo();

            //variables
            string ttlpath = @"C:\TeraTermConnect\TeraTermConnect";
            string ttl = "new.ttl";
            string ttpHidden = @"/V";

            //start the .ttl file
            start.FileName = ttlpath;
            start.Arguments = ttpHidden + ttl;
            start.UseShellExecute = false;            

            //Tried a lot of thing here, not sure how to run the .ttl
            Process.Start(start);

            Thread.Sleep(5000);

            Console.WriteLine("The process is over");
            Console.WriteLine();
            Console.WriteLine("Check the text file...");
            Console.WriteLine();
            Console.WriteLine("Hit enter to exit...");
            Console.ReadKey();
        }
    }
}

执行运行没有任何错误,但结果与预期不符。执行后,我可以看到“a.txt”仍然在代码中提到的路径中。我不确定我哪里出错了。在我开发一个更复杂的 .ttl 文件并通过 c# 执行它之前,这只是我的一个开始。

非常感谢您的帮助。非常感谢你。

4

1 回答 1

0

美好的一天,伙计们,

经过2天的努力,我终于得到了答案。

using System;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;

namespace TeraTermConnect
{
    class Program
    {
        static void Main(string[] args)
        {
            //Declare process for .ttl
            Process process = new Process();
            ProcessStartInfo start = new ProcessStartInfo();

            //variables
            string ttlpath = @"C:\Program Files (x86)\teraterm\" + @"TTPMACRO";
            string ttl = "new.ttl";
            string ttpHidden = @"/V ";
            ProcessStartInfo start = new ProcessStartInfo();

            //start the .ttl file
            start.FileName = ttlpath;
            start.Arguments = ttpHidden + ttl;
            start.UseShellExecute = false;            

            process.StartInfo = start;

            try
            {
                Process.Start(start);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            Console.WriteLine("The process is over");
            Console.WriteLine();
            Console.WriteLine("Check the text file...");
            Console.WriteLine();
            Console.WriteLine("Hit enter to exit...");
            Console.ReadKey();
        }
    }
}

我目前使用的 Teraterm 版本是 4.94,我还安装了 TTLEditor 版本 1.5 来创建 .TTL 文件。问题似乎是,

1) 要从 C# 以编程方式执行 .TTL 文件,我需要将 .TTL 文件放在我系统中 TTPMACRO.EXE 和 TTERMPRO.EXE 所在的同一文件夹中。这由我的代码中的字符串值 ttlpath 显示。

2) 在 ttlpath 中,字符串值 @"TTPMACRO" 需要添加到文件夹中,因为这将使 .TTL 文件成为可执行文件。

而且,为了您的信息,在我的系统中,如果执行 .TTL 文件的逻辑,将删除的文本文件 a.txt 位于:C:\Users\Admin\AppData\Local\VirtualStore\Program Files ( x86)\teraterm

有关如何运行 teraterm 宏文件的更多信息,请参阅此链接; https://ttssh2.osdn.jp/manual/en/macro/howtorun.html

祝你今天过得愉快..

哈里

于 2017-03-09T04:52:17.940 回答