2010-07-01 11 views
7

I file della guida di Minitab forniscono supporto su questo argomento in misura limitata e tutti gli esempi sono in VB. Sono nuovo di .NET, ma lo sto riprendendo abbastanza rapidamente. È qualcosa nella sintassi per il comando.Come posso eseguire un comando Minitab via .NET?

forniscono questo esempio in VB:

Dim MtbApp As New mtb.Application 
Dim MtbProj As mtb.Project 
Dim MtbCom As mtb.Command 
Dim i, j As Integer 

MtbApp.UserInterface.Visible = True 
Set MtbProj = MtbApp.ActiveProject 
MtbProj.ExecuteCommand "RANDOM 30 C1 - C2" 
MtbProj.ExecuteCommand "REGRESS C1 1 C2" 

e il mio codice è simile in C#

var MtbApp = new Mtb.Application(); 
var MtbProj = new Mtb.Project(); 
MtbProj = MtbApp.ActiveProject; 
MtbApp.UserInterface.Visible = true; 
MtbProj.ExecuteCommand(<command>); 

quello che mi aspetto che dovrebbe accadere è Minitab dovrebbe aprire, e eseguire il comando . Tuttavia, ciò che sta accadendo è che due istanze di Minitab vengono aperte e nessuna mostra l'interfaccia utente, devo trovarle nei processi.

+0

non esiste "C# .NET". Il linguaggio è solo C# e il Framework è solo .NET. –

risposta

10

Supponendo che hai aggiunto il riferimento a Minitab COM, questo dovrebbe iniziare:

Mtb.Application MtbApp = null; 
Mtb.Project MtbProj = null; 
Mtb.UserInterface MtbUI = null; 

MtbApp = new Mtb.Application(); 
MtbProj = MtbApp.ActiveProject; 
MtbUI = MtbApp.UserInterface; 

MtbUI.Visible = true; 
MtbProj.ExecuteCommand("RANDOM 30 C1-C2", Type.Missing); //with C# optional params required 
MtbApp.Quit(); 

Marshal.ReleaseComObject(MtbUI); MtbUI = null; 
Marshal.ReleaseComObject(MtbProj); MtbProj = null; 
Marshal.ReleaseComObject(MtbApp); MtbApp = null; 

Uso di oggetti COM per C# può essere difficile. Soprattutto con il loro rilascio quando hai finito.

Ricorda, come regola generale, non raddoppiare mai. Non fare:

MtbApp.UserInterface.Visible = true; 

Invece:

Mtb.UserInterface MtbUI = null; 
MtbUI = MtbApp.UserInterface; 
MtbUI.Visible = true; 

Quindi, l'oggetto MtbUI può essere liberato in seguito.

+0

Come richiedente e nuovo nello stackoverflow, a quanto pare non posso andare avanti o indietro, ma lo svuoterei se potessi, ha funzionato per me, grazie. – xdumaine

+0

@roviuser, felice che abbia funzionato. Anche come nuovo utente, penso che tu possa ancora accettare la risposta (è il segno di spunta). – Mark

+0

Questa è una fantastica introduzione su come iniziare con l'automazione Minitab. –

Problemi correlati