+ Post New Thread
Results 1 to 11 of 11
Windows 7 Thread, Student with a visual impairment in Technical; Hello, this may be in the wrong place, but it does concern Windows 7. We have been asked to enlarge ...
  1. #1
    JonThompson's Avatar
    Join Date
    Nov 2011
    Location
    Leicester
    Posts
    174
    Thank Post
    18
    Thanked 26 Times in 19 Posts
    Rep Power
    10

    Student with a visual impairment

    Hello, this may be in the wrong place, but it does concern Windows 7.

    We have been asked to enlarge the screen/icons for a student, with a visual impairment automatically at logon.

    My first thought was to decrease the screen resolution to say 800x600 using some form of GPO.

    I have dug around the Internet (including EduGeek), and from what I can gather there does not appear to be a GPO to do this. I have come across a program called ResSwitch and have been experimenting with this using logon scripts but it won’t work at logon, only after logon (run manually via shortcut).

    My question is, has anyone else had a similar request? and if so, how did you go about implementing it?

    Thanks.

  2. #2
    chazzy2501's Avatar
    Join Date
    Jan 2008
    Location
    South West
    Posts
    1,774
    Thank Post
    213
    Thanked 263 Times in 213 Posts
    Rep Power
    67
    I created a new default profile for my student in which I'd upped the font and icon size. So what ever machine they use the fonts get bigger. This however doesn't work until after they have logged in.

    You can let them use the high contrast mode for login "Left ALT+left SHIFT+PRINT SCREEN"

  3. Thanks to chazzy2501 from:

    JonThompson (28th February 2012)

  4. #3

    Oaktech's Avatar
    Join Date
    Jul 2011
    Location
    Bournemouth
    Posts
    2,714
    Thank Post
    752
    Thanked 527 Times in 410 Posts
    Rep Power
    257
    we have a similar issue and our solution has been to enable accessibility settings for this user, to allow them to run magnifier, but to avoid the display getting cluttered the machine he uses a second monitor on the DVI output purely for magnifier. I appreciate this may not work for all scenarios/hardware.

  5. #4
    mrbios's Avatar
    Join Date
    Jun 2007
    Location
    Stroud, Gloucestershire
    Posts
    2,420
    Thank Post
    343
    Thanked 250 Times in 206 Posts
    Rep Power
    97
    I've not had to deal with this before so not sure what sort of accessibility features you'd want BUT.....

    If you want to change res for one student only, download a program called Qres.exe stick it somewhere it can run from with that students permissions, put that student in a sub folder of your current student fodler in AD and attach a GPO to it specifically to run a batch file on logon. In the batch file put something along the lines of Qres.exe /w:800 /h:600 or something (syntax will be easy enough to find out from the qres help

    There's probably a lot of other, maybe better programs but qres i know works with windows 7 anyway.

  6. #5
    JonThompson's Avatar
    Join Date
    Nov 2011
    Location
    Leicester
    Posts
    174
    Thank Post
    18
    Thanked 26 Times in 19 Posts
    Rep Power
    10
    Quote Originally Posted by mrbios View Post
    I've not had to deal with this before so not sure what sort of accessibility features you'd want BUT.....

    If you want to change res for one student only, download a program called Qres.exe stick it somewhere it can run from with that students permissions, put that student in a sub folder of your current student fodler in AD and attach a GPO to it specifically to run a batch file on logon. In the batch file put something along the lines of Qres.exe /w:800 /h:600 or something (syntax will be easy enough to find out from the qres help

    There's probably a lot of other, maybe better programs but qres i know works with windows 7 anyway.
    I've downloaded an old version of QRes, and it works to convert the resolution, but when I try and change it back it blue screens my pc. @chazzy2501, I'll try that. Did you just log on as a user, modify the local profile and then just upload it to a server share?

  7. #6
    RichCowell's Avatar
    Join Date
    Dec 2005
    Location
    PR7, Lancashire
    Posts
    437
    Thank Post
    62
    Thanked 70 Times in 61 Posts
    Rep Power
    29
    I've used ResSwitch in the past when some required a strange resolution, then just added a bat file to the startup on those machines with the following:

    C:\ResSwitch.exe 1366 768 32 0

    (I'd already copied the exe to the PCs but it can probably run from a server...)
    Last edited by RichCowell; 24th February 2012 at 02:37 PM.

  8. #7

    Join Date
    Mar 2011
    Location
    Bournemouth
    Posts
    280
    Thank Post
    16
    Thanked 74 Times in 64 Posts
    Rep Power
    21
    I use a program call nircmd in conjunction with a vbs script on logon to set resolutions based on which OU a computer is in, the groups a user is in etc. So for my VI students I add them to a special group in AD and it sets the resolution when they log in.

    Code:
    Const studentComputersDN = "OU=Student Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local"
    Const teacherComputersDN = "OU=Teacher Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local"
    Const textilesDN = "OU=Textiles,OU=Classrooms,OU=Student Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local"
    
    Set objADSystemInfo = CreateObject("ADSystemInfo") 
    
    strUser = "LDAP://" & objADSystemInfo.UserName
    strComputerDN = GetComputerDN
    intCurrentBPP = GetCurrentBPP
    
    'Set resolution by OU
    If Right(strComputerDN, Len(studentComputersDN)) = studentComputersDN Then
    	SetDisplaySettings 1024, 768, 32, 60
    ElseIf Right(strComputerDN, Len(teacherComputersDN)) = teacherComputersDN Then
    	SetDisplaySettings 1024, 768, 32, 60
    Else
    	'MsgBox "Not setting resolution because the computer " & strComputerDN & " is not in a recognised OU."
    End If
    
    'Set resolution by group
    If IsMemberOfADGroup(strUser, "CN=640x480 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then
    	SetDisplaySettings 640, 480, intCurrentBPP, 60
    ElseIf IsMemberOfADGroup(strUser, "CN=800x600 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then
    	SetDisplaySettings 800, 600, intCurrentBPP, 60
    ElseIf IsMemberOfADGroup(strUser, "CN=1024x768 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then
    	SetDisplaySettings 1024, 768, intCurrentBPP, 60
    ElseIf IsMemberOfADGroup(strUser, "CN=1280x1024 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then
    	SetDisplaySettings 1280, 1024, intCurrentBPP, 60
    Else
    	'SetDisplaySettings 1024, 768, intCurrentBPP, 60
    	'MsgBox "Not setting resolution because the user " & strUser & " is not in a resolution group."
    End If
    
    '**********************************************************************'
    ' SetDisplaySettings                                                   '
    '**********************************************************************'
    ' If necissary, sets the display settings to those specified.          '
    '**********************************************************************'
    
    Function SetDisplaySettings(intWidth, intHeight, intBPP, intHz)
    	If Not IsCurrentDisplaySettings(intWidth, intHeight, intBPP, intHz) Then
    		strCmd = "\\someplace.local\NETLOGON\Programs\nircmd\nircmdc.exe setdisplay " & intWidth & " " & intHeight & " " & intBPP & " " & intHz
    		Set objShell = WScript.CreateObject("WScript.Shell")
    		objShell.Run strCmd
    	End If
    End Function
    
    '**********************************************************************'
    ' IsCurrentDisplaySettings                                             '
    '**********************************************************************'
    ' Compares the specified display settings with the current config.     '
    '**********************************************************************'
    
    Function IsCurrentDisplaySettings(intWidth, intHeight, intBPP, intHz)
    	Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
    	Set colItems = objWMIService.ExecQuery("Select * From Win32_VideoController")
    	intCurrentWidth = 0
    	intCurrentHeight = 0
    	intCurrentBPP = 16
    	intCurrentHz = 0
    
    	For Each objItem in colItems
    		intCurrentWidth = objItem.CurrentHorizontalResolution
    		intCurrentHeight = objItem.CurrentVerticalResolution
    		intCurrentBPP = objItem.CurrentBitsPerPixel
    		intCurrentHz = objItem.CurrentRefreshRate
    	Next 
    
    	If Not IsNumeric(intCurrentBPP) Then
    		intCurrentBPP = 16
    	End If
    	
    	If intCurrentWidth = intWidth And intCurrentHeight = intHeight And intCurrentBPP = intBPP Then
    		IsCurrentDisplaySettings = True
    	Else
    		IsCurrentDisplaySettings = False
    	End If
    End Function
    
    '**********************************************************************'
    ' GetCurrentBPP                                                        '
    '**********************************************************************'
    ' Gets the display's current display bits per pixel.                   '
    '**********************************************************************'
    
    Function GetCurrentBPP()
    	Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
    	Set colItems = objWMIService.ExecQuery("Select * From Win32_VideoController")
    	intBPP = 16
    
    	For Each objItem in colItems
    		intBPP = objItem.CurrentBitsPerPixel
    	Next 
    
    	If Not IsNumeric(intBPP) Then
    		intBPP = 16
    	End If
    	
    	GetCurrentBPP = intBPP
    End Function
    
    '**********************************************************************'
    ' GetComputerDN                                                        '
    '**********************************************************************'
    ' Gets the DN of the current computer.                                 '
    '**********************************************************************'
    
    Function GetComputerDN()
    	Const ADS_NAME_INITTYPE_GC = 3
    	Const ADS_NAME_TYPE_NT4 = 3
    	Const ADS_NAME_TYPE_1779 = 1
    
    	Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
    	Set wshNetwork = CreateObject("WScript.Network")
    	Set objTrans = CreateObject("NameTranslate")
    	Set objADSystemInfo = CreateObject("ADSystemInfo") 
    	
    	Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
    
    	For Each objItem in colItems
    		strDomainDnsName = objItem.Domain
    	Next
    	
    	Set colItems = objWMIService.ExecQuery("Select * From Win32_NTDomain Where DnsForestName = '" & strDomainDnsName & "'")
    	
    	For Each objItem in colItems
    		strDomainNetbiosName = objItem.DomainName
    	Next
    	
    	objTrans.Init ADS_NAME_INITTYPE_GC, ""
    	objTrans.Set ADS_NAME_TYPE_NT4, strDomainNetbiosName & "\" & wshNetwork.ComputerName & "$"
    	
    	GetComputerDN = objTrans.Get(ADS_NAME_TYPE_1779)
    End Function
    
    '**********************************************************************'
    ' IsMemberOfADGroup                                                    '
    '**********************************************************************'
    ' Gets the members of the specified group (strGroupDN) and checks for  '
    ' the existance of the specified user (strUserDN).                     '
    '**********************************************************************'
    
    Private Function IsMemberOfADGroup(strUserDN, strGroupDN)
    
    	Set objUser = GetObject(strUserDN)
    
    	arrMembers = GetMembers(strGroupDN)
    
    	bolFound = False
    
    	For Each strMember in arrMembers
    		If strMember = objUser.ADsPath Then
    			bolFound = True
    			Exit For
    		End If
    	Next
    
    	IsMemberOfADGroup = bolFound
    
    End Function
    
    '**********************************************************************'
    ' GetMembers                                                           ' 
    '**********************************************************************'
    ' Calls GetMembersRecurse on the specified group.                      '
    '**********************************************************************'
    
    Private Function GetMembers(strGroupDN)
    
    	Set dicProcessedGroups = CreateObject("Scripting.Dictionary")
    	Set dicMembers = CreateObject("Scripting.Dictionary")
    
    	dicProcessedGroups.Add "LDAP://" & strGroupDN, 1
    
    	GetMembersRecurse "LDAP://" & strGroupDN, dicProcessedGroups, dicMembers
    
    	GetMembers = dicMembers.Keys
    
    End Function
    
    '**********************************************************************'
    ' GetMembersRecurse                                                    ' 
    '**********************************************************************'
    ' Gets the members of the specified group (strGroupDN), adds the user  '
    ' members to the members dictionary (dicMembers), adds the group to    '
    ' the dicProcessedGroups dictionary and calls GetMembersRecurse on     '
    ' each group member in turn only if it does not appear in the          '
    ' dicProcessedGroups dictionary.                                       '
    '**********************************************************************'
    
    Private Function GetMembersRecurse(strGroupDN, dicProcessedGroups, dicMembers)
    	Set objGroup = GetObject(strGroupDN)
    
    	For Each objMember in objGroup.Members
    		If objMember.Class = "group" Then
    			If Not dicProcessedGroups.Exists(objMember.ADsPath) Then
    				dicProcessedGroups.Add objMember.ADsPath, 1
    				GetMembersRecurse objMember.ADsPath, dicProcessedGroups, dicMembers
    			End If
    		Else
    			If Not dicMembers.Exists(objMember.ADsPath) Then
    				dicMembers.Add objMember.ADsPath, 1
    			End If
    		End If
    	Next
    End Function

  9. #8
    mrbios's Avatar
    Join Date
    Jun 2007
    Location
    Stroud, Gloucestershire
    Posts
    2,420
    Thank Post
    343
    Thanked 250 Times in 206 Posts
    Rep Power
    97
    Quote Originally Posted by ChrisMiles View Post
    I use a program call nircmd in conjunction with a vbs script on logon to set resolutions based on which OU a computer is in, the groups a user is in etc. So for my VI students I add them to a special group in AD and it sets the resolution when they log in.
    Just an FYI to anyone that decides to try this route, if you're using sophos on your network you might need to add nircmd to the allowed programs list as when i tried this quite a while back it instantly deleted it from every PC i put it on

  10. #9
    JonThompson's Avatar
    Join Date
    Nov 2011
    Location
    Leicester
    Posts
    174
    Thank Post
    18
    Thanked 26 Times in 19 Posts
    Rep Power
    10
    Thanks guys. I went with the mandatory profile in the end, and so far so good.

  11. #10
    chazzy2501's Avatar
    Join Date
    Jan 2008
    Location
    South West
    Posts
    1,774
    Thank Post
    213
    Thanked 263 Times in 213 Posts
    Rep Power
    67
    Quote Originally Posted by JonThompson View Post
    I've downloaded an old version of QRes, and it works to convert the resolution, but when I try and change it back it blue screens my pc. @chazzy2501, I'll try that. Did you just log on as a user, modify the local profile and then just upload it to a server share?
    yes thats it.

  12. #11
    JonThompson's Avatar
    Join Date
    Nov 2011
    Location
    Leicester
    Posts
    174
    Thank Post
    18
    Thanked 26 Times in 19 Posts
    Rep Power
    10
    Thanks. After much and desk banging, I got it to work. And on the plus side I got a thank you from the student!

SHARE:
+ Post New Thread

Similar Threads

  1. Visually Impaired Pupil
    By wesleyw in forum How do you do....it?
    Replies: 17
    Last Post: 6th December 2010, 11:26 AM
  2. Replies: 102
    Last Post: 16th October 2009, 05:12 PM
  3. Report Students with *.mp3 *.avi *.ogg
    By roland in forum How do you do....it?
    Replies: 8
    Last Post: 24th August 2007, 04:50 PM
  4. Replies: 13
    Last Post: 22nd January 2007, 09:54 AM
  5. Visually Impaired advice, recommendations etc.
    By tosca925 in forum How do you do....it?
    Replies: 0
    Last Post: 17th May 2006, 06:16 PM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •