Shawn,

Thanks for the latest kixforms, I will have a play!

The option for turning the sysmenu off would be great, I agree that this would make it unfriendly for the user to close the window (Thats what I'm trying to do, I don't want users to kill the logon script until it has finished).

While I don't use a progress bar at the moment I think it would be a great addition to kixforms to have a progress bar (I would then have to think about rewriting some of our other scripts with kix!).

For you information this is the form so far (No backend code yet!) The labels will be painted when each function has finished (Or failed) in the final version.

Break on

$Form = CreateObject("Kixtart.Form")

$Form.Caption = "Login Script"
$Form.ClientHeight = 3570
$Form.ClientLeft = 45
$Form.ClientTop = 330
$Form.ClientWidth = 6090
$Form.ScaleHeight = 300
$Form.ScaleWidth = 410


$Frm = $form.frame
$frm.Left = 6
$frm.Top = 30
$frm.Width = 399
$frm.height = 174
$frm.Caption = ""

$lblHeader = $Form.Label
$lblHeader.Alignment = 2
$lblHeader.Caption = "Logon Script v3.0.0"
$lblHeader.FontName = "MS Sans Serif"
$lblHeader.FontBold = 1
$lblHeader.FontSize = 13.5
$lblHeader.Height = 20
$lblHeader.Left = 0
$lblHeader.TabIndex = 16
$lblHeader.Top = 10
$lblHeader.Width = 400


$lblSMS = $Form.Label
$lblSMS.FontBold = 1
$lblSMS.BackColor = $Form.RGB(255,255,255)
$lblSMS.Height = 20
$lblSMS.Left = 10
$lblSMS.TabIndex = 15
$lblSMS.Top = 180
$lblSMS.Width = 250


$lblSMSANS = $Form.Label
$lblSMSANS.BackColor = $Form.RGB(255,255,255)
;$lblSMSANS.Caption = "Label1"
$lblSMSANS.Height = 20
$lblSMSANS.Left = 250
$lblSMSANS.TabIndex = 14
$lblSMSANS.Top = 180
$lblSMSANS.Width = 150


$lblUpgrade = $Form.Label
$lblUpgrade.FontBold = 1
$lblUpgrade.BackColor = $Form.RGB(255,255,255)

$lblUpgrade.Height = 20
$lblUpgrade.Left = 10
$lblUpgrade.TabIndex = 13
$lblUpgrade.Top = 160
$lblUpgrade.Width = 250


$lblUpgradeANS = $Form.Label
$lblUpgradeANS.BackColor = $Form.RGB(255,255,255)
;$lblUpgradeANS.Caption = "Label1"
$lblUpgradeANS.Height = 20
$lblUpgradeANS.Left = 250
$lblUpgradeANS.TabIndex = 12
$lblUpgradeANS.Top = 160
$lblUpgradeANS.Width = 150


$lblSophos = $Form.Label
$lblSophos.FontBold = 1
$lblSophos.BackColor = $Form.RGB(255,255,255)
$lblSophos.Height = 20
$lblSophos.Left = 10
$lblSophos.TabIndex = 11
$lblSophos.Top = 140
$lblSophos.Width = 250


$lblSophosANS = $Form.Label
$lblSophosANS.BackColor = $Form.RGB(255,255,255)
;$lblSophosANS.Caption = ""
$lblSophosANS.Height = 20
$lblSophosANS.Left = 250
$lblSophosANS.TabIndex = 10
$lblSophosANS.Top = 140
$lblSophosANS.Width = 150

$lblWorkgroup = $Form.Label
$lblWorkgroup.FontBold = 1
$lblWorkgroup.BackColor = $Form.RGB(255,255,255)
$lblWorkgroup.Height = 20
$lblWorkgroup.Left = 10
$lblWorkgroup.TabIndex = 9
$lblWorkgroup.Top = 120
$lblWorkgroup.Width = 250

$lblWorkgroupANS = $Form.Label
$lblWorkgroupANS.BackColor = $Form.RGB(255,255,255)
$lblWorkgroupANS.Caption = ""
$lblWorkgroupANS.Height = 20
$lblWorkgroupANS.Left = 250
$lblWorkgroupANS.TabIndex = 8
$lblWorkgroupANS.Top = 120
$lblWorkgroupANS.Width = 150

$lblDrives = $Form.Label
$lblDrives.FontBold = 1
$lblDrives.BackColor = $Form.RGB(255,255,255)
$lblDrives.Height = 20
$lblDrives.Left = 10
$lblDrives.TabIndex = 7
$lblDrives.Top = 100
$lblDrives.Width = 250

$lblDrivesANS = $Form.Label
$lblDrivesANS.BackColor = $Form.RGB(255,255,255)
$lblDrivesANS.Height = 20
$lblDrivesANS.Left = 250
$lblDrivesANS.TabIndex = 6
$lblDrivesANS.Top = 100
$lblDrivesANS.Width = 150

$lblsite_Work = $Form.Label
$lblsite_work.FontBold = 1
$lblsite_Work.BackColor = $Form.RGB(255,255,255)
$lblsite_Work.Height = 20
$lblsite_Work.Left = 10
$lblsite_Work.TabIndex = 5
$lblsite_Work.Top = 80
$lblsite_Work.Width = 250

$lblsite_WorkANS = $Form.Label
$lblsite_WorkANS.BackColor = $Form.RGB(255,255,255)
$lblsite_WorkANS.Height = 20
$lblsite_WorkANS.Left = 250
$lblsite_WorkANS.TabIndex = 4
$lblsite_WorkANS.Top = 80
$lblsite_WorkANS.Width = 150

$lblMail = $Form.Label
$lblMail.FontBold = 1
$lblMail.BackColor = $Form.RGB(255,255,255)

$lblMail.Height = 20
$lblMail.Left = 10
$lblMail.TabIndex = 3
$lblMail.Top = 60
$lblMail.Width = 250

$lblMailANS = $Form.Label
$lblMailANS.BackColor = $Form.RGB(255,255,255)
$lblMailANS.Height = 20
$lblMailANS.Left = 250
$lblMailANS.TabIndex = 2
$lblMailANS.Top = 60
$lblMailANS.Width = 150

$lblOSans = $Form.Label
$lblOSans.BackColor = $Form.RGB(255,255,255)
$lblOSans.Height = 20
$lblOSans.Left = 250
$lblOSans.TabIndex = 1
$lblOSans.Top = 40
$lblOSans.Width = 150

$lblOS = $Form.Label
$lblOS.FontBold = 1
$lblOS.BackColor = $Form.RGB(255,255,255)

$lblOS.Height = 20
$lblOS.Left = 10
$lblOS.TabIndex = 0
$lblOS.Top = 40
$lblOS.Width = 250

$Form.Show

$lblOS.Caption = " Windows Version"
$lblsite_Work.Caption = " Locating Site and Workgroup..."
$lblMail.Caption = " Checking/Creatings Mail Profile ..."
$lblDrives.Caption = " Mapping standard Drives..."
$lblWorkgroup.Caption = " Checking Workgroup scripts..."
$lblSophos.Caption = " Checking for Sophos scripts..."
$lblUpgrade.Caption = " Checking for Upgrade scripts..."
$lblSMS.Caption = " Running SMS scripts..."

$lblsite_WorkANS.Caption = "No Home"
$lblMailANS.Caption = "Error, no PRF"
$lblUpgradeANS.caption = "Running Lotus Notes"
$lblSophosANS.caption = "Installed"
$lblWorkgroupANS.caption = "Running"
$lblDrivesANS.caption = "Mapping L M P"
$lblOSans.caption = "Windows XP Professional"

While $Form.Visible
$=Execute($Form.DoEvents)
Loop

Exit 1

Thank you very much for your help on this. I will have a look at the other packages that you have mentioned, I'm always on the look out for something new (Or new to me anyway!)

Duncan