Overview
By setting the project display resolution to 0 x 0 within the Expert View the maximum resolution that is supported by the graphics card and monitor will be set during the build process.
If the build process is unable to query the graphics card or monitor a default resolution of 1024x768 is set.
Whilst this works in most scenarios some cards occasionally report a higher resolution than the attached display actually supports which may result in a blank or black screen.
Solution
Use the drivers image to deliver a script that modifies the project settings to set a static resolution for this machine type.
Procedure
- Edit script- Create the script below editing it as appropriate to set the required screen resolution
 
 
 - ' ENGL Imaging Toolkit 
' Script to set the display settings to specific values for a particular machine type 
' Script added as a custom driver in the specific model's driver pack 
' Attach to ENGL Ztoolkit ActiveX Control 
Set Utils     = CreateObject("ENGL.Ztoolkit.Utils") 
' Specify the required values here: 
xMax = 1280 
yMax = 768 
bpp = 32 
Utils.AppendLog "Setting Display Resolution to:" 
Utils.AppendLog "xMax    : " & xMax 
Utils.AppendLog "yMax    : " & yMax 
Utils.AppendLog "bpp     : " & bpp 
' Update zmainrun.xml file to set screen resolution to defined values (Screen resolution will be set after a reboot) 
Utils.AppendLog "   Updating zmainrun.xml" 
EnglXmlSetElementValue "c:\ztoolkit\zmainrun.xml", "//ENGL/ImagingToolkit/BuildProcess/Branding/Display/Width", xMax 
EnglXmlSetElementValue "c:\ztoolkit\zmainrun.xml", "//ENGL/ImagingToolkit/BuildProcess/Branding/Display/Height", yMax
EnglXmlSetElementValue "c:\ztoolkit\zmainrun.xml", "//ENGL/ImagingToolkit/BuildProcess/Branding/Display/BitsPerPixel", bpp
Utils.AppendLog "Update complete" 
' Function to update zmainrun.xml file 
Function EnglXmlSetElementValue( path, xpath, value) 
      EnglXmlSetElementValue = 1     ' Return error 
      Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
      xmlDoc.async = False 
      xmlDoc.resolveExternals = False 
      xmlDoc.load( path ) 
      If (xmlDoc.parseError.errorCode <> 0) Then 
           Dim myErr 
           Set myErr = xmlDoc.parseError 
           MsgBox("You have error " & myErr.reason & "(line: " & myErr.line & ", pos: " & myErr.linepos & ")") 
      Else 
           ' Get node 
           Set objNode = xmlDoc.selectSingleNode(xpath) 
           ' objNode.Value = value 
           objNode.Text = value 
           ' Save XML 
           xmlDoc.save path 
      End If 
      EnglXmlSetElementValue = 0     ' Success 
End Function Save the script as- screenres.vbsthen add it to a zip file named- screenres.zip
- Add script to drivers image- Open Build Console
- Select the Driver Pack you wish to update
- Right click on the Driver Pack then select Manually add driver file
- Populate the following information:
 
 | Setting | Value | 
|---|
 | Driver class | System |  | Driver description | ScreenRes |  | Driver version | 1.0 |  
 
 Then click Next
- When prompted browse for and import the screenres.zipfile then click Next
- Click Finish to complete the process
 
-  The driver should now be listed in the Driver Pack.
- Set custom properties- Right click on the newly imported driver then select Analyse
- Right click on the newly imported driver then select Properties
-  Then click Ok to save the change.
 
- Set the Command Line to %windir%\system32\wscript.exe "%SystemDrive%\ztoolkit\drivers\system\ScreenRes\screenres.vbs"
- Deploy drivers image- Right-click the Driver Pack then select Create driver image
 
 Once the drivers image has been created successfully copy it to the appropriate folder on the imaging server.
 
- Test updated drivers image- PXE boot the problem machine to the Zim menu
- Select Restore Menu
- Select and restore the appropriate project
- Monitor the machine as it builds. The resolution should be set correctly at the end of phase1.
 
 
 
If you have any problems or questions about the script or steps in this TID  please contact the ENGL support team