As per the QTP:

The DotNetFactory object in QTP enables you to create an instance of a .NET object, and access its methods and properties.

You can use this object to access the static methods and properties of a class that does not have an instance constructor, for example, System.Environment, as well as a class that does.

Also the .Net Add-in is not required for this to work. I personally feel that the utility has been introduced to resolve the problem that occured when referencing a .Net Assembly or C/C++ DLL and making a call to its functions.

The piece of code would be
as in the following:

Set myMessageBox = DotNetFactory.CreateInstance (TypeName [,Assembly] [,args])

Set myMessageBox =

DotNetFactory.CreateInstance("System.Windows.Forms.Form",

"System.Windows.Forms")

myMessageBox.Show()


Create the custom UI forms part of my automation test framework so the tester can run opted test scripts as per the user's choice using the .Net factory utility:

Test-1.jpg

The entire code of the Test Method would be
as in the following:

'Form

UIForm = DotNetFactory.CreateInstance("System.Windows.Forms.Form", "System.Windows.Forms")

'Logo Image

imgLogo = DotNetFactory.CreateInstance("System.Windows.Forms.PictureBox", "System.Windows.Forms")

imgLogoSize = DotNetFactory.CreateInstance("System.Windows.Forms.PictureBoxSizeMode", "System.Windows.Forms")

'Form Background Image

frmImage = DotNetFactory.CreateInstance("System.Drawing.Image", "System.Windows.Forms")

'Labels

lblHosts = DotNetFactory.CreateInstance("System.Windows.Forms.Label", "System.Windows.Forms")

lblRun = DotNetFactory.CreateInstance("System.Windows.Forms.Label", "System.Windows.Forms")

lblCancel = DotNetFactory.CreateInstance("System.Windows.Forms.Label", "System.Windows.Forms")

lblLog = DotNetFactory.CreateInstance("System.Windows.Forms.Label", "System.Windows.Forms")

'Buttons

btnRun = DotNetFactory.CreateInstance("System.Windows.Forms.Button", "System.Windows.Forms")

btnCancel = DotNetFactory.CreateInstance("System.Windows.Forms.Button", "System.Windows.Forms")

dResult = DotNetFactory.CreateInstance("System.Windows.Forms.DialogResult", "System.Windows.Forms")

'Radio Buttons

rdDTAOption = DotNetFactory.CreateInstance("System.Windows.Forms.RadioButton", "System.Windows.Forms")

rdCONFIGOption = DotNetFactory.CreateInstance("System.Windows.Forms.RadioButton", "System.Windows.Forms")

'Radio Buttons POS

rdDTAOptionPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

rdCONFIGOptionPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

'Check Boxes

chkWindows = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkAix = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkHpux11 = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkHpuxi = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkRedhat = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkSun480 = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkTru64 = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

chkZlnx = DotNetFactory.CreateInstance("System.Windows.Forms.CheckBox", "System.Windows.Forms")

' Progress Bar

frmProgressBar = DotNetFactory.CreateInstance("System.Windows.Forms.ProgressBar", "System.Windows.Forms")

' Text Box

txtLog = DotNetFactory.CreateInstance("System.Windows.Forms.TextBox", "System.Windows.Forms")

'Labels POS

lblHostsPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

lblRunPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

lblCancelPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

lblLogPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

'Buttons POS

btnRunPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

btnCancelPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

frmImagePOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

'Check Boxes POS

chkWindowsPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkAixPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkHpux11Pos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkHpuxiPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkRedhatPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkSun480Pos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkTru64Pos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

chkZlnxPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

' Progress Bar POS

frmProgressBarlPOS = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

' Text Box POS

txtLogPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", x, y)

Var = DotNetFactory.CreateInstance("System.Environment")

'Logo Image POS

imgLogoPos = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing")

'Logo Image Properties

With imgLogoPos

.X = 1

.Y = -1

End With

With imgLogo

.ImageLocation = "~ \Images\Icon.jpg"

.Location = imgLogoPos

.SizeMode = imgLogoSize.Autosize

.Width = 580

.Height = 91

End With

'Radio Buttons Properties

With rdDTAOptionPos

.X = 32

.Y = 96

End With

With rdDTAOption

.Location = rdDTAOptionPos

'.BackColor=System.Drawing.Color.Transparent

.Text = "Path From DTA Batch Test CONFIG File"

.Name = "rdDTAOption"

.Width = 239

.Height = 20

End With

With rdCONFIGOptionPos

.X = 335

.Y = 96

End With

With rdCONFIGOption

.Location = rdCONFIGOptionPos

'.BackColor=System.Drawing.Color.Transparent

.Text = "Path From Regression Suite CONFIG File"

.Name = "rdCONFIGOption"

.Width = 250

.Height = 19

End With

' Label Selected Hosts Properties

With lblHostsPOS

.X = 29

.Y = 126

End With

With lblHosts

.Text = "Select the required Hosts to run the Regression Test :"

.Location = lblHostsPOS

.Width = 325

.Height = 17

End With

'Check Boxes Properties

With chkWindowsPos

.X = 32

.Y = 160

End With

With chkWindows

.Location = chkWindowsPos

'.BackColor=System.Drawing.Color.Transparent

.Text = "WINDOWS"

.Name = "chkWindows"

.Width = 82

.Height = 20

End With

With chkAixPos

.X = 171

.Y = 160

End With

With chkAix

.Location = chkAixPos

.Text = "AIX"

.Name = "chkAix"

.Width = 82

.Height = 20

End With

With chkHpux11Pos

.X = 335

.Y = 160

End With

With chkHpux11

.Location = chkHpux11Pos

.Text = "HPUX11"

.Name = "chkHpux11"

.Width = 82

.Height = 20

End With

With chkHpuxiPos

.X = 470

.Y = 160

End With

With chkHpuxi

.Location = chkHpuxiPos

.Text = "HPUXI"

.Name = "chkHpuxi"

.Width = 82

.Height = 20

End With

With chkRedhatPos

.X = 32

.Y = 196

End With

With chkRedhat

.Location = chkRedhatPos

.Text = "REDHAT"

.Name = "chkRedhat"

.Width = 82

.Height = 20

End With

With chkSun480Pos

.X = 171

.Y = 196

End With

With chkSun480

.Location = chkSun480Pos

.Text = "SUN480"

.Name = "chkSun480"

.Width = 82

.Height = 20

End With

With chkTru64Pos

.X = 335

.Y = 196

End With

With chkTru64

.Location = chkTru64Pos

.Text = "TRU64"

.Name = "chkTru64"

.Width = 82

.Height = 20

End With

With chkZlnxPos

.X = 470

.Y = 196

End With

With chkZlnx

.Location = chkZlnxPos

.Text = "ZLNX"

.Name = "chkZlnx"

.Width = 82

.Height = 20

End With

' Label Log Information Properties

With lblLogPOS

.X = 29

.Y = 243

End With

With lblLog

.Text = "Log Information :"

.Location = lblLogPOS

.Width = 110

.Height = 17

End With

'lblLog.Font.Size=10

'lblLog.Font.Bold = True

' Text Box Log Information Properties

With txtLogPos

.X = 32

.Y = 282

End With

With txtLog

.Location = txtLogPos

.Text = ""

.Name = "txtLog"

.Multiline = True

.Width = 505

.Height = 122

End With

' Label Run Regression Properties

With lblRunPOS

.X = 332

.Y = 243

End With

With lblRun

.Text = "Run Regression"

.Location = lblRunPOS

.Width = 110

.Height = 17

End With

' Button Run Application Properties

With btnRunPOS

.X = 453

.Y = 240

End With

With btnRun

.Text = ""

.Location = btnRunPOS

.Image = frmImage.FromFile("D:\RegressionSuite\Images\play.bmp")

.DialogResult = dResult.OK

.Width = 85

.Height = 25

End With

' Progressive Bar Properties

With frmProgressBarlPOS

.X = 32

.Y = 410

End With

With frmProgressBar

.Location = frmProgressBarlPOS

.Width = 505

.Height = 25

End With

' Label Exit Application Properties

With lblCancelPOS

.X = 332

.Y = 442

End With

With lblCancel

.Text = "Exit Application"

.Location = lblCancelPOS

.Width = 100

.Height = 15

End With

' Button Exit Application Properties

With btnCancelPOS

.X = 453

.Y = 439

End With

With btnCancel

.Text = ""

.Location = btnCancelPOS

.DialogResult = dResult.Cancel

.Image = frmImage.FromFile("D:\RegressionSuite\Images\stop.bmp")

.Width = 85

.Height = 25

End With

With frmImagePOS

.X = 0

.Y = 0

End With

With UIForm

'.Controls.Add frmImage

'.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

'.Opacity = 0.7

'.ClientSize = frmSize.Size(376, 208)

.Controls.Add(imgLogo)

.Controls.Add(rdDTAOption)

.Controls.Add(rdCONFIGOption)

.Controls.Add(frmProgressBar)

.Controls.Add(lblHosts)

.Controls.Add(chkWindows)

.Controls.Add(chkAix)

.Controls.Add(chkHpux11)

.Controls.Add(chkHpuxi)

.Controls.Add(chkRedhat)

.Controls.Add(chkSun480)

.Controls.Add(chkTru64)

.Controls.Add(chkZlnx)

.Controls.Add(lblRun)

.Controls.Add(btnRun)

.Controls.Add(lblLog)

.Controls.Add(txtLog)

.Controls.Add(lblCancel)

.Controls.Add(btnCancel)

.Name = "UIForm"

.Text = "My Custom User Form"

.MaximizeBox = False

.Minimizebox = False

.Width = 592

.Height = 556

.Location.X = 100

.Location.Y = 100

'.ClientSize = frmSize(573, 474);

'.BackgroundImage = frmImage.FromFile("D:\RegressionSuite\Images\BackImage_2.jpg")

'.BackgroundImageLayout="Stretch"

.ShowDialog()

End With

'msgbox MyCheckBox.Checked

'msgbox "User Form Closed"

If UIForm.DialogResult = dResult.OK Then

If chkWindows.Checked = "True" Then

CreateRegressionScripts("NT4")

ElseIf chkAix.Checked = "True" Then

CreateRegressionScripts("AIX")

ElseIf chkHpux11.Checked = "True" Then

CreateRegressionScripts("HPUX11")

ElseIf chkHpuxi.Checked = "True" Then

CreateRegressionScripts("HPUXI")

ElseIf chkRedhat.Checked = "True" Then

CreateRegressionScripts("LNX")

ElseIf chkSun480.Checked = True Then

CreateRegressionScripts("SUN480")

ElseIf chkTru64.Checked = "True" Then

CreateRegressionScripts("OSF")

ElseIf chkZlnx.Checked = "True" Then

CreateRegressionScripts("ZLNX")

End If

Else

MsgBox("Close Button Pressed")

End If