joshiieeii Posted May 1, 2006 Share Posted May 1, 2006 Hi guys, first post I think, anyway, I am trying to create a two applications:These apps will be used for automating the deployment of PC's. I am going to create 3 different images, boot the target PC's with WinPE (which will hopefully run App2) and automate the process.App1: Prompts user a series of questions and places those profiles in some form of text file (ini, csv....)ex. Username, Type of PC, make of PC, PC Model, Applications selectedApp2: Checks for network, maps a drive, reads above said file and prompts the operator to chose ONE of the profiles. After choosing the profile, and confirming the selection would 1)prompt WinPE to ghost an image to the HD then 2)after ghosting, edit a couple files and restart the machine.I need some help with app2 (actually the entire thing, but I will settle for app2 for now). I am trying to figure out the best way to store the data in some type of text file (either ini or csv or something) and display (potential for max 50 profiles) this in a selection type way (which will only allow one choice and confirm that).Thank you for any advice/help you can provide!! I am still learning, so forgive my newb code expandcollapse popup#include <GUIConstants.au3> #include <file.au3> GUICreate ( "App2", 1024, 768) GUISetState (@SW_SHOW) ; will display an empty dialog box GUICtrlCreateLabel ( "Network Status:", 10, 10, 150) GUICtrlCreateLabel ( "Drive Mapped:", 300, 10, 150) GUICtrlCreateLabel ( "Autoconfig File Accessable:", 600, 10, 150) Dim $autconfigrecords Call ("BeginProcess") func BeginProcess () Call ("netping") Call ("MntDrvX") call ("VerifyNVfile") Call ("ReadAutoconfig") EndFunc $autoconfig = fileopen ( "X:\autoconfig\autoconfig.ini", 0) ;Check network status Func netping () $netvar = ping("10.10.10.100", 200);Pings local site to verify network connectivity If $netvar Then; also possible: If @error = 0 Then ... GUICtrlCreateLabel ( "Network Status: CONFIRMED", 10, 10, 250) GUICtrlSetBkColor(-1,0x00ff00) GUIGetMsg() ;call ("MntDrvX");Mounts network drive that has the ghost images and other automation scripts Else GUICtrlCreateLabel ( "Network Status: NOT AVAILABLE", 10, 10, 250) GUICtrlSetBkColor(-1,0xff0000) GUIGetMsg() call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc ;Mount drive Func MntDrvX () DriveMapAdd("X:", "\\10.10.10.100\NVPESHARE");network share that has the ghost images and other automation scripts $drvstat = DriveStatus( "x:\" ) If $drvstat = ("INVALID")Then MsgBox(4096,"Status",$drvstat) GUICtrlCreateLabel ( "Drive Mapped: NOT Able to MAP", 300, 10, 250);verifies that drive is mapped GUICtrlSetBkColor(-1,0xff0000) GUIGetMsg() Else GUICtrlCreateLabel ( "Drive Mapped: Confirmed", 300, 10, 250) GUICtrlSetBkColor(-1,0x00ff00) GUIGetMsg() ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist ;gives an error message that drive is not mapped EndIf EndFunc ;Verify that file exists Func VerifyNVfile ();Verfies existence of the autoconfig file If FileExists ( "X:\autoconfig\autoconfig.ini")then GUICtrlCreateLabel ( "Autoconfig File Accessable: CONFIRMED", 600, 10, 250) GUICtrlSetBkColor(-1,0x00ff00) GUIGetMsg() Else GUICtrlCreateLabel ( "Autoconfig File Accessable: NOT AVAILABLE", 600, 10, 250) GUICtrlSetBkColor(-1,0xff0000) GUIGetMsg() ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc func terminate () GUICreate ( "Network not available: RETRY??",400, 100, -1, -1) $termok = GUICtrlCreateButton ("OK", 50, 30, 100) $termcan = GUICtrlCreateButton ( "Cancel", 200, 30, 100) GUISetState () If $termok = 1 Then Call ("BeginProcess") EndIf if $termcan = 1 Then MsgBox ( 4096, "cancelled", "Terminated" ) EndIf EndFunc Func ReadAutoconfig () If Not _FileReadToArray("X:\autoconfig\autoconfig.ini",$autconfigrecords) Then MsgBox(4096,"Error", " Error reading log to Array error:" & @error) Else For $x = 2 to $autconfigrecords[0] GUICtrlCreateGroup ("User Deployment", 190, 60, 500, 140) $radio_1 = GUICtrlCreateRadio ( ""& $autconfigrecords[$x], 210, 90, 300, 20) ;GUICtrlSetState ($radio_1,$GUI_CHECKED) ;$radio_2 = GUICtrlCreateRadio ( ""& $autconfigrecords[$x], 210, 110, 300, 50) ;$radio_3 = ;$radio_4 = ;$radio_5 = ;$radio_6 = ;$radio_7 = ;$radio_8 = ;$radio_9 = ;$radio_10 = GUISetState () ; will display an dialog box with 1 checkbox GUICtrlCreateGroup ("",-99,-99,1,1) ;close group GUISetState () Next EndIf EndFunc sleep (3000) Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
Don N Posted May 1, 2006 Share Posted May 1, 2006 In the help files look at iniread and iniwrite, those should be able to do everything for you _____________________________________________________"some people live for the rules, I live for exceptions"Wallpaper Changer - Easily Change Your Windows Wallpaper Link to comment Share on other sites More sharing options...
joshiieeii Posted May 1, 2006 Author Share Posted May 1, 2006 (edited) In the help files look at iniread and iniwrite, those should be able to do everything for youI already knew how to do that, but how would I get the entries to show up in my gui for selection?In Addition, how would someone be able to select a particular user from the list of entries?? Edited May 1, 2006 by joshiieeii Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted May 1, 2006 Moderators Share Posted May 1, 2006 I already knew how to do that, but how would I get the entries to show up in my gui for selection? In Addition, how would someone be able to select a particular user from the list of entries??Use a combobox?$Blah = IniReadSection('FileLocation', 'Section For Combo') $TempHold = '' For $i = 1 To $Blah[0][0] $TempHold &= $Blah[$i][0] & '|' Next $TempHold = StringTrimRight($TempHold, 1) GUICtrlSetData($Combo, $TempHold) Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
joshiieeii Posted May 1, 2006 Author Share Posted May 1, 2006 Use a combobox?$Blah = IniReadSection('FileLocation', 'Section For Combo') $TempHold = '' For $i = 1 To $Blah[0][0] $TempHold &= $Blah[$i][0] & '|' Next $TempHold = StringTrimRight($TempHold, 1) GUICtrlSetData($Combo, $TempHold)It's going to take me awhile to get this worked in, but I will give it a whirl tonight....Would you do a Do..While loop or something if there were like 10 seperate entries?? Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted May 1, 2006 Moderators Share Posted May 1, 2006 It's going to take me awhile to get this worked in, but I will give it a whirl tonight....Would you do a Do..While loop or something if there were like 10 seperate entries??Afraid I don't understand your question.It's already in a For/Next loop if that's what you mean. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
joshiieeii Posted May 1, 2006 Author Share Posted May 1, 2006 Afraid I don't understand your question.It's already in a For/Next loop if that's what you mean.Hmm...I guess I will have to try it out before I ask anymore questions.... Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
Valuater Posted May 1, 2006 Share Posted May 1, 2006 cleaned your code just a little expandcollapse popup#include <GUIConstants.au3> #include <file.au3> GUICreate("App2", 1024, 768) GUISetState(@SW_SHOW) ; will display an empty dialog box GUICtrlCreateLabel("Network Status:", 10, 10, 150) GUICtrlCreateLabel("Drive Mapped:", 300, 10, 150) GUICtrlCreateLabel("Autoconfig File Accessable:", 600, 10, 150) Dim $autconfigrecords, $radio_[11] Call("BeginProcess") Func BeginProcess() Call("netping") Call("MntDrvX") Call("VerifyNVfile") Call("ReadAutoconfig") EndFunc ;==>BeginProcess $autoconfig = FileOpen("X:\autoconfig\autoconfig.ini", 0) While 1 $msg = GUIGetMsg() WEnd ;Check network status Func netping() $netvar = Ping("10.10.10.100", 200);Pings local site to verify network connectivity If $netvar Then; also possible: If @error = 0 Then ... GUICtrlCreateLabel("Network Status: CONFIRMED", 10, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) ;call ("MntDrvX");Mounts network drive that has the ghost images and other automation scripts Else GUICtrlCreateLabel("Network Status: NOT AVAILABLE", 10, 10, 250) GUICtrlSetBkColor(-1, 0xff0000) Call("terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc ;==>netping ;Mount drive Func MntDrvX() DriveMapAdd("X:", "\\10.10.10.100\NVPESHARE");network share that has the ghost images and other automation scripts $drvstat = DriveStatus( "x:\") If $drvstat = ("INVALID") Then MsgBox(4096, "Status", $drvstat) GUICtrlCreateLabel("Drive Mapped: NOT Able to MAP", 300, 10, 250);verifies that drive is mapped GUICtrlSetBkColor(-1, 0xff0000) Else GUICtrlCreateLabel("Drive Mapped: Confirmed", 300, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist ;gives an error message that drive is not mapped EndIf EndFunc ;==>MntDrvX ;Verify that file exists Func VerifyNVfile();Verfies existence of the autoconfig file If FileExists("X:\autoconfig\autoconfig.ini") Then GUICtrlCreateLabel("Autoconfig File Accessable: CONFIRMED", 600, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) Else GUICtrlCreateLabel("Autoconfig File Accessable: NOT AVAILABLE", 600, 10, 250) GUICtrlSetBkColor(-1, 0xff0000) ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc ;==>VerifyNVfile Func terminate() #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK and Cancel, Icon=Question, Miscellaneous=Top-most attribute If Not IsDeclared("iMsgBoxAnswer") Then Dim $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(262177,"Network Error","Network not available: RETRY?? ") Select Case $iMsgBoxAnswer = 1;OK Call("BeginProcess") Case $iMsgBoxAnswer = 2;Cancel MsgBox(4096, "cancelled", "Terminated", 1) EndSelect #EndRegion --- CodeWizard generated code End --- #cs GUICreate("Network not available: RETRY??", 400, 100, -1, -1) $termok = GUICtrlCreateButton("OK", 50, 30, 100) $termcan = GUICtrlCreateButton("Cancel", 200, 30, 100) GUISetState() While 2 $msg2 = GUIGetMsg() If $msg2 = $termok Then Call("BeginProcess") Return EndIf If $msg2 = $termcan Then MsgBox(4096, "cancelled", "Terminated", 2) ExitLoop EndIf WEnd #ce EndFunc ;==>terminate Func ReadAutoconfig() If Not _FileReadToArray("X:\autoconfig\autoconfig.ini", $autconfigrecords) Then MsgBox(4096, "Error", " Error reading log to Array error:" & @error) GUISetState() Return Else $top = 90 GUICtrlCreateGroup("User Deployment", 190, 60, 500, 140) For $x = 2 To $autconfigrecords[0] $radio_[$x] = GUICtrlCreateRadio("" & $autconfigrecords[$x], 210, $top, 300, 20) If $x = 2 Then GUICtrlSetState($radio_[2], $GUI_CHECKED) $top = $top + 30 Next GUICtrlCreateGroup("", -99, -99, 1, 1);close group GUISetState() ; will display an dialog box with 1 checkbox EndIf EndFunc ;==>ReadAutoconfig 8) Link to comment Share on other sites More sharing options...
joshiieeii Posted May 2, 2006 Author Share Posted May 2, 2006 Thank you soooooooo much Valuater!! I really appreciate that, I am still working out what you changed and trying to understand your additions and changes. It looks and works much better now. Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
joshiieeii Posted May 2, 2006 Author Share Posted May 2, 2006 (edited) Ok, so I have been playing with the code some more, and have customized it some more. Now I am running into a situation where I am not having any luck with the help file finding out how to get the selected user into a variable. Also, if I am seperating the data for the users by using a series of ";;", how would I pull individual data pieces? ex. username;;PCType;;PCMake;;PCModel;;Apps Would I be better off using the iniwrite style? ex. [section] key=value Trying to use the simpliest method. Once the user is selected from the ini file, I want to display the info in a Gui to the right of the selection and have a "Deploy" button to start the process. Based on the User selected, the "Deploy" button would initiate a series of functions based on the info in the user's profile. So if the make was a Dell>D800 then it would edit a file to include those apps, if the profile has MS Visio, MS Frontpage, then do this, ect... I know what I want to do, I just can't find the method to employ these ideas just based off of the Help file. Thanks for any help!! expandcollapse popup#include <GUIConstants.au3> #include <file.au3> GUICreate("App2", 1024, 768) GUISetState(@SW_SHOW); will display an empty dialog box GUICtrlCreateLabel("Network Status:", 10, 10, 150) GUICtrlCreateLabel("Drive Mapped:", 300, 10, 150) GUICtrlCreateLabel("Autoconfig File Accessable:", 600, 10, 150) Dim $autconfigrecords, $radio_[28] Dim $selectedUser Call("BeginProcess") Func BeginProcess() Call("netping") Call("MntDrvX") Call("VerifyNVfile") Call("ReadAutoconfig") ;Call("DisplayUser") EndFunc;==>BeginProcess $autoconfig = FileOpen("X:\autoconfig\autoconfig.ini", 0) While 1 $msg = GUIGetMsg() WEnd ;Check network status Func netping() $netvar = Ping("10.10.10.100", 200);Pings local site to verify network connectivity If $netvar Then; also possible: If @error = 0 Then ... GUICtrlCreateLabel("Network Status: CONFIRMED", 10, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) ;call ("MntDrvX");Mounts network drive that has the ghost images and other automation scripts Else GUICtrlCreateLabel("Network Status: NOT AVAILABLE", 10, 10, 250) GUICtrlSetBkColor(-1, 0xff0000) Call("terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc;==>netping ;Mount drive Func MntDrvX() DriveMapAdd("Z:", "\\10.10.10.100\NVPESHARE");network share that has the ghost images and other automation scripts $drvstat = DriveStatus( "Z:\") If $drvstat = ("INVALID") Then MsgBox(4096, "Status", $drvstat) GUICtrlCreateLabel("Drive Mapped: NOT Able to MAP", 300, 10, 250);verifies that drive is mapped GUICtrlSetBkColor(-1, 0xff0000) Else GUICtrlCreateLabel("Drive Mapped: Confirmed", 300, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist ;gives an error message that drive is not mapped EndIf EndFunc;==>MntDrvX ;Verify that file exists Func VerifyNVfile();Verfies existence of the autoconfig file If FileExists("Z:\autoconfig\autoconfig.ini") Then GUICtrlCreateLabel("Autoconfig File Accessable: CONFIRMED", 600, 10, 250) GUICtrlSetBkColor(-1, 0x00ff00) Else GUICtrlCreateLabel("Autoconfig File Accessable: NOT AVAILABLE", 600, 10, 250) GUICtrlSetBkColor(-1, 0xff0000) ;call ("Terminate");Calls a function to prompt the user to terminate the session as the network connection does not exist EndIf EndFunc;==>VerifyNVfile Func terminate() #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK and Cancel, Icon=Question, Miscellaneous=Top-most attribute If Not IsDeclared("iMsgBoxAnswer") Then Dim $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(262177,"Network Error","Network not available: RETRY?? ") Select Case $iMsgBoxAnswer = 1;OK Call("BeginProcess") Case $iMsgBoxAnswer = 2;Cancel MsgBox(4096, "cancelled", "Terminated", 1) EndSelect #EndRegion --- CodeWizard generated code End --- #cs GUICreate("Network not available: RETRY??", 400, 100, -1, -1) $termok = GUICtrlCreateButton("OK", 50, 30, 100) $termcan = GUICtrlCreateButton("Cancel", 200, 30, 100) GUISetState() While 2 $msg2 = GUIGetMsg() If $msg2 = $termok Then Call("BeginProcess") Return EndIf If $msg2 = $termcan Then MsgBox(4096, "cancelled", "Terminated", 2) ExitLoop EndIf WEnd #ce EndFunc;==>terminate Func ReadAutoconfig() If Not _FileReadToArray("Z:\autoconfig\autoconfig.ini", $autconfigrecords) Then MsgBox(4096, "Error", " Error reading log to Array error:" & @error) GUISetState() Return Else $top = 90 GUICtrlCreateGroup("User Deployment", 30, 60, 350, 640) For $x = 2 To $autconfigrecords[0] $radio_[$x] = GUICtrlCreateRadio("" & $autconfigrecords[$x], 60, $top, 300, 20) If $x = 2 Then GUICtrlSetState($radio_[2], $GUI_CHECKED) $top = $top + 30 Next GUICtrlCreateGroup("", -99, -99, 1, 1);close group GUISetState(); will display an dialog box with 1 checkbox EndIf $selectuser = GUICtrlCreateButton ( "Select User", 30 , 710, 350, 30) GUISetState () While 1 $msg = GUIGetMsg() Select Case $msg = $selectuser MsgBox(0, "Default button clicked", "User:" & $autconfigrecords [3] ) Case $msg = $GUI_EVENT_MINIMIZE MsgBox(0,"", "Dialog minimized",2) Case $msg = $GUI_EVENT_MAXIMIZE MsgBox(0,"", "Dialog restored",2) EndSelect WEnd EndFunc;==>ReadAutoconfig Edited May 2, 2006 by joshiieeii Projects:Vista Gui ImageX Deployment Tool - CompletedActive Directory Helper - CompletedGlobalized Outlook and OWA Signature Project - Completed Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now