Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: https://forum.uvnc.com/viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864
Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864
Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
Educational Purposes
Educational Purposes
Hi, I was wondering if anyone could tell me wether or not UltraVNC could be used for educational purposes in a classroom environment and if so how would i go about doing it?
I know it can be used to remotely administer a computer one to one but i was wondering if it could be used is a way so that what the teacher does on her computer is displayed to the kids on their computers as this would make it easier for her to show them (entire class) how to do something rather than showing each of them individually.
Any ideas?,
Cheers
I know it can be used to remotely administer a computer one to one but i was wondering if it could be used is a way so that what the teacher does on her computer is displayed to the kids on their computers as this would make it easier for her to show them (entire class) how to do something rather than showing each of them individually.
Any ideas?,
Cheers
Educational Purposes
You can do this fairly easily. Set up the instructor PC as the VNC server, then on each of the student PC's you must install the Vnc viewer listener, and have it running. What the listener does is wait for a 'call' from the instructor PC. Then back on the instructor PC, create a desktop shortcut that connects to all of the student PC (You need to have the machine name or IP address for each of them). For a small training room of 4 students PC the target for shortcut would be "C:\Program Files\UltraVNC\winvnc.exe -connect 10.122.7.12 -connect 10.122.7.8 -connect 10.122.7.6 -connect 10.122.7.9" Obviously your program path and ip addresses may vary, but you see a connection here for 4 machines. What you'll also want to do is on each of the students PC's set the listener defaults to at least the following: "View only" - so they're not controlling you, "full screen mode" - so they aren't playing games while you're teaching, and "disable toolbar" - So it's not easy for them the exit out of it. When you want the student to see what you're doing run the desktop shortcut you created. When you want them to stop viewing, on the instructor PC, right click on the VNC icon in the tray and "Kill all clients" You'll also probably want the student PC's to start the 'listener' at each bootup. Hope this helps.
i just tried it then and it works like a charm! , the only thing i had to do was on each of the student PC's (viewer PC's) i had to select "let the remote server deal with mouse cursor" so that what i did on the teacher PC was shown on the students PC's. Thanks for the help, much appreciated (boss is very happy) but i was wondering about getting the student PC's to run at startup. If i create a shortcut to C:\Program Files\UltraVNC\vncviewer.exe -listen (not sure if this is the right command) and place this in the start up menu, will it automatically startup when the computers are started, and also will it remember the settings that i put in for it (ie. Full Screen, View only, etc),
Cheers and thanks again for your help...
Cheers and thanks again for your help...
Very cool. I'm wondering though... Can you setup say a classroom of PCs to be used as normal remote control agents (having the server piece installed), and at the same time, have it setup to be used as mentioned in this thread?
I'm assuming the student PCs would need both the server and viewer installed? The server piece for when us admins might need to remote control the PC, and the viewer piece for when a teacher wants the student to be able to view their PC?
JRink
I'm assuming the student PCs would need both the server and viewer installed? The server piece for when us admins might need to remote control the PC, and the viewer piece for when a teacher wants the student to be able to view their PC?
JRink
Yes, there is no problem having the server runing and the vncviewer listener running at the same time. Another example of using the listener that we use is on laptops that connect through dialup or vpn to our network. Since the laptops are assigned an ip by dhcp, I couldn't connect to them without explaining to the user how to tell me their ip address. Now, I just run the listener on my PC and they have a shortcut to get "System Help". They run the shortcut and it connects to my PC which has a static ip address. Works great. Albeit slower over dialup.
A further question on this setup.
I have a similar setup here,
I have a training room with:
8 student PCs
1 teacher PC with a LCD projector.
So far I have the server working fine on each student PC. I can take control of any PC at any time.
I have the viewer running in listening mode on each PC. that way I can transmit to it at any time.
I want 2 things for my setup to be complete.
I want a command line or shortcut to allow me to serve to all viewers simultaneously. (same as earlier question)
This is my current shortcut. It does not work. I can connect manually by choosing Add new client from the menu, so I believe the listener is working fine, but no luck with my shortcut.
"C:\Program Files\UltraVNC\winvnc.exe" -connect 192.168.1.201 -connect 192.168.1.202 -connect 192.168.1.203 -connect 192.168.1.204 -connect 192.168.1.205 -connect 192.168.1.206 -connect 192.168.1.207 -connect 192.168.1.208
I want to prevent the users from shutting down the VNCserver and VNC viewer. Can I disable that option with a regkey?
If you can help,.....well, I will go home from work happy tonight.
Thanks
Kevin
I have a training room with:
8 student PCs
1 teacher PC with a LCD projector.
So far I have the server working fine on each student PC. I can take control of any PC at any time.
I have the viewer running in listening mode on each PC. that way I can transmit to it at any time.
I want 2 things for my setup to be complete.
I want a command line or shortcut to allow me to serve to all viewers simultaneously. (same as earlier question)
This is my current shortcut. It does not work. I can connect manually by choosing Add new client from the menu, so I believe the listener is working fine, but no luck with my shortcut.
"C:\Program Files\UltraVNC\winvnc.exe" -connect 192.168.1.201 -connect 192.168.1.202 -connect 192.168.1.203 -connect 192.168.1.204 -connect 192.168.1.205 -connect 192.168.1.206 -connect 192.168.1.207 -connect 192.168.1.208
I want to prevent the users from shutting down the VNCserver and VNC viewer. Can I disable that option with a regkey?
If you can help,.....well, I will go home from work happy tonight.
Thanks
Kevin
I don't see anything wrong with your command line for the shortcut. Don't forget like I did in testing this, that on the Server side, when you run the shortcut, the most you're going to see is a little flickering, but now all of the student pc's should be seeing the instructor screen. Try it with only one connection first. Check on the student pc, that the listener 'default connection options' are set to 'Share the Server' otherwise only one viewer at a time will be allowed to connect. Check here for the server registry options http://ultravnc.sourceforge.net/website/regserver.htm. There are a couple of settings to prevent modifications, or to disable the tray icon all together. Make sure everything is working properly first though, because once set, if want to change anything, it has to be done in the registry and the pc has to be booted to take effect.[/url]
Thanks for looking
Thank you for looking. I got it working ok. I will continue to see if I can disable the user from shutting down the app. I will try some different accounts.
One last question...
I am using the following shortcut to start the viewer in listen mode.
"C:\Program Files\UltraVNC\vncviewer.exe" -listen -fullscreen -viewonly -notoolbar
There is one more property I need to set in the shortcut.
I need to set "LET REMOTE SERVER DEAL WITH MOUSE CURSOR"
Is there a command line parameter for that?
Thanks
Kevin
"C:\Program Files\UltraVNC\vncviewer.exe" -listen -fullscreen -viewonly -notoolbar
There is one more property I need to set in the shortcut.
I need to set "LET REMOTE SERVER DEAL WITH MOUSE CURSOR"
Is there a command line parameter for that?
Thanks
Kevin
Hi, i posted the original question and just thought id say thanks becuase it works great, i use "C:\Program Files\UltraVNC\vncviewer.exe" -listen -fullscreen -viewonly -notoolbar -nocursorshape as the shortcut for the viewer on each of the student PC's in the start up folder (Win98 machines) and i can connect with all 18 of the student lab computers no problem with great speed (almost real time as long as i dont try and do anything to quickly), and making it hard for the kids to shut it down. It works a charm and the kids find it better when they can see what or how they are supposed to be doing on their screen rather than the projector.
Thanks for this great bit of software and thanks to the people who answered my question.
Cheers,
Thanks for this great bit of software and thanks to the people who answered my question.
Cheers,
Flip Flop
Can I do the oppisite?
Can I have several PC's log on to one machine and see what's what? I am thinking have a guy at home, one in a hotel and one on some other pc all log in and see what I am doing on my computer. Since they are traveling folks they would have a different or maybe non-public IO address so I couldn't call out to them. They need to dial in to me. I have tried this with the web interface of RealVNC and the interface can only handle one client at a time. Any help?
Can I have several PC's log on to one machine and see what's what? I am thinking have a guy at home, one in a hotel and one on some other pc all log in and see what I am doing on my computer. Since they are traveling folks they would have a different or maybe non-public IO address so I couldn't call out to them. They need to dial in to me. I have tried this with the web interface of RealVNC and the interface can only handle one client at a time. Any help?
-
- 8
- Posts: 11
- Joined: 2004-07-12 15:52
- Location: Connecticut, USA
- Contact:
I am going to try to test this out with some pc's here and if things work out, we may implement this idea throughout all the PC labs in our school district. Please let me know if you can figure out how to disable access to exiting the listener app. I'm sure the kids will quickly figure out that they can escape a teacher's shared desktop by simply quitting the listening viewer.
Thanks
Thanks
-
- 8
- Posts: 11
- Joined: 2004-07-12 15:52
- Location: Connecticut, USA
- Contact:
I have two questions... hopefully someone can help me out.
1) In the new version of of ultravnc there is a toolbar while the viewer is in full screen mode. This toolbar pops down when you move your mouse all the way to the top of the screen, and enables the user to close the connection. Is there anyway I can disable this toolbar, or maybe should I be using an old version of the viewer that does not include the toolbar?
2) Is there a command that I can run from a shortcut to kill all clients after I want to stop sharing? I am looking for this because I have chosen to not display the VNC Server icon in the tray, and would like to click 1 shortcut to start and another shortcut to finish.
Thanks
1) In the new version of of ultravnc there is a toolbar while the viewer is in full screen mode. This toolbar pops down when you move your mouse all the way to the top of the screen, and enables the user to close the connection. Is there anyway I can disable this toolbar, or maybe should I be using an old version of the viewer that does not include the toolbar?
2) Is there a command that I can run from a shortcut to kill all clients after I want to stop sharing? I am looking for this because I have chosen to not display the VNC Server icon in the tray, and would like to click 1 shortcut to start and another shortcut to finish.
Thanks
The answer to question 2 is create a shortcut with the following command.
"c:\program files\winvnc\winvnc -kill"
As for question number 1...I'm wondering the same thing. It sort of defeats the purpose of full screen and no toolbar and using scroll lock to disable ctrl-escape if a toolbar pops down when the mouse gets close to the top of the screen.
I have two questions... hopefully someone can help me out.
1) In the new version of of ultravnc there is a toolbar while the viewer is in full screen mode. This toolbar pops down when you move your mouse all the way to the top of the screen, and enables the user to close the connection. Is there anyway I can disable this toolbar, or maybe should I be using an old version of the viewer that does not include the toolbar?
2) Is there a command that I can run from a shortcut to kill all clients after I want to stop sharing? I am looking for this because I have chosen to not display the VNC Server icon in the tray, and would like to click 1 shortcut to start and another shortcut to finish.
Thanks
"c:\program files\winvnc\winvnc -kill"
As for question number 1...I'm wondering the same thing. It sort of defeats the purpose of full screen and no toolbar and using scroll lock to disable ctrl-escape if a toolbar pops down when the mouse gets close to the top of the screen.
I have two questions... hopefully someone can help me out.
1) In the new version of of ultravnc there is a toolbar while the viewer is in full screen mode. This toolbar pops down when you move your mouse all the way to the top of the screen, and enables the user to close the connection. Is there anyway I can disable this toolbar, or maybe should I be using an old version of the viewer that does not include the toolbar?
2) Is there a command that I can run from a shortcut to kill all clients after I want to stop sharing? I am looking for this because I have chosen to not display the VNC Server icon in the tray, and would like to click 1 shortcut to start and another shortcut to finish.
Thanks
One thing that you might try depending on your computer set up. This will allow you to project to the computer when no user is logged in. You would still have to run the viewer when users log on using the Start folder or a login script. I have several classrooms set up and using Ultr@VNC to project the instructors' desktops using Win 2000. This solution requires all computers to have the same constant screen resolution. Really this works best for VNC in general. I use 1024 x 768 16 bit which is the recommended setting for best performance of VNC. Anyhow to the point. For the viewer I use a Visual Basic program that I run as the prelogon screen saver. The program consist of a "snapshot" of the Ctrl-Alt-Del screen on a form with the appropriate code to run the viewer in listen mode. After you compile the executable place it in C:\WinNT\System32. For this example I called the executable VncScr.exe
run Regedit on the student machine and set the following registry entries.
HKEY_USERS\.DEFAULT\Control Panel\Desktop\SCRNSAVE.EXE
= VncScr.exe
HKEY_USERS\.DEFAULT\Control Panel\Desktop\ScreenSaveActive
= 1
HKEY_USERS\.DEFAULT\Control Panel\Desktop\ScreenSaveTimeOut
= 20 (This causes the computer to wait 20 seconds before running the viewer.)
The code behind the Form_Load() event is:
'------------------------------------------------------------
Form1.WindowState = 2 ' maximize The form.
SH = "C:\Program Files\UltraVNC\vncviewer -listen -restricted -config C:\Program Files\UltraVNC\EnrTecDP.vnc"
X = Shell(SH)
'------------------------------------------------------------
EnrTecDP.vnc is the VNC configuration file with all of my settings.
I also added code to put the screen into powersave mode after an hour so that I don't burn up the monitors when no one is logged in.
'-----SendMessage Declarations------------------------------
Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Const SC_MONITORPOWER = &HF170&
Private Const MONITOR_ON = -1&
Private Const MONITOR_OFF = 2&
Const WM_SYSCOMMAND = &H112
'------------------------------------------------------------
I put the following code under a 5 second timer
'------------------------------------------------------------
Private Sub Timer1_Timer()
Wait 3595 ' seconds
SendMessage Me.hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF
End Sub
'-------------------------------------------------------------
Finally here is the code for the Wait function. I did not write it. I pulled it off of the internet. I put this code into a module.
'-Wait Funtion code inserted into a module--------------------
Option Explicit
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Const WAIT_ABANDONED& = &H80&
Private Const WAIT_ABANDONED_0& = &H80&
Private Const WAIT_FAILED& = -1&
Private Const WAIT_IO_COMPLETION& = &HC0&
Private Const WAIT_OBJECT_0& = 0
Private Const WAIT_OBJECT_1& = 1
Private Const WAIT_TIMEOUT& = &H102&
Private Const INFINITE = &HFFFF
Private Const ERROR_ALREADY_EXISTS = 183&
Private Const QS_HOTKEY& = &H80
Private Const QS_KEY& = &H1
Private Const QS_MOUSEBUTTON& = &H4
Private Const QS_MOUSEMOVE& = &H2
Private Const QS_PAINT& = &H20
Private Const QS_POSTMESSAGE& = &H8
Private Const QS_SENDMESSAGE& = &H40
Private Const QS_TIMER& = &H10
Private Const QS_MOUSE& = (QS_MOUSEMOVE _
Or QS_MOUSEBUTTON)
Private Const QS_INPUT& = (QS_MOUSE _
Or QS_KEY)
Private Const QS_ALLEVENTS& = (QS_INPUT _
Or QS_POSTMESSAGE _
Or QS_TIMER _
Or QS_PAINT _
Or QS_HOTKEY)
Private Const QS_ALLINPUT& = (QS_SENDMESSAGE _
Or QS_PAINT _
Or QS_TIMER _
Or QS_POSTMESSAGE _
Or QS_MOUSEBUTTON _
Or QS_MOUSEMOVE _
Or QS_HOTKEY _
Or QS_KEY)
Private Declare Function CreateWaitableTimer Lib "kernel32" _
Alias "CreateWaitableTimerA" ( _
ByVal lpSemaphoreAttributes As Long, _
ByVal bManualReset As Long, _
ByVal lpName As String) As Long
Private Declare Function OpenWaitableTimer Lib "kernel32" _
Alias "OpenWaitableTimerA" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal lpName As String) As Long
Private Declare Function SetWaitableTimer Lib "kernel32" ( _
ByVal hTimer As Long, _
lpDueTime As FILETIME, _
ByVal lPeriod As Long, _
ByVal pfnCompletionRoutine As Long, _
ByVal lpArgToCompletionRoutine As Long, _
ByVal fResume As Long) As Long
Private Declare Function CancelWaitableTimer Lib "kernel32" ( _
ByVal hTimer As Long)
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Private Declare Function MsgWaitForMultipleObjects Lib "user32" ( _
ByVal nCount As Long, _
pHandles As Long, _
ByVal fWaitAll As Long, _
ByVal dwMilliseconds As Long, _
ByVal dwWakeMask As Long) As Long
Public Sub Wait(lNumberOfSeconds As Long)
Dim ft As FILETIME
Dim lBusy As Long
Dim lRet As Long
Dim dblDelay As Double
Dim dblDelayLow As Double
Dim dblUnits As Double
Dim hTimer As Long
hTimer = CreateWaitableTimer(0, True, App.EXEName & "Timer")
If Err.LastDllError = ERROR_ALREADY_EXISTS Then
' If the timer already exists, it does not hurt to open it
' as long as the person who is trying to open it has the
' proper access rights.
Else
ft.dwLowDateTime = -1
ft.dwHighDateTime = -1
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, 0)
End If
' Convert the Units to nanoseconds.
dblUnits = CDbl(&H10000) * CDbl(&H10000)
dblDelay = CDbl(lNumberOfSeconds) * 1000 * 10000
' By setting the high/low time to a negative number, it tells
' the Wait (in SetWaitableTimer) to use an offset time as
' opposed to a hardcoded time. If it were positive, it would
' try to convert the value to GMT.
ft.dwHighDateTime = -CLng(dblDelay / dblUnits) - 1
dblDelayLow = -dblUnits * (dblDelay / dblUnits - _
Fix(dblDelay / dblUnits))
If dblDelayLow < CDbl(&H80000000) Then
' &H80000000 is MAX_LONG, so you are just making sure
' that you don't overflow when you try to stick it into
' the FILETIME structure.
dblDelayLow = dblUnits + dblDelayLow
ft.dwHighDateTime = ft.dwHighDateTime + 1
End If
ft.dwLowDateTime = CLng(dblDelayLow)
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, False)
Do
' QS_ALLINPUT means that MsgWaitForMultipleObjects will
' return every time the thread in which it is running gets
' a message. If you wanted to handle messages in here you could,
' but by calling Doevents you are letting DefWindowProc
' do its normal windows message handling---Like DDE, etc.
lBusy = MsgWaitForMultipleObjects(1, hTimer, False, _
INFINITE, QS_ALLINPUT&)
DoEvents
Loop Until lBusy = WAIT_OBJECT_0
' Close the handles when you are done with them.
CloseHandle hTimer
End Sub
'------------------------------------------------------------
Here is the contents of the EnrTec.vnc file:
"---EnrTec.vnc----------------------------------------------
[connection]
host=tec125teach
port=5900
password=ultr@
[options]
use_encoding_0=1
use_encoding_1=1
use_encoding_2=1
use_encoding_3=0
use_encoding_4=1
use_encoding_5=1
use_encoding_6=1
use_encoding_7=1
use_encoding_8=1
use_encoding_9=0
use_encoding_10=0
use_encoding_11=0
use_encoding_12=0
use_encoding_13=0
use_encoding_14=0
use_encoding_15=0
use_encoding_16=1
preferred_encoding=5
restricted=0
viewonly=1
nostatus=0
showtoolbar=0
fullscreen=1
autoDetect=1
8bit=0
shared=1
swapmouse=0
belldeiconify=0
emulate3=1
emulate3timeout=100
emulate3fuzz=4
disableclipboard=0
localcursor=0
scale_num=1
scale_den=1
cursorshape=0
noremotecursor=0
compresslevel=6
quality=0
ServerScale=1
EnableCache=0
UseDSMPlugin=0
DSMPlugin=
'------------------------------------------------------------
Hope someone finds this useful.
run Regedit on the student machine and set the following registry entries.
HKEY_USERS\.DEFAULT\Control Panel\Desktop\SCRNSAVE.EXE
= VncScr.exe
HKEY_USERS\.DEFAULT\Control Panel\Desktop\ScreenSaveActive
= 1
HKEY_USERS\.DEFAULT\Control Panel\Desktop\ScreenSaveTimeOut
= 20 (This causes the computer to wait 20 seconds before running the viewer.)
The code behind the Form_Load() event is:
'------------------------------------------------------------
Form1.WindowState = 2 ' maximize The form.
SH = "C:\Program Files\UltraVNC\vncviewer -listen -restricted -config C:\Program Files\UltraVNC\EnrTecDP.vnc"
X = Shell(SH)
'------------------------------------------------------------
EnrTecDP.vnc is the VNC configuration file with all of my settings.
I also added code to put the screen into powersave mode after an hour so that I don't burn up the monitors when no one is logged in.
'-----SendMessage Declarations------------------------------
Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Const SC_MONITORPOWER = &HF170&
Private Const MONITOR_ON = -1&
Private Const MONITOR_OFF = 2&
Const WM_SYSCOMMAND = &H112
'------------------------------------------------------------
I put the following code under a 5 second timer
'------------------------------------------------------------
Private Sub Timer1_Timer()
Wait 3595 ' seconds
SendMessage Me.hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF
End Sub
'-------------------------------------------------------------
Finally here is the code for the Wait function. I did not write it. I pulled it off of the internet. I put this code into a module.
'-Wait Funtion code inserted into a module--------------------
Option Explicit
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Const WAIT_ABANDONED& = &H80&
Private Const WAIT_ABANDONED_0& = &H80&
Private Const WAIT_FAILED& = -1&
Private Const WAIT_IO_COMPLETION& = &HC0&
Private Const WAIT_OBJECT_0& = 0
Private Const WAIT_OBJECT_1& = 1
Private Const WAIT_TIMEOUT& = &H102&
Private Const INFINITE = &HFFFF
Private Const ERROR_ALREADY_EXISTS = 183&
Private Const QS_HOTKEY& = &H80
Private Const QS_KEY& = &H1
Private Const QS_MOUSEBUTTON& = &H4
Private Const QS_MOUSEMOVE& = &H2
Private Const QS_PAINT& = &H20
Private Const QS_POSTMESSAGE& = &H8
Private Const QS_SENDMESSAGE& = &H40
Private Const QS_TIMER& = &H10
Private Const QS_MOUSE& = (QS_MOUSEMOVE _
Or QS_MOUSEBUTTON)
Private Const QS_INPUT& = (QS_MOUSE _
Or QS_KEY)
Private Const QS_ALLEVENTS& = (QS_INPUT _
Or QS_POSTMESSAGE _
Or QS_TIMER _
Or QS_PAINT _
Or QS_HOTKEY)
Private Const QS_ALLINPUT& = (QS_SENDMESSAGE _
Or QS_PAINT _
Or QS_TIMER _
Or QS_POSTMESSAGE _
Or QS_MOUSEBUTTON _
Or QS_MOUSEMOVE _
Or QS_HOTKEY _
Or QS_KEY)
Private Declare Function CreateWaitableTimer Lib "kernel32" _
Alias "CreateWaitableTimerA" ( _
ByVal lpSemaphoreAttributes As Long, _
ByVal bManualReset As Long, _
ByVal lpName As String) As Long
Private Declare Function OpenWaitableTimer Lib "kernel32" _
Alias "OpenWaitableTimerA" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal lpName As String) As Long
Private Declare Function SetWaitableTimer Lib "kernel32" ( _
ByVal hTimer As Long, _
lpDueTime As FILETIME, _
ByVal lPeriod As Long, _
ByVal pfnCompletionRoutine As Long, _
ByVal lpArgToCompletionRoutine As Long, _
ByVal fResume As Long) As Long
Private Declare Function CancelWaitableTimer Lib "kernel32" ( _
ByVal hTimer As Long)
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Private Declare Function MsgWaitForMultipleObjects Lib "user32" ( _
ByVal nCount As Long, _
pHandles As Long, _
ByVal fWaitAll As Long, _
ByVal dwMilliseconds As Long, _
ByVal dwWakeMask As Long) As Long
Public Sub Wait(lNumberOfSeconds As Long)
Dim ft As FILETIME
Dim lBusy As Long
Dim lRet As Long
Dim dblDelay As Double
Dim dblDelayLow As Double
Dim dblUnits As Double
Dim hTimer As Long
hTimer = CreateWaitableTimer(0, True, App.EXEName & "Timer")
If Err.LastDllError = ERROR_ALREADY_EXISTS Then
' If the timer already exists, it does not hurt to open it
' as long as the person who is trying to open it has the
' proper access rights.
Else
ft.dwLowDateTime = -1
ft.dwHighDateTime = -1
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, 0)
End If
' Convert the Units to nanoseconds.
dblUnits = CDbl(&H10000) * CDbl(&H10000)
dblDelay = CDbl(lNumberOfSeconds) * 1000 * 10000
' By setting the high/low time to a negative number, it tells
' the Wait (in SetWaitableTimer) to use an offset time as
' opposed to a hardcoded time. If it were positive, it would
' try to convert the value to GMT.
ft.dwHighDateTime = -CLng(dblDelay / dblUnits) - 1
dblDelayLow = -dblUnits * (dblDelay / dblUnits - _
Fix(dblDelay / dblUnits))
If dblDelayLow < CDbl(&H80000000) Then
' &H80000000 is MAX_LONG, so you are just making sure
' that you don't overflow when you try to stick it into
' the FILETIME structure.
dblDelayLow = dblUnits + dblDelayLow
ft.dwHighDateTime = ft.dwHighDateTime + 1
End If
ft.dwLowDateTime = CLng(dblDelayLow)
lRet = SetWaitableTimer(hTimer, ft, 0, 0, 0, False)
Do
' QS_ALLINPUT means that MsgWaitForMultipleObjects will
' return every time the thread in which it is running gets
' a message. If you wanted to handle messages in here you could,
' but by calling Doevents you are letting DefWindowProc
' do its normal windows message handling---Like DDE, etc.
lBusy = MsgWaitForMultipleObjects(1, hTimer, False, _
INFINITE, QS_ALLINPUT&)
DoEvents
Loop Until lBusy = WAIT_OBJECT_0
' Close the handles when you are done with them.
CloseHandle hTimer
End Sub
'------------------------------------------------------------
Here is the contents of the EnrTec.vnc file:
"---EnrTec.vnc----------------------------------------------
[connection]
host=tec125teach
port=5900
password=ultr@
[options]
use_encoding_0=1
use_encoding_1=1
use_encoding_2=1
use_encoding_3=0
use_encoding_4=1
use_encoding_5=1
use_encoding_6=1
use_encoding_7=1
use_encoding_8=1
use_encoding_9=0
use_encoding_10=0
use_encoding_11=0
use_encoding_12=0
use_encoding_13=0
use_encoding_14=0
use_encoding_15=0
use_encoding_16=1
preferred_encoding=5
restricted=0
viewonly=1
nostatus=0
showtoolbar=0
fullscreen=1
autoDetect=1
8bit=0
shared=1
swapmouse=0
belldeiconify=0
emulate3=1
emulate3timeout=100
emulate3fuzz=4
disableclipboard=0
localcursor=0
scale_num=1
scale_den=1
cursorshape=0
noremotecursor=0
compresslevel=6
quality=0
ServerScale=1
EnableCache=0
UseDSMPlugin=0
DSMPlugin=
'------------------------------------------------------------
Hope someone finds this useful.
guest wrote:i just tried it then and it works like a charm! , the only thing i had to do was on each of the student PC's (viewer PC's) i had to select "let the remote server deal with mouse cursor" so that what i did on the teacher PC was shown on the students PC's. Thanks for the help, much appreciated (boss is very happy) but i was wondering about getting the student PC's to run at startup. If i create a shortcut to C:\Program Files\UltraVNC\vncviewer.exe -listen (not sure if this is the right command) and place this in the start up menu, will it automatically startup when the computers are started, and also will it remember the settings that i put in for it (ie. Full Screen, View only, etc),
Cheers and thanks again for your help...
-
- 8
- Posts: 11
- Joined: 2004-07-12 15:52
- Location: Connecticut, USA
- Contact:
Thanks guest... yeh it does defeat the whole purpose, but I guess you can't fool proof everything, especially with high-schoolers. If they really don't pay attention to what is happening on their screen, they can just turn off the moniter so I guess when it comes down to it, if they want to pay attention they will not close out of the connection.
Re: Educational Purposes
Hope some ppl from this thread are still around.
I tried creating the shortcut on a winxp machine-
"C:\Program Files\UltraVnc\winvnc.exe - connect 192.168.1.101 "
and I get the error"
The name C:\Program Files\UltraVnc\winvnc.exe - connect 192.168.1.101 specified in the target box is not valid. Make sure the path and filename are correct.
UltraVnc is installed in this path - I browsed to it. The IP address is to one on my lan.
I'm using winxp - can anyone suggest what I may be doing wrong. I'm pretty keen to give this a try.
Cheers
Basil
I tried creating the shortcut on a winxp machine-
"C:\Program Files\UltraVnc\winvnc.exe - connect 192.168.1.101 "
and I get the error"
The name C:\Program Files\UltraVnc\winvnc.exe - connect 192.168.1.101 specified in the target box is not valid. Make sure the path and filename are correct.
UltraVnc is installed in this path - I browsed to it. The IP address is to one on my lan.
I'm using winxp - can anyone suggest what I may be doing wrong. I'm pretty keen to give this a try.
Cheers
Basil
Re: Educational Purposes
try putting the quotes differently:
"C:\Program Files\UltraVnc\winvnc.exe" - connect 192.168.1.101
"C:\Program Files\UltraVnc\winvnc.exe" - connect 192.168.1.101
Re: Educational Purposes
Almost done!
- Everyone viewing the teacher PC (mouse/keyboard disable);
- View of various servers with VNC Thumbnail Viewer;
It's easy to lock server screen and show the personalized background.
But there is some way to do that with various servers at the same time?
- Everyone viewing the teacher PC (mouse/keyboard disable);
- View of various servers with VNC Thumbnail Viewer;
It's easy to lock server screen and show the personalized background.
But there is some way to do that with various servers at the same time?
Re: Educational Purposes
A problem apears here ...
When I kill the clients .. it closes the viewer on the student station.
There is some way to mantain the viewer "listening"?
Teacher show some thing ... student make your tasks ... teacher show more things ...
Sorry my poor english.
When I kill the clients .. it closes the viewer on the student station.
There is some way to mantain the viewer "listening"?
Teacher show some thing ... student make your tasks ... teacher show more things ...
Sorry my poor english.
Last edited by bughead on 2008-01-22 19:23, edited 1 time in total.
Re: Educational Purposes
Seems that viewer runs not in the listener mode. Try run listener with parameter -listen, e.g.
"C:\Program files\UltraVNC\vncviewer.exe" -listen
I my classroom computers are set up to run vncviewer from registry. So it works for any user. If you like it, do so (as administrator):
1. Start>Run
2. enter:
regedit
3. go to:
KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Edit>New>String value
4. Name it:
VNCviewer
5. Dblclick on 'VNCviewer'
6. Enter:
"C:\Program files\UltraVNC\vncviewer.exe" -shared -listen -fullscreen -viewonly -notoolbar -nocursor
"C:\Program files\UltraVNC\vncviewer.exe" -listen
I my classroom computers are set up to run vncviewer from registry. So it works for any user. If you like it, do so (as administrator):
1. Start>Run
2. enter:
regedit
3. go to:
KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Edit>New>String value
4. Name it:
VNCviewer
5. Dblclick on 'VNCviewer'
6. Enter:
"C:\Program files\UltraVNC\vncviewer.exe" -shared -listen -fullscreen -viewonly -notoolbar -nocursor
Re: Educational Purposes
Today I was making a trial with beta uvnc 1.04rc8.bughead wrote:A problem apears here ...
When I kill the clients .. it closes the viewer on the student station.
There is some way to mantain the viewer "listening"?
Teacher show some thing ... student make your tasks ... teacher show more things ...
Sorry my poor english.
Seems like mentioned issue is a bug in beta.
Staying with 1.02
Re: Educational Purposes
Oops!
You should download vncviewer.zip from sourceforge.net and replace vcnviewer.exe in your "Program files\UltraVNC" directory with unzipped fresher version. It stays listening after "Kill all clients" form server.
You should download vncviewer.zip from sourceforge.net and replace vcnviewer.exe in your "Program files\UltraVNC" directory with unzipped fresher version. It stays listening after "Kill all clients" form server.