Hi Stephen Whintle

Want to purge the Print Que on a network printer?
This script was writen to function on a network with shared printers.

The user will need admin rights.
It uses Active Directory and WMI.

You will need to install KiXforms.NET

 Code:
;region Setup Variables 
$Title = "Purge Print Que..." 
$BuildVer = '1.0.2.2' 
$Version = " Build($BuildVer)" 

$objRootDSE = GetObject("LDAP://rootDSE") 
$defaultNamingContext = $objRootDSE.Get("defaultNamingContext") 

Break On 
$System = CreateObject("Kixforms.System") 
If Not $System 
   $nul= MessageBox("KiXforms.Net Not Initiated. This Script Will Now Close.","Error",16) 
   Quit() 
EndIf 
$nul = $System.Application.EnableVisualStyles 

$SysVer = $System.ProductVersion 
$MinSysVer = "3.1.29.0" 
If $SysVer < $MinSysVer 
   $nul= MessageBox("KiXforms.Net Version Installed ("+$SysVer+")."+@CRLF+"The Minimum Version that must be Installed is ("+$MinSysVer+"). "+@CRLF+"This Script Will Now Close.","Error",16) 
   Quit() 
EndIf 
;endregion 

;region Main Form 
$Form = $System.Form() 
$Form.StartPosition = 1 ;FormStartPosition_CenterScreen 
$Form.Size = $System.Size(775,453) ;(Width,Height) 
$Form.Text = $Title+$Version 
$Form.Icon = $System.Icon.FromBitmap(FormIcon())

$MainPanel = $System.Panel() 
$MainPanel.Dock = 5 ;Fill 
$nul = $Form.Controls.Add($MainPanel) 

;region MainMenu 
$MainMenu = $System.MainMenu() 

$File = $MainMenu.MenuItems.Add($System.MenuItem("File")) 

$Exit = $File.MenuItems.Add($System.MenuItem("Exit")) 
$Exit.Click = "ExitForm()" 

$Tools = $MainMenu.MenuItems.Add($System.MenuItem("Tools")) 

$Refresh = $Tools.MenuItems.Add($System.MenuItem("Refresh")) 
$Refresh.Click = "SearchForPrinters()" 

$Form.Menu = $MainMenu 
;endregion 

$ListView = $System.ListView() 
$ListView.CheckBoxes = -1 ;True 
$ListView.Dock = 5 ;Fill 
$ListView.FullRowSelect = -1 ;True 
$ListView.View = $System.View_Details 
$nul = $MainPanel.Controls.Add($ListView) 

$Column0= $ListView.Columns.Add($System.ColumnHeader("Document Name",100,$System.HorizontalAlignment_Left)) 
$Column1= $ListView.Columns.Add($System.ColumnHeader("Status",60,$System.HorizontalAlignment_Left)) 
$Column2= $ListView.Columns.Add($System.ColumnHeader("Owner",60,$System.HorizontalAlignment_Left)) 
$Column3= $ListView.Columns.Add($System.ColumnHeader("Pages",50,$System.HorizontalAlignment_Left)) 
$Column4= $ListView.Columns.Add($System.ColumnHeader("Size",60,$System.HorizontalAlignment_Left)) 
$Column5= $ListView.Columns.Add($System.ColumnHeader("Submitted",120,$System.HorizontalAlignment_Left)) 

$RightPanel = $System.Panel() 
$RightPanel.Dock = 4 ;Right 
$nul = $MainPanel.Controls.Add($RightPanel) 

$Splitter = $System.Splitter() 
$nul = $MainPanel.Controls.Add($Splitter) 

$ListBox = $System.ListBox() 
$ListBox.Click = "EnablePurge()" 
$ListBox.Dock = 3 ;Left 
$ListBox.Sorted = -1 ;True
$ListBox.Width = 213
$nul = $MainPanel.Controls.Add($ListBox) 

;region StatusBar 
$StatusBar = $System.StatusBar() 
$StatusBar.Text = "" 
$nul = $MainPanel.Controls.Add($StatusBar) 

$ProgressBar = $System.ProgressBar() 
$ProgressBar.Left = $StatusBar.Width-$ProgressBar.Width-20
$ProgressBar.Top = 3
$ProgressBar.Height = $StatusBar.Height-4
$ProgressBar.Visible = 0
$nul = $StatusBar.Controls.Add($ProgressBar) 
;endregion 

$Cancel = $System.Button() 
$Cancel.Click = "CancelPurge()" 
$Cancel.DialogResult = 2 ;Cancel 
$Cancel.FlatStyle = 3 ;System 
$Cancel.Left = 10
$Cancel.Text = "Cancel" 
$Cancel.Top = 10
$nul = $RightPanel.Controls.Add($Cancel) 

$SelectAll = $System.Button() 
$SelectAll.Click = "SelectAll()" 
$SelectAll.Enabled = 0
$SelectAll.FlatStyle = 3 ;System 
$SelectAll.Left = 10
$SelectAll.Text = "Select All" 
$SelectAll.Top = $Cancel.Bottom+10
$nul = $RightPanel.Controls.Add($SelectAll) 

$Purge = $System.Button() 
$Purge.Click = "PurgePrintQue()" 
$Purge.Enabled = 0
$Purge.FlatStyle = 3 ;System 
$Purge.Left = 10
$Purge.Text = "Purge" 
$Purge.Top = $SelectAll.Bottom+10
$nul = $RightPanel.Controls.Add($Purge) 

$RightPanel.Width = $Purge.Width+20

$Form.AcceptButton = $Purge 
$Form.CancelButton = $Cancel 
$Form.Show  ;Displays the Form 

SearchForPrinters() 

While $Form.Visible 
   $Nul = Execute($Form.DoEvents()) 
Loop 
Exit 0
;endregion 

Function ExitForm() 
   Quit() 
EndFunction 

Function AdvanceProgressBar($Step,Optional $Text) 
    
   $Count = $Count+$Step 
   If $Count > 100
      $Count = 0
   EndIf 
   $StatusBar.Text = $Text 
   $ProgressBar.Value = $Count 
   Sleep 0.05
    
EndFunction 

Function SearchForPrinters() 
    
   $ProgressBar.Visible = -1
   $ListBox.Items.Clear 
   If $Purge.Enabled = -1
      $Purge.Enabled = 0
      $SelectAll.Enabled = 0
   EndIf 
    
   $ADS_SCOPE_SUBTREE = 2
   $objConnection = CreateObject("ADODB.Connection") 
   $objCommand = CreateObject("ADODB.Command") 
   $objConnection.Provider = "ADsDSOObject" 
   $objConnection.Open("Active Directory Provider") 
   $objCommand.ActiveConnection = $objConnection 
   $objCommand.CommandText = "Select url from 'LDAP://$defaultNamingContext' where objectClass='printQueue' " 
   $objCommand.Properties("Page Size",1000) 
   $objCommand.Properties("Searchscope",$ADS_SCOPE_SUBTREE) 
   $objRecordSet = $objCommand.Execute 
   $objRecordSet.MoveFirst 
   Do 
      $url = $objRecordSet.Fields("url").Value 
      For Each $Item in $url 
         $Period = InStr($Item,".") 
         If $Period > 0
            $Array1= Split($Item,"//") 
            $Array2= Split($Array1[1],".") 
            $ServerName = $Array2[0] 
            $Array3= Split($Array2[2],"/") 
            $ShareName = $Array3[1] 
            $PrinterShareName = "\\"+$ServerName+"\"+$ShareName 
            AdvanceProgressBar(10,$PrinterShareName) 
            $ListItem = $ListBox.Items.Add($PrinterShareName) 
         EndIf 
      Next 
      $objRecordSet.MoveNext 
   Until $objRecordSet.EOF 
    
   ;Object cleanup 
   $objConnection = 0
   $objCommand = 0
   $objRecordSet = 0
    
   $Count = 0
   AdvanceProgressBar(0,"") 
   $ProgressBar.Visible = 0
    
EndFunction 

Function EnablePurge() 
    
   $Item = $ListBox.SelectedItem 
   If $Item 
      GetPrintQue() 
   EndIf 
    
EndFunction 

Function CancelPurge() 
    
   $ListBox.SetSelected(0,0) 
   $ListView.Items.Clear 
   If $Purge.Enabled = -1
      $Purge.Enabled = 0
      $SelectAll.Enabled = 0
   EndIf 
    
EndFunction 

Function PurgePrintQue() 
    
   $Index = 0
   $Item = $ListBox.SelectedItem 
   $Array = Split($Item,"\") 
    
   $strComputer = $Array[2] 
   $PrinterName = $Array[3] 
    
   $objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$strComputer+"\root\cimv2") 
   $objPrinter = $objWMIService.ExecQuery("Select * from Win32_Printer") 
   For Each $objPrinterName in $objPrinter 
      If $objPrinterName.ShareName = $ShareName 
         $PrinterName = $objPrinterName.Name 
      EndIf 
   Next 
    
   $objPrintJobs = $objWMIService.ExecQuery("Select * from Win32_PrintJob",,48) 
   For Each $objPrintJob in $objPrintJobs 
      $objName = $objPrintJob.Name 
      $Array = Split($objName,",") 
      $PName = $Array[0] 
      If $PName = $PrinterName 
         $Item = $ListView.Items.Item($Index) 
         If $Item.Checked; = -1 ;True 
            $objPrintJob.Delete_ 
         EndIf 
         $Index = $Index+1
      EndIf 
   Next 
    
   $ListView.Items.Clear 
   $ListBox.SetSelected(0,0) 
   If $Purge.Enabled = -1
      $Purge.Enabled = 0
      $SelectAll.Enabled = 0
   EndIf 
    
EndFunction 

Function GetPrintQue() 

   $ListView.Items.Clear 
   $Item = $ListBox.SelectedItem 
   $Array = Split($Item,"\") 
    
   $strComputer = $Array[2] 
   $ShareName = $Array[3] 
    
   $objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$strComputer+"\root\cimv2") 
   If Not (@ERROR = 0) 
     $nul = MessageBox("Error connecting to the remote computer '"+$strComputer+"' SError# "+@SERROR+" Error#"+@ERROR, "Error", 16) 
     Quit @SERROR 
   EndIf 
   $objPrinter = $objWMIService.ExecQuery("Select * from Win32_Printer") 
   For Each $objPrinterName in $objPrinter 
      If $objPrinterName.ShareName = $ShareName 
         $PrinterName = $objPrinterName.Name 
      EndIf 
   Next 
    
   $objPrintJobs = $objWMIService.ExecQuery("Select * from Win32_PrintJob",,48) 
   For Each $objPrintJob in $objPrintJobs 
      $objName = $objPrintJob.Name 
      $Array = Split($objName,",") 
      $PName = $Array[0] 
      If $PName = $PrinterName 
         $Item = $ListView.Items.Add($System.ListViewItem($objPrintJob.Document)) 
         $ItemIndex = $Item.Index 
         If $objPrintJob.Status = "UNKNOWN" 
            $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem("")) 
         Else 
            $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem($objPrintJob.Status)) 
         EndIf 
         $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem($objPrintJob.Owner)) 
         $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem($objPrintJob.TotalPages)) 
         $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem($objPrintJob.Size)) 
         $TimeSubmitted = $objPrintJob.TimeSubmitted 
         $year = SubStr($TimeSubmitted,1,4) 
         $month = SubStr($TimeSubmitted,5,2) 
         $day = SubStr($TimeSubmitted,7,2) 
         $hour = SubStr($TimeSubmitted,9,2) 
         $min = SubStr($TimeSubmitted,11,2) 
         $sec = SubStr($TimeSubmitted,13,2) 
         $Submitted = $hour+":"+$min+":"+$sec+" "+$month+"/"+$day+"/"+$year 
         $Item = $ListView.Items.Item($ItemIndex).SubItems.Add($System.ListViewSubItem($Submitted)) 
      EndIf 
   Next 
   If $ListView.Items.Count > 0
      $Purge.Enabled = -1
      $SelectAll.Enabled = -1
   Else 
      $Purge.Enabled = 0
      $SelectAll.Enabled = 0
   EndIf 
    
EndFunction 

Function SelectAll() 
    
   For Each $Item in $ListView.Items 
      $Item.Checked = -1 ;True 
   Next 
    
EndFunction

Function FormIcon()
  $FormIcon = "
  Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA
  8drQ/8NWKP/DVij/w1Yo/7Y/Df+9RBH/u0US/7tFEv+7RRL/uUUU/7lFFP+5RBL/vEUT/7xF
  E/+9RhP/vkUQ/75FEP/ARQ3/wUUK/8FFCv/DRAj/wEEG/8BBBv/APwP/wD8D/8A/A//DPwH/
  vjsA/7lOH/+5Th//uU4f/+3Yz//fXij/308T/99PE//fTxP/31Ub/+JaIf/hXCX/4Vwl/+Fc
  Jf/gXSb/4F0m/+FcJP/iXiP/4l4j/+JeIf/iXh7/4l4e/+VfG//lXhb/5V4W/+ZdE//lWw7/
  5VsO/+ZYCf/mWAn/5lgJ/+ZUBP/iTgH/00UA/9NFAP/TRQD/uE4f/99eKP/fTxP/308T/99P
  E//fVRv/4loh/+FcJf/hXCX/4Vwl/+BdJv/gXSb/4Vwk/+JeI//iXiP/4l4h/+JeHv/iXh7/
  5V8b/+VeFv/lXhb/5l0T/+VbDv/lWw7/5lgJ/+ZYCf/mWAn/5lQE/+JOAf/TRQD/00UA/9NF
  AP+4Th//314o/99PE//fTxP/308T/99VG//iWiH/4Vwl/+FcJf/hXCX/4F0m/+BdJv/hXCT/
  4l4j/+JeI//iXiH/4l4e/+JeHv/lXxv/5V4W/+VeFv/mXRP/5VsO/+VbDv/mWAn/5lgJ/+ZY
  Cf/mVAT/4k4B/9NFAP/TRQD/00UA/7hOH//tUA7/71sc/+9bHP/vWxz/8GMo//BoL//xazP/
  8Wsz//FrM//xbDT///////JsMf/ybTH/8m0x//JvLv/ycCr/8nAq//NwJf/zbx//828f////
  ///0ahP/9GoT//RmDf/0Zg3/9GYN//NgB//wWgL/4k0A/+JNAP/iTQD/uToA//NWFP/0YiX/
  9GIl//RiJf/0azH/9HE5//V0Pf/1dD3/9XQ9//////////////////V2Of/1djn/9Xc3//Z4
  Mv/2eDL/93gs//d3Jf/////////////////3chn/+G4R//huEf/4bhH/92gL//RgBf/mUwL/
  5lMC/+ZTAv++PQH/81kY//RoLv/0aC7/9Ggu//RxOv/1d0L/9XpG//V6Rv////////////Z6
  Rf////////////Z8Qf/2fT3/9n04//Z9OP/3fTL////////////4eiT////////////4cxX/
  +HMV//hzFf/4bA7/9GMJ/+dWBf/nVgX/51YF/78/Av/zWRj/9Ggu//RoLv/0aC7/9HE6//V3
  Qv/1ekb////////////2ekX/9npF//Z7Q/////////////Z9Pf/2fTj/9n04////////////
  +Hwq//h6JP/4dx3////////////4cxX/+HMV//hsDv/0Ywn/51YF/+dWBf/nVgX/vz8C//NZ
  GP/0aC7/9Ggu//RoLv/0cTr/9XdC////////////9XpG//Z6Rf/2ekX/9ntD//Z8Qf//////
  //////Z9OP////////////h8Kv/4fCr/+Hok//h3Hf/4dx3////////////4cxX/+GwO//Rj
  Cf/nVgX/51YF/+dWBf+/PwL/810e//RuNv/0bjb/9G42//V2Qv////////////aBTv/2gU7/
  935K//d+Sv/2fkj/9n9F//Z/Rf/////////////////3fzX/930t//d9Lf/4eiX/+Hce//h3
  Hv/4cxf////////////3bRH/9GYN/+dZC//nWQv/51kL/8BBBv/zXR7/9G42//RuNv/0bjb/
  ///////////2gU7/9oFO//aBTv/3fkr/935K//Z+SP/2f0X/9n9F//aAQf//////9n87//d/
  Nf/3fS3/930t//h6Jf/4dx7/+Hce//hzF//4cxf////////////0Zg3/51kL/+dZC//nWQv/
  wEEG//NiJf/0cz3/9HM9////////////9oBO//aBTv/2gU7/9oFO//aBTv/2gU7/9oBL//Z/
  R//2f0f/9n9C//Z/PP/2fzz/9382//d8Lf/3fC3/+Hkm//d3IP/3dyD/93MZ//dzGf/3cxn/
  ///////////oXRD/6F0Q/+hdEP+/RAr/9GYr//V4RP/1eET/9XhE////////////9oNT//aD
  U//2g1P/9oJR//aCUf/3gU3/9n9I//Z/SP/2f0P/9n49//Z+Pf/2fDX/93ot//d6Lf/3dyb/
  93Qh//d0If/3cRv/93Eb////////////9GoY/+dfFv/nXxb/518W/8BHD//0Ziv/9XhE//V4
  RP/1eET/9n9O////////////9oNT//aDU//2glH/9oJR//eBTf/2f0j/9n9I//Z/Q//2fj3/
  9n49//Z8Nf/3ei3/93ot//d3Jv/3dCH/93Qh//dxG/////////////duGP/0ahj/518W/+df
  Fv/nXxb/wEcP//RrMv/1fUv/9X1L//V9S//2g1T/94RW////////////94NV//aCUv/2glL/
  9oBN//Z9SP/2fUj/9nxC//Z6PP/2ejz/9ng0//Z2Lf/2di3/93Mm//dxIf/3cSH/////////
  ///2bxz/9m0c//RqHP/mYRz/5mEc/+ZhHP+/SBL/9G43//aBUf/2gVH/9oFR//eFV//3hln/
  94VX////////////9oFS//aBUv/2fk3/9ntH//Z7R//2eUH/9Xc7//V3O//1dDT/9nIs//Zy
  LP/2byb/9m0i////////////9mse//ZrHv/2ah//82oh/+ZiIf/mYiH/5mIh/75JFv/0bjf/
  9oFR//aBUf/2gVH/94VX//eGWf/3hVf/94VX////////////9oFS//Z+Tf/2e0f/9ntH//Z5
  Qf/1dzv/9Xc7//V0NP/2ciz/9nIs//ZvJv////////////ZrHv/2ax7/9mse//ZqH//zaiH/
  5mIh/+ZiIf/mYiH/vkkW//RyPP/2h1n/9odZ//aHWf/3il3/94ld//eGWf////////////aB
  U//2gVP/9n5O//V6R//1ekf/9XhB//V0Ov/1dDr/9XI0//VvLP/1byz/9Wwn//ZqI///////
  //////ZpIP/2aSD/9Wgi//JpJf/mYiX/5mIl/+ZiJf++Sxn/9XlG//eMYP/3jGD/94xg//iN
  Yv/3i2D////////////3h1v/94JU//eCVP/2fE7/9nhH//Z4R//1dEH/9XE6//VxOv/0bjT/
  9Wst//VrLf/1aSj/9Wck//VnJP////////////VmIv/1ZyX/8mgp/+RjKf/kYyn/5GMp/71L
  G//1eUb/94xg//eMYP/3jGD/+I1i////////////94db//eHW//3glT/94JU//Z8Tv/2eEf/
  9nhH//V0Qf/1cTr/9XE6//RuNP/1ay3/9Wst//VpKP/1ZyT/9Wck//VmIv////////////Vn
  Jf/yaCn/5GMp/+RjKf/kYyn/vUsb//V5Rv/4kmj/+JJo//iSaP////////////eJXv/3iV7/
  94le//eDV//3g1f/9n5Q//Z5Sv/2eUr/9XVD//VxPf/1cT3/9G42//VrL//1ay//9Wkr//Vn
  KP/1Zyj/9WYn//VmJ/////////////JpLP/kYir/5GIq/+RiKv+9TBz/9n5N//iXbv/4l27/
  ///////////4k2r/+Ixi//iMYv/4jGL/94Zb//eGW//3gFT/9ntN//Z7Tf/2d0f/9XJA//Vy
  QP/1bzr/9G00//RtNP/0azD/9Gkt//RpLf/1aSz/9Wks//VpLP///////////+VjLP/lYyz/
  5WMs/7xMHf/2fk3/+Jdu//iXbv/4l27////////////4jGL/+Ixi//iMYv/3hlv/94Zb//eA
  VP/2e03/9ntN//Z3R///////9XJA//VvOv/0bTT/9G00//RrMP/0aS3/9Gkt//VpLP/1aSz/
  ///////////yaS7/5WMs/+VjLP/lYyz/vEwd//aCUv/4n3n/+J95//ifef/4oXz/////////
  ///4kWf/+JFn//eLYP/3i2D/94VZ//aBU//2gVP/////////////////9XNB//RvOv/0bzr/"+
  "9G44//RsNP/0bDT/9Gwy////////////9Gsx//FpMP/kYiz/5GIs/+RiLP+8TB3/9oJS//If"+
  "ef/4n3n/+J95//ihfP/4mXH////////////4kWf/94tg//eLYP/3hVn/9oFT////////////
  9XdG////////////9G86//RvOv/0bjj/9Gw0//RsNP////////////RsMv/0azH/8Wkw/+Ri
  LP/kYiz/5GIs/7xMHf/2glL/+J95//ifef/4n3n/+KF8//iZcf/4kWf////////////3i2D/
  94tg//eFWf////////////Z7Tf/1d0b/9XdG////////////9G86//RuOP/0bDT/////////
  ///0bDL/9Gwy//RrMf/xaTD/5GIs/+RiLP/kYiz/vEwd//aGWP/5qon/+aqJ//mqif/5rY3/
  +KN///iZcf/4mXH////////////4k2r////////////3il7/94ZZ//aCVP/2glT/9oBR////
  ////////9XxK////////////9XU///V1P//1dT//9HI6//JsNP/jYSr/42Eq/+NhKv+7SBj/
  95Bl//m0l//5tJf/+bSX//q3mv/5qon/+KB6//igev/4oHr/////////////////+JJo//iS
  aP/3j2X/945i//eOYv/3jWH/94pd//////////////////aDUv/2fkz/9n5M//Z+TP/1d0P/
  8m43/+NfKP/jXyj/418o/7lGFf/4nHb/+a+Q//mvkP/5r5D/+bKU//inhf/4nHX/+Jx1//ic
  df/4l27///////eSaP/3kGb/95Bm//eOYv/3jF//94xf//eLXv/2iFn/9ohZ///////2glD/
  9oJQ//V8Sf/1fEn/9XxJ//V1P//yazL/41wj/+NcI//jXCP/xVww//icdv/5r5D/+a+Q//mv
  kP/5spT/+KeF//icdf/4nHX/+Jx1//iXbv/4l27/95Jo//eQZv/3kGb/945i//eMX//3jF//
  94te//aIWf/2iFn/9oVW//aCUP/2glD/9XxJ//V8Sf/1fEn/9XU///JrMv/jXCP/41wj/+Nc
  I//FXDD/+Jx2//mvkP/5r5D/+a+Q//mylP/4p4X/+Jx1//icdf/4nHX/+Jdu//iXbv/3kmj/
  95Bm//eQZv/3jmL/94xf//eMX//3i17/9ohZ//aIWf/2hVb/9oJQ//aCUP/1fEn/9XxJ//V8
  Sf/1dT//8msy/+NcI//jXCP/41wj/8VcMP/95dz/+Jpz//iac//4mnP/94xg//aEVf/2fk3/
  9n5N//Z+Tf/1ekj/9XpI//V2Qv/1eET/9XhE//VzPv/1cz7/9XM+//VxO//1cTv/9XE7//Rs
  M//0bDP/9Gwz//RqMP/0ajD/9Gow//RkKP/vXR//4Gc0/+BnNP/gZzT/8tvS/w=="
  $FormIcon = $System.Bitmap.FromBase64String($FormIcon)
EndFunction




Here is the same code packaged as an .exe (you will still need Install KiXforms.Net)


Attachments
Purge Print Que.zip (270 downloads)
Description:


_________________________
Wait don't order yet,... get KiXforms Designer .NET 2.0 (Beta)
KiXforms Designer .NET 2.0 (Beta)