2017-03-07 85 views
0

美好的一天傢伙。使用C啓動TeraTerm宏#

目前,我正在開發一個代碼來執行Teraterm宏,我保存爲* .ttl文件。該文件的名稱是 「new.ttl」 和含量如下:

showtt 0

filedelete 'A.TXT'

暫停5

:關閉

closett

所以,邏輯就是刪除「a.txt」文件,等待5秒鐘並關閉Teraterm。當我使用Teraterm手動運行它時,這個new.ttl完美地工作,我在tab控件>宏中加載宏。在我開始編寫更復雜的代碼之前,這個簡單的.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#執行之前,這只是我的一個開始步驟。

您的幫助深表謝意。非常感謝你。

回答

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文件。看來問題是,我需要將.TTL文件放在我的系統中TTPMACRO.EXE和TTERMPRO.EXE所在的同一文件夾中。要在C#中以編程方式執行.TTL文件,這是由我的代碼中的字符串值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

有一個愉快的一天..

哈日