使用 C# 启动 TeraTerm 宏
Launch TeraTerm macro using C#
大家好。
目前,我正在开发代码来执行我保存为 *.ttl 文件的 Teraterm 宏。文件名为"new.ttl",内容如下:
showtt 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# 执行它之前,这对我来说只是一个开始步骤。
非常感谢您的帮助。非常感谢。
大家好,
经过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 文件 (x86)\teraterm
有关如何 运行 teraterm 宏文件的更多信息,请参阅此 link;
https://ttssh2.osdn.jp/manual/en/macro/howtorun.html
祝你有美好的一天..
哈里
大家好。
目前,我正在开发代码来执行我保存为 *.ttl 文件的 Teraterm 宏。文件名为"new.ttl",内容如下:
showtt 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# 执行它之前,这对我来说只是一个开始步骤。
非常感谢您的帮助。非常感谢。
大家好,
经过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 文件 (x86)\teraterm
有关如何 运行 teraterm 宏文件的更多信息,请参阅此 link; https://ttssh2.osdn.jp/manual/en/macro/howtorun.html
祝你有美好的一天..
哈里