func.kix
Code:
;===============================================================================================
;**** Last Modified on 11/10/2004 at 10:27:55 AM by dkrogol ****
;===============================================================================================
Function runscripts()
$Stopbutton.Visible = "True"
$startButton.Visible = "False"
$PBarMain.Visible = "True"
$Stopbutton.EnAbled = "True"
$PBarMain.Step = $pbar
For Each $item in $ListView.Items
$item.Remove
Next
Del $localscripts+"*.log"
If Exist($inifile)
$ScriptArray = Split(ReadProfileString($inifile,"",""),Chr(10))
For Each $script in $ScriptArray
If Val(ReadProfileString($inifile,$script,"run"))
$runchk=ReadProfileString($inifile,$script,"run")
If $runRQST=1
$runchk=1
EndIf
If $runchk=1
$starttime=@TIME
$message=ReadProfileString($inifile,$script,"message")
$log=ReadProfileString($inifile,$script,"log")
$item=$listview.items.add
$Item.SubItems(0).Text = ($message)
$Item.SubItems(1).Text = ($starttime)
$Item.SubItems(3).Text = ($locallog + $log)
$Item.SubItems(4).Text = ("Running")
Select
Case InStr ($script,".exe")
Shell $script
Case InStr ($script,".kix")
Call $script
EndSelect
If $stopbutton.tag = 0
Do
$= Execute($Form.DoEvents(1))
Until
Exist ($locallog+$log)
Else
abort()
EndIf
EndIf
EndIf
$Item.SubItems(2).Text=(@time)
$Item.SubItems(4).Text=("Complete")
$PBarMain.PerformStep ()
Next
$item=$listview.items.add
$Item.SubItems(0).Text = ("Session Completed Sucessfully")
$Stopbutton.Visible = "False"
$Startbutton.Visible = "True"
EndFunction
Function Request()
$= $ListViewRQST.Columns.Add("",243)
$requestform.Show
$ScriptArray = Split(ReadProfileString($inifile,"",""),Chr(10))
For Each $script in $ScriptArray
If Val(ReadProfileString($inifile,$script,"run"))
$rqstchk=ReadProfileString($inifile,$script,"run")
If $rqstchk=2
$message=ReadProfileString($inifile,$script,"message")
$item=$listviewRQST.items.add
$Item.SubItems(0).Text = ($message)
EndIf
EndIf
Next
$Requestform.SetFocus
While $requestform.Visible AND $requestform.Tag=0
$=Execute($requestform.DoEvents())
Loop
$Requestform.Hide
If $requestform.tag=1
$runRQST=1
Runscripts()
EndIf
EndFunction
Function abort()
$item=$listview.items.add
$Item.SubItems(0).Text = ("Session Aborted by @FULLNAME")
$Item.SubItems(1).Text=(@DATE)
$Item.SubItems(2).Text=(@time)
Open (9,$netlogs + $userlog,5)
WriteLine (9,'<TD><B><font size="-1"><font color=#ff0000>User Aborted Session $message</font></TD><TD><font size="-1"><font color=#ff0000>' + @DATE+ "," + @TIME + '</TD><BR></B></TR></font>'+@CRLF)
Close (9)
$stopbutton.tag = 0
$Stopbutton.Visible = "False"
$Startbutton.Visible = "True"
$Stopbutton.Enabled = "False"
$Startbutton.Enabled = "True"
$Form.ReFresh
$=Execute($System.Application.DoEvents())
EndFunction
Function Leave()
Open (9,$netlogs + $userlog,5)
WriteLine (9,'<TD><B><font size="-1"><font color=#ff0000>User Exited Application</TD><TD></font><font size="-1"><font color=#ff0000>' + @DATE+ " " + @TIME + '</TD><BR></B></TR></font>'+@CRLF)
Close (9)
Quit
EndFunction
Function IE()
Run $Explorer + ' ' + $HTML
EndFunction
Function Admin()
$ListUsers.Clear
For Each $item in $ListUsers.Items
$item.Remove
Next
$= $ListUsers.Columns.Add("User Names",179)
$FrmAdmin.Show
$username=Dir ($nodepath)
While $username <> "" AND @ERROR = 0
If NOT InStr($username,".")
$item=$listUsers.items.add
$Item.SubItems(0).Text = ($username)
EndIf
$username = Dir("")
Loop
While $FrmAdmin.Visible
$=Execute($FrmAdmin.DoEvents())
Loop
EndFunction
Function Startlogs ()
Open (9,$netlogs+$userlog,5)
WriteLine (9,"<TD><B><font color=#008000>"+$message+"</font</TD><TD><font color=#008000>@MONTHNO/@MDAYNO/@YEAR - @TIME</font></TD></B></TR><p>"+ @CRLF)
Open (8,$netlogs+$listhtml,5)
WriteLine (8,$stloginfo+$message+$endlisthtml+@CRLF)
Close (8)
EndFunction
Function errchk()
WriteLine (9,$stloginfo+$status+$midloginfo+@SERROR+$endloginfo+@CRLF)
$status=""
EndFunction
Function EndLogs()
Open (1,$locallog+$log,5)
WriteLine (1,@date+@CRLF)
Close(1)
Close(9)
EndFunction
;***************************************
;Start Functions for Admin List and Edit
;***************************************
Function Select_User()
If $ListUsers.SelectedItems.Count > 0
For Each $Item In $ListUsers.SelectedItems
$txtPriNetID.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"primary","NetID")
$txtPriCPU.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"primary","CPU")
$TxtAltNetID.Text=ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","NetID")
$txtAltFullName.Text=ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","Name")
$txtAltCPU.Text=ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","CPU")
$chkbxalt.checkstate=ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","checkbox")
alternates()
Next
EndIf
EndFunction
Function Alternates()
Select
Case $chkbxalt.CheckState = 1
$lblAlt.Visible = "True"
$lblAltNetID.Visible = "True"
$lblAltFullName.Visible = "True"
$lblAltCPU.Visible = "True"
$txtAltNetID.Visible = "True"
$txtAltFullName.Visible = "True"
$txtAltCPU.Visible = "True"
Case $chkbxalt.CheckState =0
$lblAlt.Visible = "False"
$lblAltNetID.Visible = "False"
$lblAltFullName.Visible = "False"
$lblAltCPU.Visible = "False"
$txtAltNetID.Visible = "False"
$txtAltFullName.Visible = "False"
$txtAltCPU.Visible = "False"
EndSelect
EndFunction
Function AddAltCheckbox()
Select
Case $chkbxAddaltUser.CheckState = 1
$frmadd.Height = 295
$btnAddUserOK.Top = 240
$btnAddUserCNCL.Top = 240
$chkbxAddAltUser.Top = 215
$lblAddAltUser.Visible = "True"
$lblAddAltFullName.Visible = "True"
$lblAddAltNetID.Visible = "True"
$lblAddAltCPUName.Visible = "True"
$txtAddAltFullName.Visible = "True"
$txtAddAltNetID.Visible = "True"
$txtAddAltCPUName.Visible = "True"
Case $chkbxAddaltUser.CheckState = 0
$frmadd.Height = 200
$btnAddUserOK.Top = 145
$btnAddUserCNCL.Top = 145
$chkbxAddAltUser.Top = 120
$lblAddAltUser.Visible = "False"
$lblAddAltFullName.Visible = "False"
$lblAddAltNetID.Visible = "False"
$lblAddAltCPUName.Visible = "False"
$txtAddAltFullName.Visible = "False"
$txtAddAltNetID.Visible = "False"
$txtAddAltCPUName.Visible = "False"
EndSelect
EndFunction
Function Edit_alternates()
Select
Case $chkbxEditaltUser.CheckState = 1
$frmEdit.Height = 295
$btnEditUserOK.Top = 240
$btnEditUserCNCL.Top = 240
$chkbxEditAltUser.Top = 215
$lblEditAltUser.Visible = "True"
$lblEditAltFullName.Visible = "True"
$lblEditAltNetID.Visible = "True"
$lblEditAltCPUName.Visible = "True"
$txtEditAltFullName.Visible = "True"
$txtEditAltNetID.Visible = "True"
$txtEditAltCPUName.Visible = "True"
Case $chkbxEditaltUser.CheckState = 0
$frmEdit.Height = 200
$btnEditUserOK.Top = 145
$btnEditUserCNCL.Top = 145
$chkbxEditAltUser.Top = 120
$lblEditAltUser.Visible = "False"
$lblEditAltFullName.Visible = "False"
$lblEditAltNetID.Visible = "False"
$lblEditAltCPUName.Visible = "False"
$txtEditAltFullName.Visible = "False"
$txtEditAltNetID.Visible = "False"
$txtEditAltCPUName.Visible = "False"
EndSelect
EndFunction
Function Add_Click()
$FrmAdd.Show
$FrmAdd.SetFocus
While $FrmAdd.Visible AND $FrmAdd.Tag=0
$=Execute($FrmAdd.DoEvents())
Loop
If $FrmAdd.Tag=1
If $txtAddFullName.Text = "" OR $txtAddNetID.Text = "" OR $txtAddCPUName.Text = ""
$msgbox.Show ("Please Fill out All Fields for Primary User","Add User")
Return
EndIf
If $chkbxAddAltUser.CheckState = 1
If $txtAddAltFullName.Text = "" OR $txtAddAltNetID.Text = "" OR $txtAddAltCPUName.Text = ""
$msgbox.Show ("Please Fill out All Fields for Alternate User","Add User")
Return
EndIf
EndIf
If Exist ($netpath+"nodes\"+$txtAddFullName.Text)
$msgbox.Show ("User Already Exists.","Add User")
Return
EndIf
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Primary","NetID",$txtAddNetID.Text)
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Primary","CPU",$txtAddCPUName.Text)
WriteProfileString ($netpath+"vuia.dat","User",$txtAddNetID.Text,$txtAddCPUName.Text)
If $chkbxAddAltUser.CheckState = 1 OR $chkbxEditaltUser.CheckState = 1
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Alt","Name",$txtAddAltFullName.Text)
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Alt","NetID",$txtAddAltNetID.Text)
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Alt","CPU",$txtAddAltCPUName.Text)
WriteProfileString ($netpath+"nodes\"+$txtAddFullName.Text,"Alt","Checkbox","1")
WriteProfileString ($netpath+"vuia.dat","Alt",$txtAddAltNetID.Text,$txtAddCPUName.Text)
$txtAddAltFullName.Text = ""
$txtAddAltNetID.Text = ""
$txtAddAltCPUName.Text = ""
EndIf
$txtAddFullName.Text = ""
$txtAddNetID.Text = ""
$txtAddCPUName.Text = ""
$chkbxAddAltUser.CheckState = 0
AddAltCheckbox()
$FrmAdd.Tag=0
$FrmAdd.Hide
EndIf
Reload()
EndFunction
Function FindUser()
$Text=$txtfind.Text
If NOT $Text
$msgbox.Show ("Please enter a search string","Find")
$txtFind.SetFocus
Return
EndIf
$btnfind.Visible = "False"
$btnClear.Visible = "True"
For Each $item in $listUsers.Items
$item.Remove
Next
$username=Dir ($nodepath)
While $username <> "" AND @ERROR = 0
If InStr($username,$text)
$item=$listUsers.items.add
$Item.SubItems(0).Text = ($username)
EndIf
$username = Dir("")
Loop
EndFunction
Function EditUser()
$FrmEdit.Tag=0
$FrmEdit.show
If $ListUsers.SelectedItems.Count > 0
For Each $Item In $ListUsers.SelectedItems
$txtEditFullName.Text=$Item.Text
$txtEditNetID.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"primary","NetID")
$txtEditCPUName.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"primary","CPU")
$TxtEditAltNetID.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","NetID")
$txtEditAltFullName.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","Name")
$txtEditAltCPUName.Text = ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","CPU")
$chkbxEditAltUser.checkstate = ReadProfileString ($netpath+"nodes\"+$Item.Text,"alt","checkbox")
Edit_alternates()
Next
EndIf
$PriName = $txtEditFullName.Text
$PriCPU = $txtEditCPUName.Text
$PriNetID = $txtEditNetID.Text
If $chkbxEditaltUser.CheckState = 1
$AltName=$txtEditAltFullName.Text
$AltCPU=$txtEditAltCPUName.Text
$AltNetID=$TxtEditAltNetID.Text
EndIf
While $FrmEdit.Visible AND $FrmEdit.Tag=0
$=Execute($FrmEdit.DoEvents())
Loop
If $FrmEdit.Tag=1
Del $netpath+"nodes\"+$PriName
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"primary","NetID",$txtEditNetID.Text)
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"primary","CPU",$txtEditCPUName.Text )
WriteProfileString ($netpath+"vuia.dat","User",$txtAddNetID.Text,$txtAddCPUName.Text)
Select
Case $chkbxEditAltUser.checkstate = 1
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","Name",$txtEditAltFullName.Text)
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","CPU",$txtEditAltCPUName.Text)
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","NetID",$TxtEditAltNetID.Text)
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","checkbox",$chkbxEditAltUser.checkstate)
WriteProfileString ($netpath+"vuia.dat","User","NetID",$TxtEditAltNetID.Text)
Case $chkbxEditAltUser.checkstate = 0
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","NetID","")
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","Name","")
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","CPU","")
WriteProfileString ($netpath+"nodes\"+$txtEditFullName.Text,"alt","checkbox","")
WriteProfileString ($netpath+"vuia.dat","User",$txtAddNetID.Text,"")
WriteProfileString ($netpath+"vuia.dat","User",$txtAddAltNetID.Text,"")
EndSelect
EndIf
$FrmEdit.Tag=0
$FrmEdit.Hide
EndFunction
Function Del_User()
If $ListUsers.SelectedItems.Count > 0
For Each $Item In $ListUsers.SelectedItems
$msgbox.Style = 276
If $MsgBox.Show ("Are You sure you want to delete "+$Item.Text,"Delete User")=6
Del $nodepath + $Item.Text
WriteProfileString ($netpath+"vuia.dat","User",$txtPriNetID.Text,"")
WriteProfileString ($netpath+"vuia.dat","User",$TxtAltNetID.Text,"")
EndIf
Next
EndIf
reload()
EndFunction
;***************************************
;Start Functions for Jobs List and Edit
;***************************************
Function StartJob()
$btnFindJob.show
$btnCLRJob.Hide
$ListJob.Clear
$ListJob.SetFucus
For Each $item in $ListJob.Items
$item.Remove
Next
$FRMAdmin.Hide
$FRMJobs.Show
$= $ListJob.Columns.Add("Job",200)
$= $ListJob.Columns.Add("Status",75)
$= $ListJob.Columns.Add("Path",224)
$ScriptArray = Split(ReadProfileString($netini,"",""),Chr(10))
For Each $script in $ScriptArray
$jobtype=ReadProfileString($netini,$script,"run")
$jobname=ReadProfileString($netini,$script,"message")
If NOT InStr ($jobname,".kix")
$item=$listJob.items.add
$Item.SubItems(0).Text = ($jobname)
Select
Case $jobtype=0
$Item.SubItems(1).Text = ("Disabled")
Case $jobtype=1
$Item.SubItems(1).Text = ("Forced")
Case $jobtype=2
$Item.SubItems(1).Text = ("Requestable")
EndSelect
$editjob=Trim(Split($script,"\")[3])
$Item.SubItems(2).Text = ($netscripts + $editjob)
EndIf
Next
While $FRMJobs.Visible
$=Execute($FRMJobs.DoEvents())
Loop
$FRMJobs.Hide
$FrmAdmin.show
EndFunction
Function edit_jobs()
If $ListJob.SelectedItems.Count > 0
For Each $Item In $ListJob.SelectedItems
Run "notepad " + $Item.SubItems(2).Text
Next
EndIf
EndFunction
Function FindJob()
$btnFindJob.hide
$btnCLRJob.show
$txtjob=$txtfindjob.Text
If NOT $TxtJob
$msgbox.Show ("Please enter a search string","Find Job")
$txtFind.SetFocus
Return
EndIf
$ListJob.Clear
For Each $item in $ListJob.Items
$item.Remove
Next
$FRMAdmin.Hide
$FRMJobs.Show
$= $ListJob.Columns.Add("Job",200)
$= $ListJob.Columns.Add("Status",75)
$= $ListJob.Columns.Add("Path",224)
$ScriptArray = Split(ReadProfileString($netini,"",""),Chr(10))
For Each $script in $ScriptArray
$jobtype=ReadProfileString($netini,$script,"run")
$jobname=(ReadProfileString($netini,$script,"message"))
If NOT InStr ($jobname,".kix")
If InStr ($jobname,$txtjob)
$item=$listJob.items.add
$Item.SubItems(0).Text = ($jobname)
Select
Case $jobtype=0
$Item.SubItems(1).Text = ("Disabled")
Case $jobtype=1
$Item.SubItems(1).Text = ("Forced")
Case $jobtype=2
$Item.SubItems(1).Text = ("Requestable")
EndSelect
$editjob=Trim(Split($script,"\")[3])
$Item.SubItems(2).Text = ($netscripts + $editjob)
EndIf
EndIf
Next
EndFunction
Function CBoxAJSelect()
Select
Case $cboAddJobType.Text = "Disabled"
$jobtype = 0
Case $cboAddJobType.Text = "Forced"
$Jobtype=1
Case $cboAddJobType.Text = "Requestable"
$JobType = 2
EndSelect
EndFunction
Function AddJobOK()
$cboAddJobType.Clear
$cboAddJobType.AddItem ("Forced")
$cboAddJobType.AddItem ("Requestable")
$cboAddJobType.AddItem ("Disabled")
$frmAddJob.Show
While $frmAddJob.Visible AND $frmAddJob.tag = 0
$=Execute($frmAddJob.DoEvents())
Loop
If $frmAddJob.tag = 1
If $txtaddjob.Text = "" OR $cboAddJobType.Text = ""
$msgbox.Show ("New Job Must have a Unique Name and Job Type Selected.","Add New Job")
$frmAddJob.tag = 0
AddJobOK()
Return
EndIf
If InStr($txtaddjob.Text," ")
$a=0
Open (4,$netpath+"test.dat",5)
While NOT @ERROR
$filename = Trim(Split($txtaddjob.Text," ")[$a])
If $filename > ""
WriteLine (4,$filename)
EndIf
$a=$a+1
Loop
Close (4)
Open (4,$netpath+"test.dat",2)
$file = ReadLine (4)
Close (4)
Del $netpath+"test.dat"
If Exist ($netscripts+$file+".kix")
$msgbox.Show ("Job Name must be unique.","Add New Job")
$frmAddJob.tag = 0
AddJobOK()
Return
Else
WriteProfileString ($netini,$localscripts+$file+".kix","Run",$Jobtype)
WriteProfileString ($netini,$localscripts+$file+".kix","Message",$txtaddjob.Text)
WriteProfileString ($netini,$localscripts+$file+".kix","Log","End_"+$File+".log")
Open (5,$netscripts+$file+".kix",5)
WriteLine (5,";**********************************************"+@CRLF)
WriteLine (5,";**********************************************"+@CRLF)
WriteLine (5,";******************* Format *******************"+@CRLF)
WriteLine (5,";**********************************************"+@CRLF)
WriteLine (5,";**********************************************"+@CRLF)
WriteLine (5,';Status="Previous Command to be logged'+@CRLF)
WriteLine (5,';Example:'+@CRLF)
WriteLine (5,';MD "c:\test"'+@CRLF)
WriteLine (5,';Status = "MD c:\test"'+@CRLF)
WriteLine (5,';Errchk()"'+@CRLF)
WriteLine (5,";**********************************************"+@CRLF)
WriteLine (5,"StartLogs()"+@CRLF+@CRLF+@CRLF+@CRLF)
WriteLine (5,"EndLogs()"+@CRLF)
WriteLine (5,"Exit 0"+@CRLF)
Close (5)
Run "notepad " +$netscripts+$File+".kix"
EndIf
EndIf
EndIf
$frmAddJob.tag = 0
$frmAddJob.Hide
EndFunction
errmsg.kix
Code:
; Error Message Box Display Section
SetConsole ("hide")
$DiskSpace = GetDiskSpace("C:\") /1024
$pass_age=@MAXPWAGE-@pwage
$DaysLeft=365-@ydayno
$rc=""
$MyCPU=""
$MySpeed=Val(@MHZ)
If $MySpeed < 1001
$MySpeed=("$MySpeed Mhz")
Else
$MySpeed=("$MySpeed Ghz")
EndIf
If @INWIN=1 ; Windows NT systems
$cpu=Trim(@CPU)
$MyCPU="CPU : "+$cpu +" "+$MySpeed
$IsAdmin=""
Select
Case InGroup("\\@WKSTA\Administrators") = 1
$IsAdmin="Yes"
EndSelect
$rc="Administrator : "+$IsAdmin
EndIf
MessageBox("
ERROR: $errmsg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Support: 123-456-7890
Support Toll Free:800-123-1234
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My User Logon ID : @UserID
Full Name : @FULLNAME
Password Expiration: $pass_age days
Operating System : @PRODUCTTYPE Build @BUILD
Service Pack Level : @CSD
$MyCPU
$rc
Current Workstation Time : @TIME
Available Drive Space On C: : $DiskSpace MB
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My Computer Name : @WKSTA
Computer DNS Name : @HOSTNAME
IP Address : @IPADDRESS0
MAC Address : @address
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ydayno days have passed this year.
$DaysLeft days remaining.
" ,"$errmsg",16,0)
Exit 0
VUIA.DAT (Verify User Is Authorized)
username=hostname (Standard User)
username=admin (Administrative User)
Settings.ini
Run=0 (Disabled)
Run=1 (Forced)
Run=2 (Requestable)
[c:\mtglaptop\scripts\thisisatest.kix] Absolute path to script
Run = 1
message= This is a test
log=End_thisisatest.log