2010-07-01 12 views
7

मिनीटाब सहायता फाइलें इस विषय पर सीमित सीमा तक समर्थन प्रदान करती हैं, और सभी उदाहरण वीबी में हैं। मैं .NET के लिए नया हूं, लेकिन मैं इसे बहुत तेज़ी से उठा रहा हूं। आदेश के लिए वाक्यविन्यास में यह कुछ है।मैं .NET के माध्यम से मिनीटाब कमांड कैसे निष्पादित कर सकता हूं?

वे 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" 

और मेरे कोड में इस तरह दिखता है सी #

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

मैं क्या होना चाहिए है Minitab खोलना चाहिए उम्मीद कर रहा हूँ, और आदेश पर अमल करना चाहिए । हालांकि, क्या हो रहा है कि मिनीटाब के दो उदाहरण खोले जा रहे हैं और न ही यूजर इंटरफेस दिखा रहे हैं, मुझे उन्हें प्रक्रियाओं में ढूंढना है।

+0

"सी # .NET" जैसी कोई चीज़ नहीं है। भाषा सिर्फ सी # है, और फ्रेमवर्क सिर्फ .NET है। –

उत्तर

10

मान लिया जाये कि आप Minitab कॉम के संदर्भ में जोड़ दिया है, इस मिलना चाहिए आप आरंभ:

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; 

सी # के लिए COM ऑब्जेक्ट का उपयोग करना मुश्किल हो सकता है। विशेष रूप से जब आप कर रहे हैं उन्हें जारी करने के साथ।

याद रखें, एक सामान्य नियम कभी दोगुना नहीं होता है। ऐसा मत करो:

MtbApp.UserInterface.Visible = true; 
इसके बजाय

:

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

तो, MtbUI वस्तु बाद में रिहा कर दिया जा सकता है।

+0

पूछने वाले के रूप में, और स्टैक ओवरफ्लो के लिए नया, मैं स्पष्ट रूप से ऊपर या नीचे नहीं जा सकता, लेकिन अगर मैं कर सकता, तो मैं इसे ऊपर उठाऊंगा, यह मेरे लिए काम करता है, धन्यवाद। – xdumaine

+0

@roviuser, खुशी है कि यह काम किया। एक नए उपयोगकर्ता के रूप में, मुझे लगता है कि आप अभी भी जवाब स्वीकार कर सकते हैं (यह चेकमार्क है)। – Mark

+0

यह मिनीटाब स्वचालन के साथ शुरू करने के तरीके पर एक शानदार परिचय है। –

संबंधित मुद्दे

 संबंधित मुद्दे