2017-03-07 5 views
0

Bonne journée les gars.Lancer la macro TeraTerm en utilisant C#

Actuellement, je développe un code pour exécuter une macro Teraterm que j'avais enregistrée en tant que fichier * .ttl. Le nom du fichier est "new.ttl" et le contenu est comme ci-dessous:

showtt 0

FileDelete 'a.txt'

pause 5

: Fermer

Donc, la logique est juste de supprimer le fichier "a.txt", attendez 5 secondes et fermez Teraterm. Ce new.ttl fonctionne parfaitement quand je l'exécute manuellement en utilisant Teraterm, où je charge la macro dans l'onglet control> macro. Ce fichier .ttl simple est juste pour un essai pour moi avant que je commence à écrire un code plus complexe.

Maintenant, j'ai essayé de lancer le fichier .ttl en utilisant C#. Le code est le suivant:

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(); 
     } 
    } 
} 

L'exécution s'exécute sans erreur, mais le résultat n'est pas comme prévu. Après l'exécution, je peux voir "a.txt" est toujours dans le chemin mentionné comme dans le code. Je ne suis pas sûr d'où je me suis trompé. Ce n'est qu'une première étape pour moi avant de développer un fichier .ttl plus complexe et de l'exécuter via C#.

Votre aide est grandement appréciée. Merci beaucoup.

Répondre

0

Les bons gars de jour,

Après 2 jours de lutte, je réussi à obtenir la réponse.

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(); 
     } 
    } 
} 

La version de Teraterm que je suis actuellement en utilisant est 4,94 et j'avais également installé la version 1.5 TTLEditor pour créer le fichier .TTL. Il semble que le problème était,

1) Pour exécuter un fichier .TTL par programmation de C#, j'ai besoin de placer le fichier .TTL dans le même dossier où TTPMACRO.EXE et TTERMPRO.EXE se trouvent dans mon système. Ceci est montré par la valeur de chaîne ttlpath dans mon code.

2) Dans le chemin ttl, la valeur de chaîne @ "TTPMACRO" doit être ajoutée au dossier car cela rendra le fichier .TTL exécutable. Et, pour votre information, dans mon système, le fichier texte a.txt qui sera supprimé si la logique du fichier .TTL est exécuté est situé à: C: \ Users \ Admin \ AppData \ Local \ VirtualStore \ Program Files (x86) \ teraterm

Pour plus d'informations sur l'exécution de fichiers de macros teraterm, reportez-vous à ce lien; https://ttssh2.osdn.jp/manual/en/macro/howtorun.html

ont une belle journée ..

Hari