<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TMA-2</id>
	<title>AutoIt Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TMA-2"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/TMA-2"/>
	<updated>2026-04-21T14:08:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=PayCalc&amp;diff=8219</id>
		<title>PayCalc</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=PayCalc&amp;diff=8219"/>
		<updated>2009-11-18T01:05:11Z</updated>

		<summary type="html">&lt;p&gt;TMA-2: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;Script:&amp;lt;/b&amp;gt; payCalc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt; Jon Dunham&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt; Simple GUI example to calculate hourly pay in real-time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; &amp;quot;my code is a dog&#039;s code&amp;quot; - &amp;lt;i&amp;gt;R. Beef Kazenzakis&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;EditConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;StaticConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#region GUI setup&lt;br /&gt;
; create main window/form/frame&lt;br /&gt;
$formPC = GUICreate(&amp;quot;payCalc&amp;quot;, 251, 136, 346, 590)&lt;br /&gt;
&lt;br /&gt;
; create labels. it&#039;s generally not necessary to set the returned handle&lt;br /&gt;
;  to a variable on static label controls you know you won&#039;t be interacting with&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Time:&amp;quot;, 8, 8, 30, 17)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Total pay:&amp;quot;, 8, 32, 51, 17)&lt;br /&gt;
; create read-only status boxes&lt;br /&gt;
$tTime = GUICtrlCreateInput(&amp;quot;&amp;quot;, 72, 8, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))&lt;br /&gt;
$tTotal = GUICtrlCreateInput(&amp;quot;&amp;quot;, 72, 32, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
; create buttons. use $BS_DEFPUSHBUTTON constant on Start to make it the default button for when {ENTER} is pressed.&lt;br /&gt;
;  the ampersand character specifies the alt-key shortcut to use&lt;br /&gt;
$btnStart = GUICtrlCreateButton(&amp;quot;&amp;amp;Start&amp;quot;, 8, 104, 75, 25, $BS_DEFPUSHBUTTON)&lt;br /&gt;
$btnStop = GUICtrlCreateButton(&amp;quot;S&amp;amp;top&amp;quot;, 88, 104, 75, 25)&lt;br /&gt;
$btnReset = GUICtrlCreateButton(&amp;quot;&amp;amp;Reset&amp;quot;, 168, 104, 75, 25)&lt;br /&gt;
&lt;br /&gt;
; rate label and input controls&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Rate ($/hr):&amp;quot;, 8, 72, 59, 17)&lt;br /&gt;
$inRate = GUICtrlCreateInput(&amp;quot;0.00&amp;quot;, 72, 72, 57, 21)&lt;br /&gt;
&lt;br /&gt;
; finally, show the GUI&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
#EndRegion&lt;br /&gt;
&lt;br /&gt;
; init global var to keep track of the last timestamp if &amp;quot;Stop&amp;quot; is clicked&lt;br /&gt;
Global $lastTime = 0&lt;br /&gt;
&lt;br /&gt;
While 1&lt;br /&gt;
	; main/idle GUI switch statement&lt;br /&gt;
	Switch GUIGetMsg()&lt;br /&gt;
	Case $GUI_EVENT_CLOSE&lt;br /&gt;
		GUIDelete()&lt;br /&gt;
		Exit&lt;br /&gt;
	Case $btnStart&lt;br /&gt;
		; enter calc function when Start is clicked&lt;br /&gt;
		payCalc()&lt;br /&gt;
	Case $btnReset&lt;br /&gt;
		; zero out gui controls and whatnot&lt;br /&gt;
		GUICtrlSetData($tTime, &amp;quot;&amp;quot;)&lt;br /&gt;
		GUICtrlSetData($tTotal, &amp;quot;&amp;quot;)&lt;br /&gt;
		$lastTime = 0&lt;br /&gt;
	EndSwitch&lt;br /&gt;
	&lt;br /&gt;
	Sleep(10)&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
Func payCalc()&lt;br /&gt;
	; start the timer&lt;br /&gt;
	$timer = TimerInit()&lt;br /&gt;
	; get the rate of pay to multiply based on the update interval, which in this case is 100 milliseconds or 1/10th second&lt;br /&gt;
	$calcRate = Number(GUICtrlRead($inRate))/60/600&lt;br /&gt;
	&lt;br /&gt;
	While 1&lt;br /&gt;
		; check GUI for events&lt;br /&gt;
		Switch GUIGetMsg()&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
			Exit&lt;br /&gt;
		Case $btnStop&lt;br /&gt;
			; when Stop button is clicked, set that global lastTime var to the current timestamp plus itself (+=) if we return to this function&lt;br /&gt;
			$lastTime += TimerDiff($timer)&lt;br /&gt;
			WinSetTitle($formPC, &amp;quot;&amp;quot;, &amp;quot;payCalc&amp;quot;)&lt;br /&gt;
			; return to main loop&lt;br /&gt;
			Return&lt;br /&gt;
		EndSwitch&lt;br /&gt;
		&lt;br /&gt;
		; update the time edit box, adding a millisecond display &#039;cause it&#039;s fun to watch numbers... i guess&lt;br /&gt;
		GUICtrlSetData($tTime, timeFormat(TimerDiff($timer)+$lastTime) &amp;amp; &amp;quot; [&amp;quot; &amp;amp; Round(Mod(TimerDiff($timer), 1000), 0) &amp;amp; &amp;quot;]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		; multiply the adjusted rate by how much time has passed in ms/10 and set edit control, window title and traytip&lt;br /&gt;
		$totalPay = Round($calcRate * ((TimerDiff($timer)+$lastTime)/100), 2)&lt;br /&gt;
		WinSetTitle($formPC, &amp;quot;&amp;quot;, &amp;quot;$&amp;quot; &amp;amp; $totalPay &amp;amp; &amp;quot; [payCalc]&amp;quot;)&lt;br /&gt;
		TraySetToolTip(&amp;quot;$&amp;quot; &amp;amp; $totalPay &amp;amp; @CRLF &amp;amp; timeFormat(TimerDiff($timer)+$lastTime))&lt;br /&gt;
		GUICtrlSetData($tTotal, &amp;quot;$&amp;quot; &amp;amp; $totalPay)&lt;br /&gt;
		&lt;br /&gt;
		; sleep before looping&lt;br /&gt;
		Sleep(100)&lt;br /&gt;
	WEnd&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
func timeFormat($ms, $sepChar = &amp;quot;:&amp;quot;)&lt;br /&gt;
	; custom function to make a nice HH:MM:SS display from a given time in milliseconds&lt;br /&gt;
	dim $sec, $min, $hr&lt;br /&gt;
	dim $s = round($ms/1000, 0 )&lt;br /&gt;
&lt;br /&gt;
	$sec = mod($s, 60)&lt;br /&gt;
	if $sec &amp;lt; 10 then $sec = &amp;quot;0&amp;quot; &amp;amp; $sec&lt;br /&gt;
	$min = Floor(mod($s/60, 60))&lt;br /&gt;
	if $min &amp;lt; 10 then $min = &amp;quot;0&amp;quot; &amp;amp; $min&lt;br /&gt;
	$hr = Floor($s/3600)&lt;br /&gt;
	if $hr &amp;lt; 10 then $hr = &amp;quot;0&amp;quot; &amp;amp; $hr&lt;br /&gt;
&lt;br /&gt;
	Return $hr &amp;amp; $sepChar &amp;amp; $min &amp;amp; $sepChar &amp;amp; $sec&lt;br /&gt;
EndFunc ; &amp;lt;== timeFormat&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>TMA-2</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=8209</id>
		<title>RemoteWmiInfo</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=8209"/>
		<updated>2009-09-26T18:54:27Z</updated>

		<summary type="html">&lt;p&gt;TMA-2: Removed reference to internal AD stuff in a comment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;Script:&amp;lt;/b&amp;gt; remoteWMIInfo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt; Jon Dunham&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt; Mostly-functioning example script for how to retrieve WMI information, as well as working with GUI controls. I currently use it a lot in my job, and works quite well at this point. It&#039;s commented sparingly thus far, but I&#039;ll try and and comment more of it for educational purposes. Please don&#039;t hesitate to contact me if you find problems with it or have ideas on improving its efficiency.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; The Remote and Logoff buttons are disabled by default, as they&#039;re dependent on whether you have access to an internal LANDesk management suite URL (which is what I use specifically, it could also easily be changed to use WinVNC and the like), as well as the psShutdown tool. Also, bear this in mind:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;my code is a dog&#039;s code&amp;quot; - &amp;lt;i&amp;gt;R. Beef Kazenzakis&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
; UDF&lt;br /&gt;
#include &amp;lt;date.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ie.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;guiStatusBar.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Standard&lt;br /&gt;
#include &amp;lt;EditConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;StaticConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; -( remoteWmiInfo )--------------------&lt;br /&gt;
;&lt;br /&gt;
; © Jon Dunham 2009&lt;br /&gt;
;&lt;br /&gt;
; displays WMI and AD info including;&lt;br /&gt;
; 	0: Computer model&lt;br /&gt;
;	1: Serial Number &amp;amp; Asset (if found)&lt;br /&gt;
;	2: BIOS Version&lt;br /&gt;
;	3: total RAM&lt;br /&gt;
;	4: Operating system &amp;amp; service pack&lt;br /&gt;
;	5: MAC Address&lt;br /&gt;
;   6; private IP&lt;br /&gt;
;	7: current domain/user, including display name and SID (in a tooltip)&lt;br /&gt;
;	8: DefaultUserName, including display name and SID (in a tooltip)&lt;br /&gt;
;	9: time to connect in ms &amp;amp; ping&lt;br /&gt;
;  10: Bottom-level OU&lt;br /&gt;
;  11; IP address&lt;br /&gt;
;  12; wireless info from wirelessInfo.au3&lt;br /&gt;
;  13; active monitor model&lt;br /&gt;
;  14; active monitor serial (to some extent)&lt;br /&gt;
;  BLAH BLAH I&#039;M NOT UPDATING THIS ANY MORE&lt;br /&gt;
;&lt;br /&gt;
; also uses psShutdown and LANDesk&lt;br /&gt;
;  for remoting convenience&lt;br /&gt;
;&lt;br /&gt;
; ======================================&lt;br /&gt;
&lt;br /&gt;
Dim $compName, $go, $done&lt;br /&gt;
Global Const $version = &amp;quot;0.4.10&amp;quot;&lt;br /&gt;
Global $debug = 0&lt;br /&gt;
Global $pathSave = @MyDocumentsDir &amp;amp; &amp;quot;\remoteWmiInfo Queries\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AutoItSetOption(&amp;quot;TrayAutoPause&amp;quot;, 0)&lt;br /&gt;
AutoItSetOption(&amp;quot;GUICloseOnESC&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
;HotKeySet( &amp;quot;{ENTER}&amp;quot;, &amp;quot;hotkey_enter&amp;quot; )&lt;br /&gt;
;HotKeySet( &amp;quot;{F1}&amp;quot;, &amp;quot;aboutDiag&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
; make sure icons exist&lt;br /&gt;
DirCreate(&amp;quot;Icons&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;, &amp;quot;Icons\Dialog-Apply.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;, &amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;, &amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;, &amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Region ### START Koda GUI section ### Form=&lt;br /&gt;
$frmInfo = GUICreate(&amp;quot;remoteWmiInfo &amp;quot; &amp;amp; $version, 337, 377, @DesktopWidth / 2, @DesktopHeight * 0.3)&lt;br /&gt;
$winSize = WinGetClientSize($frmInfo)&lt;br /&gt;
GUISetBkColor(0xEEEEEE)&lt;br /&gt;
GUISetIcon(&amp;quot;Icons\Gnome-System-Search.ico&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;	Top Controls&lt;br /&gt;
$editComp = GUICtrlCreateInput(@ComputerName, 4, 30, 329, 21, $ES_UPPERCASE)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;, -1, 4, 4, 21, 21)&lt;br /&gt;
$btnGo = GUICtrlCreateButton(&amp;quot;Query&amp;quot;, 27, 4, 45, 21, $BS_DEFPUSHBUTTON)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;, -1, 74, 4, 21, 21)&lt;br /&gt;
$btnSave = GUICtrlCreateButton(&amp;quot;Save&amp;quot;, 97, 4, 45, 21)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;, -1, 144, 4, 21, 21)&lt;br /&gt;
$btnRC = GUICtrlCreateButton(&amp;quot;Remote&amp;quot;, 167, 4, 45, 21)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;, -1, 214, 4, 21, 21)&lt;br /&gt;
GUICtrlSetState($btnRC, $GUI_DISABLE)&lt;br /&gt;
$btnLO = GUICtrlCreateButton(&amp;quot;Logoff&amp;quot;, 237, 4, 45, 21)&lt;br /&gt;
GUICtrlSetState($btnLO, $GUI_DISABLE)&lt;br /&gt;
;$btnADQ = GUICtrlCreateButton( &amp;quot;dsQuery&amp;quot;, 102, 29, 45, 21 )&lt;br /&gt;
&lt;br /&gt;
$Tab1 = GUICtrlCreateTab(4, 56, 330, 297)&lt;br /&gt;
GUICtrlSetResizing($Tab1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)&lt;br /&gt;
$TabSheet1 = GUICtrlCreateTabItem(&amp;quot;General&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;	Labels&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Model:&amp;quot;, 12, 81, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Serial / Asset:&amp;quot;, 12, 105, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;BIOS Version:&amp;quot;, 12, 129, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Total RAM:&amp;quot;, 12, 153, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;OS:&amp;quot;, 12, 177, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;MAC:&amp;quot;, 12, 201, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;IP:&amp;quot;, 12, 225, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;OU:&amp;quot;, 12, 249, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Current User:&amp;quot;, 12, 273, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Default User:&amp;quot;, 12, 297, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Ping:&amp;quot;, 12, 321, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
&lt;br /&gt;
;	Edit controls&lt;br /&gt;
&lt;br /&gt;
$editModel = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 81, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editSerial = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 105, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editBIOS = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 129, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editRAM = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 153, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editOS = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 177, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editMAC = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 201, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editIP = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 225, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDN = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 249, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editUser = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 273, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDefaultUser = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 297, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editPing = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 321, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;	Wireless info&lt;br /&gt;
$TabSheet2 = GUICtrlCreateTabItem(&amp;quot;Wireless&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;SSID:&amp;quot;, 12, 81, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;BSSID:&amp;quot;, 12, 105, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Signal:&amp;quot;, 12, 129, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Noise:&amp;quot;, 12, 153, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Channel:&amp;quot;, 12, 177, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
&lt;br /&gt;
;	Edits&lt;br /&gt;
&lt;br /&gt;
$editSSID = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 81, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editBSSID = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 105, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editSignal = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 129, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editNoise = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 153, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editChannel = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 177, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
;	Misc info (incl. monitor)&lt;br /&gt;
$TabSheet3 = GUICtrlCreateTabItem(&amp;quot;Misc&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$Group1 = GUICtrlCreateGroup(&amp;quot;Monitor&amp;quot;, 12, 86, 313, 102)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Model:&amp;quot;, 20, 106, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Serial:&amp;quot;, 20, 130, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Description:&amp;quot;, 20, 154, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editDmName = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 106, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDmSerial = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 130, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDmDesc = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 154, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
$Group2 = GUICtrlCreateGroup(&amp;quot;Software&amp;quot;, 12, 190, 313, 102)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;IE:&amp;quot;, 20, 210, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Java RE:&amp;quot;, 20, 234, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;LANDesk:&amp;quot;, 20, 258, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editVerIE = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 210, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editVerJava = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 234, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editLD = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 258, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
; default printer&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Printer:&amp;quot;, 20, 300, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editPrinter = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 300, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
;	End tab section&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
;$background = GUICtrlCreatePic( &amp;quot;c:\temp\osxclonebg.jpg&amp;quot;, 0, 0, 350, 274)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetTip($btnGo, &amp;quot;Attempt to query the specified computer.&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnSave, &amp;quot;Save all fields to &amp;quot; &amp;amp; $pathSave &amp;amp; &amp;quot;COMPUTERNAME-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnRC, &amp;quot;Start a remote control session with the specified computer.&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnLO, &amp;quot;Logoff the current user (please make sure nobody is using it before doing this!!!).&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$statusBar = _GUICtrlStatusBar_Create($frmInfo)&lt;br /&gt;
; try to make a dynamically-sized status size&lt;br /&gt;
Dim $StatusBar1_PartsWidth[2] = [StringLen(_NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;) * 6.5, -1]&lt;br /&gt;
_GUICtrlStatusBar_SetParts($statusBar, $StatusBar1_PartsWidth)&lt;br /&gt;
_GUICtrlStatusBar_SetText($statusBar, _NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;, 0)&lt;br /&gt;
_GUICtrlStatusBar_SetText($statusBar, &amp;quot;&amp;quot;, 1)&lt;br /&gt;
_GUICtrlStatusBar_SetMinHeight($statusBar, 20)&lt;br /&gt;
#EndRegion ### END Koda GUI section ###&lt;br /&gt;
&lt;br /&gt;
Dim $goState, $logoffCheck&lt;br /&gt;
&lt;br /&gt;
While 1 ; main loop&lt;br /&gt;
	$guiMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		; Close window&lt;br /&gt;
		Case $guiMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
			Exit&lt;br /&gt;
			; Save info&lt;br /&gt;
		Case $guiMsg = $btnSave&lt;br /&gt;
&lt;br /&gt;
			; Check that model field isn&#039;t blank&lt;br /&gt;
			If GUICtrlRead($editModel) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				Dim $stateWrite, $file&lt;br /&gt;
&lt;br /&gt;
				If Not FileExists($pathSave) Then&lt;br /&gt;
					DirCreate($pathSave)&lt;br /&gt;
				EndIf&lt;br /&gt;
&lt;br /&gt;
				; this needs to be updated for all fields&lt;br /&gt;
				$stateWrite = FileWrite($pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt&amp;quot;, _&lt;br /&gt;
						&amp;quot;-( General )------------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editModel) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSerial) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editBIOS) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editRAM) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editOS) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editMAC) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editIP) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDN) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editUser) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDefaultUser) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editPing) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						&amp;quot;-( Wireless )-----------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSSID) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editBSSID) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSignal) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editNoise) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editChannel) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						&amp;quot;-( Monitor )------------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmName) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmSerial) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmDesc))&lt;br /&gt;
&lt;br /&gt;
				If $stateWrite Then&lt;br /&gt;
					upStatus(&amp;quot;Info saved to [ &amp;quot; &amp;amp; $pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt ]&amp;quot;)&lt;br /&gt;
				Else&lt;br /&gt;
					upStatus(&amp;quot;Could not write file to [ &amp;quot; &amp;amp; $pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt ]&amp;quot;, 1)&lt;br /&gt;
				EndIf&lt;br /&gt;
&lt;br /&gt;
			Else&lt;br /&gt;
				upStatus(&amp;quot;No data to write!&amp;quot;, 1)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; Start the WMI query&lt;br /&gt;
		Case $guiMsg = $btnGo&lt;br /&gt;
			GUISetState(@SW_DISABLE)&lt;br /&gt;
			$goState = _go()&lt;br /&gt;
			GUISetState(@SW_ENABLE)&lt;br /&gt;
			WinActivate($frmInfo)&lt;br /&gt;
			; Start a LANDesk remote session&lt;br /&gt;
		Case $guiMsg = $btnRC&lt;br /&gt;
			If GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				Select&lt;br /&gt;
					Case $goState = 1&lt;br /&gt;
						Dim $rcWin = _IECreate(&amp;quot;http://landesk/RemoteSession.aspx?machine=&amp;quot; &amp;amp; _&lt;br /&gt;
							GUICtrlRead($editComp) &amp;amp; &amp;quot;&amp;amp;operation=rc&amp;quot;, 0, 0)&lt;br /&gt;
						_IEQuit($rcWin)&lt;br /&gt;
						$goState = 0&lt;br /&gt;
					Case $goState = 2&lt;br /&gt;
						upStatus(&amp;quot;Computer was not contactable.&amp;quot;, 1)&lt;br /&gt;
					Case $goState = 0&lt;br /&gt;
						upStatus(&amp;quot;Please query the computer first.&amp;quot;, 1)&lt;br /&gt;
				EndSelect&lt;br /&gt;
			Else&lt;br /&gt;
				upStatus(&amp;quot;Please enter a computer name.&amp;quot;, 1)&lt;br /&gt;
			EndIf&lt;br /&gt;
			; Run the logoff process if user clicks &#039;Yes&#039; to the msgbox&lt;br /&gt;
		Case $guiMsg = $btnLO&lt;br /&gt;
			If GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; And GUICtrlRead($editUser) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$logoffCheck = MsgBox(51, &amp;quot;Remote WMI Info&amp;quot;, &amp;quot;This will log off the current user: &amp;quot; &amp;amp; _&lt;br /&gt;
					_currentUser(GUICtrlRead($editComp)) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Have you checked &amp;quot; &amp;amp; _&lt;br /&gt;
					&amp;quot;that the computer is not in use?&amp;quot;)&lt;br /&gt;
				If $logoffCheck = 6 Then&lt;br /&gt;
					ShellExecute(&amp;quot;psTools\psshutdown.exe&amp;quot;, &amp;quot;-o \\&amp;quot; &amp;amp; GUICtrlRead($editComp))&lt;br /&gt;
				EndIf&lt;br /&gt;
			Else&lt;br /&gt;
				MsgBox(0, &amp;quot;&amp;quot;, &amp;quot;No computer entered or no user currently logged on.&amp;quot;)&lt;br /&gt;
			EndIf&lt;br /&gt;
			#cs&lt;br /&gt;
				Case $guiMsg = $btnADQ&lt;br /&gt;
				if GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				ShellExecute( &amp;quot;rundll32&amp;quot;, &amp;quot;dsquery,OpenQueryWindow&amp;quot; )&lt;br /&gt;
				WinWaitActive( &amp;quot;Find Users&amp;quot; )&lt;br /&gt;
				ControlCommand( &amp;quot;Find Users&amp;quot;, &amp;quot;&amp;quot;, 16897, &amp;quot;SelectString&amp;quot;, &#039;Computers&#039; )&lt;br /&gt;
				Sleep(2000)&lt;br /&gt;
				WinWait( &amp;quot;Find Computers&amp;quot; )&lt;br /&gt;
				ControlSetText( &amp;quot;Find Computers&amp;quot;, &amp;quot;&amp;quot;, 1224, GUICtrlRead($editComp) )&lt;br /&gt;
				ControlClick( &amp;quot;Find Computers&amp;quot;, &amp;quot;&amp;quot;, 16901 )&lt;br /&gt;
				EndIf&lt;br /&gt;
			#ce&lt;br /&gt;
&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	Sleep(10)&lt;br /&gt;
&lt;br /&gt;
WEnd ; &amp;lt;== main loop&lt;br /&gt;
&lt;br /&gt;
Func _go()&lt;br /&gt;
	$compName = GUICtrlRead($editComp)&lt;br /&gt;
&lt;br /&gt;
	; Populate the array with WMI info, if possible&lt;br /&gt;
	$info = _wmiInfo($compName)&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		; Ping failed&lt;br /&gt;
		Case @error = 7&lt;br /&gt;
			upStatus($info, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Computername contained illegal characters&lt;br /&gt;
		Case @error = 8&lt;br /&gt;
			upStatus(&amp;quot;Please enter a valid name.&amp;quot;, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Unable to get WMI info from computer after successful ping (this shouldn&#039;t really happen ever)&lt;br /&gt;
		Case @error = 9&lt;br /&gt;
			upStatus(&amp;quot;Unable to retrieve computer info after &amp;quot; &amp;amp; Round(@extended / 1000, 1) &amp;amp; &amp;quot;s.&amp;quot;, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Everything OK? DISPLAY THE INFO THEN DAMN&lt;br /&gt;
		Case Not @error&lt;br /&gt;
			upStatus($compName &amp;amp; &amp;quot; queried in &amp;quot; &amp;amp; $info[5])&lt;br /&gt;
			If Not WinActive($frmInfo) Then&lt;br /&gt;
				WinFlash($frmInfo, &amp;quot;&amp;quot;, 4, 250)&lt;br /&gt;
			Else&lt;br /&gt;
				guiFlash($editComp, 0x00FF00, 200)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; general info&lt;br /&gt;
			GUICtrlSetData($editModel, $info[0])&lt;br /&gt;
			GUICtrlSetData($editSerial, $info[1] &amp;amp; &amp;quot; / &amp;quot; &amp;amp; $info[10])&lt;br /&gt;
			GUICtrlSetData($editBIOS, $info[2])&lt;br /&gt;
			GUICtrlSetData($editRAM, $info[3] &amp;amp; &amp;quot; GB&amp;quot;)&lt;br /&gt;
			; Set field BkColor to red if below 1 GB&lt;br /&gt;
			If $info[3] &amp;lt; 0.98 Then&lt;br /&gt;
				GUICtrlSetBkColor($editRAM, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editRAM, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editOS, $info[4])&lt;br /&gt;
			; Set field BkColor to red if not Windows XP&lt;br /&gt;
			If Not StringInStr($info[4], &amp;quot;XP&amp;quot;) Then&lt;br /&gt;
				GUICtrlSetBkColor($editOS, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editOS, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editMAC, $info[9])&lt;br /&gt;
			GUICtrlSetData($editDN, $info[8])&lt;br /&gt;
			GUICtrlSetData($editUser, $info[6]); &amp;amp; &amp;quot; (&amp;quot; &amp;amp; _ADDNToDisplayName($info[6]) &amp;amp; &amp;quot;)&amp;quot; )&lt;br /&gt;
			GUICtrlSetData($editDefaultUser, $info[7]); &amp;amp; &amp;quot; (&amp;quot; &amp;amp; _ADDNToDisplayName($info[7]) &amp;amp; &amp;quot;)&amp;quot; )&lt;br /&gt;
			GUICtrlSetData($editPing, $info[17])&lt;br /&gt;
			GUICtrlSetData($editIP, $info[11])&lt;br /&gt;
&lt;br /&gt;
			; wireless&lt;br /&gt;
			GUICtrlSetData($editSSID, $info[12])&lt;br /&gt;
			GUICtrlSetData($editSignal, $info[13])&lt;br /&gt;
			GUICtrlSetData($editNoise, $info[14])&lt;br /&gt;
			GUICtrlSetData($editChannel, $info[15])&lt;br /&gt;
			GUICtrlSetData($editBSSID, $info[18])&lt;br /&gt;
&lt;br /&gt;
			; misc&lt;br /&gt;
			GUICtrlSetData($editDmName, $info[19])&lt;br /&gt;
			GUICtrlSetData($editDmSerial, $info[20])&lt;br /&gt;
			GUICtrlSetData($editDmDesc, $info[21])&lt;br /&gt;
			GUICtrlSetData($editVerIE, $info[26])&lt;br /&gt;
			; Set field BkColor to red if below v7&lt;br /&gt;
			If StringLeft($info[26], 1) &amp;lt; 7 Then&lt;br /&gt;
				GUICtrlSetBkColor($editVerIE, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editVerIE, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editVerJava, $info[27])&lt;br /&gt;
			; Set field BkColor to red if below v1.4&lt;br /&gt;
			If $info[27] &amp;lt; 1.4 Or $info[27] = &amp;quot;&amp;quot; Then&lt;br /&gt;
				GUICtrlSetBkColor($editVerJava, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editVerJava, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editLD, $info[28])&lt;br /&gt;
			; Set field BkColor to red if below v1.4&lt;br /&gt;
			If $info[28] = &amp;quot;Not running.&amp;quot; Then&lt;br /&gt;
				GUICtrlSetBkColor($editLD, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editLD, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; printer&lt;br /&gt;
			GUICtrlSetData($editPrinter, $info[29])&lt;br /&gt;
&lt;br /&gt;
			GUICtrlSetTip($editUser, $info[24], $info[22], 1)&lt;br /&gt;
			GUICtrlSetTip($editDefaultUser, $info[25], $info[23], 1)&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	Return 1&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_go&lt;br /&gt;
&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func _wmiInfo($compName)&lt;br /&gt;
&lt;br /&gt;
	; seterror if the computername string contains illegal characters&lt;br /&gt;
	If Not _computerNameLegal($compName) Then&lt;br /&gt;
		SetError(8)&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; init object variables&lt;br /&gt;
	Dim $objWMIService, $objAccount&lt;br /&gt;
	Dim $colBios, $colCSP, $colLMC, $colOS, $colNic, $colSysEnc, $colDM&lt;br /&gt;
	Dim $dmEDID, $dmPNPDID, $dmName&lt;br /&gt;
	Dim $arrCU&lt;br /&gt;
	Dim $ping = Ping($compName, 1000)&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
		Select&lt;br /&gt;
			Case @error = 1&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Computer is offline.&amp;quot;&lt;br /&gt;
			Case @error = 2&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Computer is unreachable.&amp;quot;&lt;br /&gt;
			Case @error = 3&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Bad destination, please check the name.&amp;quot;&lt;br /&gt;
			Case @error = 4&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Problem contacting address.&amp;quot;&lt;br /&gt;
		EndSelect&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; init arrays we&#039;ll return&lt;br /&gt;
	Dim $info[31], $mInfo, $infoW, $SID&lt;br /&gt;
&lt;br /&gt;
	; get IP for no good damn reason&lt;br /&gt;
	TCPStartup()&lt;br /&gt;
	$info[11] = TCPNameToIP($compName)&lt;br /&gt;
	TCPShutdown()&lt;br /&gt;
&lt;br /&gt;
	; start the response timer&lt;br /&gt;
	Dim $timer = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	; get the WIM object&lt;br /&gt;
	$objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
	;$objRegistry = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after WMI connection: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; get defaultusername &amp;amp; software versions from the registry&lt;br /&gt;
	$info[7] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon&amp;quot;, &amp;quot;DefaultUserName&amp;quot;)&lt;br /&gt;
	$info[30] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon&amp;quot;, &amp;quot;DefaultDomainName&amp;quot;)&lt;br /&gt;
	$info[26] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Internet Explorer&amp;quot;, &amp;quot;Version&amp;quot;)&lt;br /&gt;
	$info[27] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\JavaSoft\Java Runtime Environment&amp;quot;, &amp;quot;CurrentVersion&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after registry: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; check to see if the WMI object exists; if not, seterror and return&lt;br /&gt;
	; this check should now be deprecated due to the use of ping()&lt;br /&gt;
	If Not IsObj($objWMIService) Then&lt;br /&gt;
		SetError(9, TimerDiff($timer))&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$info[17] = Round($ping, -1) &amp;amp; &amp;quot;ms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; check if LD remote agent (issuser) is running&lt;br /&gt;
	$info[28] = _processExists(&amp;quot;issuser.exe&amp;quot;, $compName)&lt;br /&gt;
&lt;br /&gt;
	If Not $info[28] Then&lt;br /&gt;
		$info[28] = &amp;quot;Not running.&amp;quot;&lt;br /&gt;
	Else&lt;br /&gt;
		$info[28] = &amp;quot;Running (PID: &amp;quot; &amp;amp; $info[28] &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; execquery on all the info groups we&#039;ll need&lt;br /&gt;
	$colBios = $objWMIService.execquery(&amp;quot;Select * From Win32_BIOS&amp;quot;)&lt;br /&gt;
	$colSysEnc = $objWMIService.execquery(&amp;quot;Select * From Win32_SystemEnclosure&amp;quot;)&lt;br /&gt;
	$colCSP = $objWMIService.execquery(&amp;quot;Select * from Win32_ComputerSystem&amp;quot;)&lt;br /&gt;
	$colLMC = $objWMIService.execquery(&amp;quot;Select * from Win32_LogicalMemoryConfiguration&amp;quot;)&lt;br /&gt;
	$colOS = $objWMIService.execquery(&amp;quot;Select * from Win32_OperatingSystem&amp;quot;)&lt;br /&gt;
	$colNic = $objWMIService.execquery(&amp;quot;SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after queries: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	$info[8] = _extractOU(_getDN($compName))&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after DN: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; get monitor info&lt;br /&gt;
	$mInfo = monitorInfo($compName)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after monitorInfo: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	If IsArray($mInfo) Then&lt;br /&gt;
		$info[19] = $mInfo[0] ; model&lt;br /&gt;
		$info[20] = $mInfo[1] ; serial&lt;br /&gt;
		$info[21] = $mInfo[2] ; name&lt;br /&gt;
	Else&lt;br /&gt;
		$info[19] = &amp;quot;No valid EDID found.&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; grab computer model &amp;amp; current user&lt;br /&gt;
	For $objCSP In $colCSP&lt;br /&gt;
		$info[0] = StringStripWS($objCSP.Manufacturer, 2) &amp;amp; &amp;quot; &amp;quot; &amp;amp; $objCSP.Model&lt;br /&gt;
		$info[6] = $objCSP.UserName&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; get current user full name and description&lt;br /&gt;
	If $info[6] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
		$arrCU = StringSplit($info[6], &amp;quot;\&amp;quot;, 2)&lt;br /&gt;
		$objAccount = $objWMIService.Get(&#039;Win32_UserAccount.Name=&amp;quot;&#039; &amp;amp; $arrCU[1] &amp;amp; &#039;&amp;quot;,Domain=&amp;quot;&#039; &amp;amp; $arrCU[0] &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
		If IsObj($objAccount) Then&lt;br /&gt;
			$info[22] = $objAccount.FullName&lt;br /&gt;
			$info[24] = $objAccount.Description&lt;br /&gt;
			$SID = $objAccount.SID&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	;if $debug Then ConsoleWrite( $arrCU[1] &amp;amp; &amp;quot; SID: &amp;quot; &amp;amp; $SID &amp;amp; @CRLF )&lt;br /&gt;
&lt;br /&gt;
	; get default user full name and description&lt;br /&gt;
	$objAccount = $objWMIService.Get(&amp;quot;Win32_UserAccount.Name=&#039;&amp;quot; &amp;amp; $info[7] &amp;amp; &amp;quot;&#039;,Domain=&#039;&amp;quot; &amp;amp; $info[30] &amp;amp; &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
	If IsObj($objAccount) Then&lt;br /&gt;
		$info[23] = $objAccount.FullName&lt;br /&gt;
		$info[25] = $objAccount.Description&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; grab the serial and BIOS version&lt;br /&gt;
	For $objBios In $colBios&lt;br /&gt;
		$info[1] = $objBios.SerialNumber&lt;br /&gt;
		$info[2] = $objBios.SMBIOSBIOSVersion&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab the asset tag, if available (it will be on HP dc7900s and possibly others)&lt;br /&gt;
	For $objSysEnc In $colSysEnc&lt;br /&gt;
		$info[10] = $objSysEnc.SMBIOSAssetTag&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; set to N/A if it didn&#039;t exist for returning purposes&lt;br /&gt;
	If StringIsSpace($info[10]) Then $info[10] = &amp;quot;Asset tag not set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; grab RAM, convert to GB (&#039;cause who the fuck has less than 1GB nowadays)&lt;br /&gt;
	For $objLMC In $colLMC&lt;br /&gt;
		$info[3] = Round($objLMC.TotalPhysicalMemory / 1048576, 2)&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab OS&lt;br /&gt;
	For $objOS In $colOS&lt;br /&gt;
		$info[4] = $objOS.Caption &amp;amp; &amp;quot; &amp;quot; &amp;amp; $objOS.CSDVersion&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab MAC&lt;br /&gt;
	For $objNic In $colNic&lt;br /&gt;
		$info[9] = $objNic.MACAddress&lt;br /&gt;
		; check if static IP or not, indicating QS or otherwise special-purpose machine&lt;br /&gt;
		$info[16] = $objNic.DHCPEnabled&lt;br /&gt;
		If $debug Then ConsoleWrite(&amp;quot;DHCPEnabled: &amp;quot; &amp;amp; VarGetType($info[16]) &amp;amp; &amp;quot; | Length: &amp;quot; &amp;amp; StringLen($info[16]) &amp;amp; @LF)&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after objWMI grabbing: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; get wireless info if available&lt;br /&gt;
	$infoW = wirelessInfo($compName)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after wireless stats: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; ssid&lt;br /&gt;
	$info[12] = $infoW[0]&lt;br /&gt;
	; signal&lt;br /&gt;
	$info[13] = $infoW[1]&lt;br /&gt;
	; noise&lt;br /&gt;
	$info[14] = $infoW[2]&lt;br /&gt;
	; channel&lt;br /&gt;
	$info[15] = $infoW[3]&lt;br /&gt;
	; BSSID&lt;br /&gt;
	$info[18] = $infoW[4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	; Strip whitespace from end of model string, &#039;cause there&#039;s usually a lot&lt;br /&gt;
	$info[0] = StringStripWS($info[0], 2)&lt;br /&gt;
&lt;br /&gt;
	; get the TOTAL query time now&lt;br /&gt;
	$info[5] = Round(TimerDiff($timer), -1) &amp;amp; &amp;quot;ms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	If $SID Then _&lt;br /&gt;
			$info[29] = defPrinterInfo($SID, $compName)&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_wmiInfo&lt;br /&gt;
&lt;br /&gt;
Func _currentUser($compName)&lt;br /&gt;
	Dim $objWMIService&lt;br /&gt;
	Dim $colCSP&lt;br /&gt;
	Dim $user&lt;br /&gt;
&lt;br /&gt;
	$objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	If Not IsObj($objWMIService) Then Return&lt;br /&gt;
&lt;br /&gt;
	$colCSP = $objWMIService.execquery(&amp;quot;Select * from Win32_ComputerSystem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objCSP In $colCSP&lt;br /&gt;
		$user = $objCSP.UserName&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	Return $user&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_currentUser&lt;br /&gt;
&lt;br /&gt;
Func _getDN($compName)&lt;br /&gt;
	Dim $objTrans, $objDomain&lt;br /&gt;
	Const $ADS_NAME_TYPE_1779 = 1&lt;br /&gt;
	Const $ADS_NAME_INITTYPE_GC = 3&lt;br /&gt;
	Const $ADS_NAME_TYPE_NT4 = 3&lt;br /&gt;
&lt;br /&gt;
	$objTranslate = ObjCreate(&amp;quot;NameTranslate&amp;quot;)&lt;br /&gt;
	$objDomain = ObjGet(&amp;quot;LDAP://rootDse&amp;quot;)&lt;br /&gt;
	If @error Then&lt;br /&gt;
		Return &amp;quot;Could not contact domain controller.&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$objTranslate.Init($ADS_NAME_INITTYPE_GC, &amp;quot;&amp;quot;)&lt;br /&gt;
	$objTranslate.Set($ADS_NAME_TYPE_NT4, @LogonDomain &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;$&amp;quot;)&lt;br /&gt;
	$compDN = $objTranslate.Get($ADS_NAME_TYPE_1779)&lt;br /&gt;
	;Set DN to upper Case&lt;br /&gt;
	$compDN = StringUpper($compDN)&lt;br /&gt;
&lt;br /&gt;
	Return $compDN&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_getDN&lt;br /&gt;
&lt;br /&gt;
Func upStatus($msg, $flash = 0, $color = 0x88DDCC)&lt;br /&gt;
	_GUICtrlStatusBar_SetText($statusBar, _NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;, 0)&lt;br /&gt;
	_GUICtrlStatusBar_SetText($statusBar, $msg, 1)&lt;br /&gt;
&lt;br /&gt;
	If $flash Then&lt;br /&gt;
		;for $i=0 to 3&lt;br /&gt;
		;	_GUICtrlStatusBar_SetBkColor($statusBar, $color)&lt;br /&gt;
		;	Sleep(500)&lt;br /&gt;
		;	_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_DEFAULT)&lt;br /&gt;
		;	Sleep(500)&lt;br /&gt;
		;Next&lt;br /&gt;
	Else&lt;br /&gt;
		_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_MONEYGREEN)&lt;br /&gt;
		Sleep(250)&lt;br /&gt;
		_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_DEFAULT)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;upStatus&lt;br /&gt;
&lt;br /&gt;
Func _extractOU($DN)&lt;br /&gt;
	; We want to turn this&lt;br /&gt;
	; CN=compName,OU=Group3,OU=Group2,OU=Group1,DC=site,DC=com&lt;br /&gt;
	; into this&lt;br /&gt;
	; Group3&lt;br /&gt;
	;&lt;br /&gt;
	; HAHA THIS WAS SO EASY, THANKS StringSplit()&lt;br /&gt;
	If $DN = &amp;quot;Could not contact domain controller.&amp;quot; Then Return $DN&lt;br /&gt;
&lt;br /&gt;
	Dim $OU, $arrDN&lt;br /&gt;
	$arrDN = StringSplit($DN, &amp;quot;,&amp;quot;, 2)&lt;br /&gt;
	$OU = StringTrimLeft($arrDN[1], 3)&lt;br /&gt;
&lt;br /&gt;
	Return $OU&lt;br /&gt;
EndFunc   ;==&amp;gt;_extractOU&lt;br /&gt;
&lt;br /&gt;
Func _displayName($logon)&lt;br /&gt;
	$objDomain = ObjGet(&amp;quot;LDAP://rootDse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	;$objDomain.&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_displayName&lt;br /&gt;
&lt;br /&gt;
Func _computerNameLegal($compName)&lt;br /&gt;
	Dim $i&lt;br /&gt;
	Const $illegalChars = StringToASCIIArray(&amp;quot;`~!@#$ ^&amp;amp;*()=+[]{}\|;:&#039;,&amp;lt;&amp;gt;/?&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($illegalChars) - 1&lt;br /&gt;
		If StringInStr($compName, Chr($illegalChars[$i])) Then&lt;br /&gt;
			; return 0 if computer name contains bad characters&lt;br /&gt;
			Return 0&lt;br /&gt;
		EndIf&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; return 1 if computer name is OK, in keeping with 1=success/0=failure autoit function return codes&lt;br /&gt;
	Return 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_computerNameLegal&lt;br /&gt;
&lt;br /&gt;
Func aboutDiag()&lt;br /&gt;
	GUISetState(@SW_DISABLE)&lt;br /&gt;
	MsgBox(64, &amp;quot;About&amp;quot;, &amp;quot;remoteWmiInfo &amp;quot; &amp;amp; $version &amp;amp; @CR &amp;amp; _&lt;br /&gt;
			&amp;quot;© Jon Dunham 2009&amp;quot; &amp;amp; @CR &amp;amp; _&lt;br /&gt;
			&amp;quot;dunham.jon@gmail.com&amp;quot; &amp;amp; @CR &amp;amp; @CR)&lt;br /&gt;
	GUISetState(@SW_ENABLE)&lt;br /&gt;
	WinActivate($frmInfo)&lt;br /&gt;
EndFunc   ;==&amp;gt;aboutDiag&lt;br /&gt;
&lt;br /&gt;
Func monitorInfo($compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	; Dell serial - 78 characters in (without MX0 or CN0 prefix)&lt;br /&gt;
	; HP serial - 114 characters in&lt;br /&gt;
	; both models - 96 (192 hex) characters in&lt;br /&gt;
	;&lt;br /&gt;
	; this function runs assuming the computer has already been contacted,&lt;br /&gt;
	;  otherwise it will hang for ~82 seconds trying to contact the WMI service&lt;br /&gt;
	;&lt;br /&gt;
	Dim $colDM, $PNPDID, $EDID, $Name&lt;br /&gt;
	Dim $objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
	$colDM = $objWMIService.execquery(&#039;SELECT * FROM Win32_DesktopMonitor WHERE PNPDeviceID IS NOT NULL&#039;)&lt;br /&gt;
&lt;br /&gt;
	For $objDM In $colDM&lt;br /&gt;
		; this is the best scenario we want (powered on/connected).&lt;br /&gt;
		;  Generally all other DesktopMonitor.Availability = 8 (off-line)&lt;br /&gt;
		If $objDM.Availability = 3 Then &lt;br /&gt;
			$PNPDID = $objDM.PNPDeviceID&lt;br /&gt;
			$Name = $objDM.Name&lt;br /&gt;
			$EDID = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SYSTEM\CurrentControlSet\Enum\&amp;quot; &amp;amp; $PNPDID &amp;amp; &amp;quot;\Device Parameters&amp;quot;, &amp;quot;EDID&amp;quot;)&lt;br /&gt;
			If Not @error Then&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			;if there isn&#039;t an EDID for this, continueloop and get it from the next monitor with a PNPDeviceID&lt;br /&gt;
			Else&lt;br /&gt;
				ContinueLoop &lt;br /&gt;
			EndIf&lt;br /&gt;
		; this may or may not indicate the currently connected display device.&lt;br /&gt;
		;  Display status reporting seems to be sketchy at best with WMI&lt;br /&gt;
		Else&lt;br /&gt;
			$PNPDID = $objDM.PNPDeviceID&lt;br /&gt;
			$Name = $objDM.Name&lt;br /&gt;
			$EDID = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SYSTEM\CurrentControlSet\Enum\&amp;quot; &amp;amp; $PNPDID &amp;amp; &amp;quot;\Device Parameters&amp;quot;, &amp;quot;EDID&amp;quot;)&lt;br /&gt;
			If Not @error Then&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Else&lt;br /&gt;
				ContinueLoop&lt;br /&gt;
			EndIf&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite($Name &amp;amp; &amp;quot;: &amp;quot; &amp;amp; $objDM.Availability &amp;amp; &amp;quot; \ &amp;quot; &amp;amp; $PNPDID &amp;amp; @LF &amp;amp; @LF &amp;amp; $EDID &amp;amp; @LF)&lt;br /&gt;
&lt;br /&gt;
	If Not IsBinary($EDID) Then&lt;br /&gt;
		SetError(1)&lt;br /&gt;
		Return @error&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $info[3], $serial, $model&lt;br /&gt;
&lt;br /&gt;
	$model = StringStripWS(StringMid(BinaryToString($EDID), 96, 12), 2)&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Model: &amp;quot; &amp;amp; $model &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;HP&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;HP found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 114, 10)&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;DE&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;Dell found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 78, 12)&lt;br /&gt;
			$serial = &amp;quot;[ MX0 | CN0 ]&amp;quot; &amp;amp; StringLeft($serial, 5) &amp;amp; &amp;quot;XXXXX&amp;quot; &amp;amp; StringRight($serial, 7)&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;LG&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;LG found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 114, 12) &amp;amp; &amp;quot; (may be the model)&amp;quot;&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Serial: &amp;quot; &amp;amp; $serial &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	$info[0] = $model&lt;br /&gt;
	$info[1] = $serial&lt;br /&gt;
	$info[2] = $Name&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
EndFunc   ;==&amp;gt;monitorInfo&lt;br /&gt;
&lt;br /&gt;
Func _processExists($procName, $compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	$oWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\CIMV2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	If Not IsObj($oWMIService) Then&lt;br /&gt;
		SetError(1)&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $handle, $colProc&lt;br /&gt;
&lt;br /&gt;
	$cProc = $oWMIService.ExecQuery(&#039;SELECT * FROM Win32_Process WHERE Name = &amp;quot;&#039; &amp;amp; $procName &amp;amp; &#039;&amp;quot;&#039;)&lt;br /&gt;
&lt;br /&gt;
	For $oProc In $cProc&lt;br /&gt;
		$handle = $oProc.Handle&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $handle Then&lt;br /&gt;
		Return $handle&lt;br /&gt;
	Else&lt;br /&gt;
		Return 0&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_processExists&lt;br /&gt;
&lt;br /&gt;
Func guiFlash(ByRef $control, $color, $duration = 200, $times = 2, $tween = 0.4)&lt;br /&gt;
	$sleep1 = ($duration / $times) * $tween&lt;br /&gt;
	$sleep2 = ($duration / $times) * (1 - $tween)&lt;br /&gt;
&lt;br /&gt;
	If $control &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
		If IsHWnd($control) Then&lt;br /&gt;
			For $i = 1 To $times&lt;br /&gt;
				GUISetBkColor($control, $color)&lt;br /&gt;
				Sleep($sleep1)&lt;br /&gt;
				GUISetBkColor($control, Default)&lt;br /&gt;
				Sleep($sleep2)&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $i = 1 To $times&lt;br /&gt;
				GUICtrlSetBkColor($control, $color)&lt;br /&gt;
				Sleep($sleep1)&lt;br /&gt;
				GUICtrlSetBkColor($control, Default)&lt;br /&gt;
				Sleep($sleep2)&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		Return 0&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Return 1&lt;br /&gt;
EndFunc   ;==&amp;gt;guiFlash&lt;br /&gt;
&lt;br /&gt;
Func defPrinterInfo($SID, $compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	$defPrintString = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKU\&amp;quot; &amp;amp; $SID &amp;amp; &amp;quot;\Software\Microsoft\Windows NT\CurrentVersion\Windows&amp;quot;, &amp;quot;Device&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	$info = StringSplit($defPrintString, &amp;quot;,&amp;quot;, 2)&lt;br /&gt;
	$defPrinter = $info[0]&lt;br /&gt;
&lt;br /&gt;
	Return $defPrinter&lt;br /&gt;
EndFunc   ;==&amp;gt;defPrinterInfo&lt;br /&gt;
&lt;br /&gt;
Func wirelessInfo($strComputer = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Dim $objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $strComputer &amp;amp; &amp;quot;\root\WMI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	; Was the computer contactable?&lt;br /&gt;
	If Not IsObj($objWMIService) Then&lt;br /&gt;
		Return 2&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $SSID, $BSSID, $signal, $noise, $channel, $info[5]&lt;br /&gt;
	Dim $raw&lt;br /&gt;
	Const $channels[24] = [&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;7&amp;quot;, &amp;quot;8&amp;quot;, &amp;quot;9&amp;quot;, &amp;quot;10&amp;quot;, &amp;quot;11&amp;quot;, &amp;quot;40&amp;quot;, &amp;quot;36&amp;quot;, &amp;quot;44&amp;quot;, &amp;quot;48&amp;quot;, &amp;quot;52&amp;quot;, _&lt;br /&gt;
		&amp;quot;56&amp;quot;, &amp;quot;60&amp;quot;, &amp;quot;64&amp;quot;, &amp;quot;149&amp;quot;, &amp;quot;153&amp;quot;, &amp;quot;157&amp;quot;, &amp;quot;161&amp;quot;, &amp;quot;165&amp;quot;]&lt;br /&gt;
	Const $frequencies[24] = [&amp;quot;2412000&amp;quot;, &amp;quot;2417000&amp;quot;, &amp;quot;2422000&amp;quot;, &amp;quot;2427000&amp;quot;, &amp;quot;2432000&amp;quot;, &amp;quot;2437000&amp;quot;, &amp;quot;2442000&amp;quot;, &amp;quot;2447000&amp;quot;, _&lt;br /&gt;
	&amp;quot;2452000&amp;quot;, &amp;quot;2457000&amp;quot;, &amp;quot;2462000&amp;quot;, &amp;quot;5200000&amp;quot;, &amp;quot;5180000&amp;quot;, &amp;quot;5220000&amp;quot;, &amp;quot;5240000&amp;quot;, &amp;quot;5260000&amp;quot;, &amp;quot;5280000&amp;quot;, &amp;quot;5300000&amp;quot;, &amp;quot;5320000&amp;quot;, _&lt;br /&gt;
	&amp;quot;5745000&amp;quot;, &amp;quot;5765000&amp;quot;, &amp;quot;5785000&amp;quot;, &amp;quot;5805000&amp;quot;, &amp;quot;5825000&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	; Signal&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_ReceivedSignalStrength where Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$signal = $objWifi.NDIS80211ReceivedSignalStrength &amp;amp; &amp;quot; dBm&amp;quot;&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Noise&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;SELECT * FROM Atheros5000_NoiseFloor where Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$noise = -$objWifi.Value &amp;amp; &amp;quot; dBm&amp;quot;&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; SSID&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_ServiceSetIdentifier&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$SSID = $objWifi.NDIS80211SSID&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($SSID) - 1&lt;br /&gt;
		If $SSID[$i] &amp;lt; 32 Or $SSID[$i] &amp;gt; 127 Then&lt;br /&gt;
			$SSID[$i] = &amp;quot;&amp;quot;&lt;br /&gt;
		Else&lt;br /&gt;
			$SSID[$i] = Chr($SSID[$i])&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	$SSID = _ArrayToString($SSID, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	; AP MAC&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_BaseServiceSetIdentifier WHERE Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$BSSID = $objWifi.NDIS80211MacAddress&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($BSSID) - 1&lt;br /&gt;
		$BSSID[$i] = Hex($BSSID[$i], 2)&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Channel&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_Configuration WHERE Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$raw = $objWifi.Ndis80211Config.DSConfig&lt;br /&gt;
&lt;br /&gt;
		For $i = 0 To UBound($frequencies) - 1&lt;br /&gt;
			If $raw = $frequencies[$i] Then&lt;br /&gt;
				$channel = $channels[$i]&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Formatting (use stringreplace($info[4], &amp;quot;:&amp;quot;, &amp;quot;&amp;quot;) to remove or replace colons in the AP MAC if desired)&lt;br /&gt;
&lt;br /&gt;
	$BSSID = _ArrayToString($BSSID, &amp;quot;:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	$info[0] = $SSID&lt;br /&gt;
	$info[1] = $signal&lt;br /&gt;
	$info[2] = $noise&lt;br /&gt;
	$info[3] = $channel&lt;br /&gt;
	$info[4] = $BSSID&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;wirelessInfo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>TMA-2</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=User:TMA-2&amp;diff=8200</id>
		<title>User:TMA-2</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=User:TMA-2&amp;diff=8200"/>
		<updated>2009-09-18T23:21:06Z</updated>

		<summary type="html">&lt;p&gt;TMA-2: Created page with &amp;#039;AutoIt hobbyist with a few months experience using it to automate PC deployments in a large medical production environment.&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoIt hobbyist with a few months experience using it to automate PC deployments in a large medical production environment.&lt;/div&gt;</summary>
		<author><name>TMA-2</name></author>
	</entry>
</feed>