SCWebcam2 - Screen Capture Webcam Version 2 What? SCWebcam functions similar to a WebCam - it takes pictures, processes them, and uploads them to a specified location on your web page. The difference is that it takes pictures of your desktop instead of your room, so people can see what you're working on. :) SCWebcam2 is designed to run on Windows 98/ME or Windows NT/2000/XP. It will not function on Windows 95. SCWebcam is fully compatible with multiple monitor configurations (although it's not tested on more than 4 monitors. If it works for you, please send me a screenshot! ;) ) Who? SCWebcam and SCWebcam2 were developed by Mike Brent, aka Tursi, of http://harmlesslion.com. SCWebcam2 uses parts of the ImgSource library from Smaller Animals Software, http://smalleranimals.com. It also uses some wonderful scaling and filtering routines based on code by Eran Yariv. The remainder of the code is by Mike Brent. (Although MFC is heavily used ;) ). SCWebcam2 is based on suggestions, comments, and testing by several people. The most useful person for assistance had to be Netolu, though, http://netolu.yiffco.com, not only for persistence and patience, but letting the VB installer screw up his machine not once, but twice. Thanks, Net. ;) Where? SCWebcam's home page is http://harmlesslion.com/software/scwebcam/ When? Version 2.0 was completed and released in October 2000. See the About box for the current revision. Why? This application was written to replace the original capture program, when it became obvious it was not only a fun toy, it was a really fun toy, and Visual BASIC was just a bit unreliable for it. It had problems installing on some systems. Finally, the library used the system's global heap and ran into memory problems. This version is 100% C++, using MFC's framework. It's a single executable to eliminate the installation problems of the past. And, to top things off, it has more options and is more reliable, as well as being more secure. All the above issues are resolved! How? Installation: If you have an older version of SCWebcam, uninstall it. Do not remove the registry settings, this program will handle that for you. Create a folder on your drive, copy the .EXE and this file to that folder. You will probably want to make a shortcut - right click on the .EXE and select "Create Shortcut". You can now copy that shortcut to the desktop, start menu, or shortcut bar by simply dragging it. When you run it, if you had the old SCWebcam installed, it will offer to import the old settings. Simply select yes or no. Then it will ask if you want to delete the old settings. Unless you wish to keep the old program (and I don't recommend it), say Yes. If you do not delete the old settings you will be asked every time. (Advanced: The new settings are written to HKEY_LOCAL_MACHINE/SOFTWARE/TURSISOFT/SCWEBCAM2) The first thing you should do is click Configure and verify that all the settings are correct. If there were no settings to import, everything will be set to default, which likely won't work well. ;) Passive FTP - some FTP sites require this to be turned on. Leave it off unless you experience FTP errors, timeouts, or FTP seems to hang. In those cases, try it on. The reverse is sometimes also true. Ignore Errors - timeouts to busy servers, or over slow or error-prone connections, are likely to cause errors that will not happen if you try again. DO NOT turn this on until you are sure the program can successfully upload. Once everything is working fine, you can turn this off to ignore the occasional error. If 10 errors in a row occur, you will still be notified. Minimize to Tray - Normally, when you minimize the program it behaves as most programs do, and sits in the task bar. There you can read the current countdown. However, if you use this program a lot, you may want to free up that space. Turn on this option, and the program will sit as an icon in the system tray, next to the clock, when minimized. Hovering the mouse over it will display the current status. Double-clicking will bring back the window. Single clicking with the left button will activate/deactivate the 'pause' feature, which temporarily suspends captures. Right-clicking will pop up a menu with the same options as are available on the main form. Tray Countdown - This makes the icon in the tray cycle through a countdown state while uploading. Specifically, you will see a count down from 9 to 1 for the last 9 seconds before an upload, then a 'flash' icon as it takes a picture, then an up arrow as it uploads to your FTP server. If 'Minimize to Tray' is selected, you will only see this when Minimized. If 'Minimize to Tray' is NOT selected, this makes the tray icon always visible. No CaptureBlt - Windows 2000/XP introduced 'layered' windows, such as translucent windows, that may not be captured normally. Normally, this option will be OFF on Windows 2000/XP and ON on Windows 98/ME. It should have no effect if turned off under 98/ME (though some people reported black screens.) Under Windows 2000/XP, turning this option on will allow SCWebCam to use a slightly more optimized capture, but translucent windows will not be captured. Offline in Saver - If your screensaver captures as a black screen, or goes to power saving mode and does that, you can turn this option on. Anytime the screen saver is active the program will treat you as offline - it will upload the offline pic when the transistion occurs. (Note that it only checks when it would normally capture the screen, not necessarily exactly when the screen saver starts running.) It will sit quietly and recheck the screen saver in the interval you've set for captures, and when it discovers the screen saver has ended it will resume normal capturing. This option will only work in Windows 2000/XP (it *may* work in 98 - tell me if you try it). An offline picture is recommended for this option. Hard Capture - In version 2.5.0 the capture mechanism was changed to capture the screen in smaller blocks. The effect of this was to stop the system from freezing during capture (and while not 100%, it's worlds better). However, this method can cause 'tearing' or corruption of moving images. Turn this option on and each monitor will be grabbed all at once, just like before. Reduce Priority - To prevent SCWebCam from hogging too many resources, this option makes the capture thread set itself just below normal priority after grabbing the screen, during the resizing/processing. This may make the program take longer to upload an image, but helps make the capture much less visible. Turn this option off and the thread will run at normal priority all the way through. Offline if Locked - If you are running NT/2000/XP, this option will switch the system into offline mode as with 'Offline in Saver' if the workstation is locked (this includes locked screensavers). (Under Windows 9x/ME this switch has no effect.) When the workstation is unlocked normal operation will resume. An offline picture is recommended for this option. Upload Delay is how long to wait between uploads. The timer does not count DURING an upload, so even short values are safe on a slow link. This is the time after the upload, before the next one starts. Please take this into account before saying '1 second doesn't work'. It does. But it takes your modem 15 seconds to upload the picture. ;) Quality is a slider between 1 and 100% for how good the picture should look when using JPEG compression. JPEG trades off between the size of the picture, and how good it looks. High quality (100%) looks very good, but makes large image files and takes a long time to upload. Low quality (1%) looks awful, but makes smaller files and faster uploads. Play with it as you see fit. I run 30%, myself. This slider also affects PNGs in 10% increments only: 0-9% 4-bit PNG with no dithering 10-19% 4-bit PNG with some dithering 20-29% 4-bit PNG with more dithering 30-39% 6-bit PNG with no dithering 40-49% 6-bit PNG with some dithering 50-59% 6-bit PNG with more dithering 60-69% 8-bit PNG with no dithering 70-79% 8-bit PNG with some dithering 80-89% 8-bit PNG with more dithering 90-99% 24-bit PNG (full color) Scaling lets you specify the final size of the captured image (and optionally, the thumbnail). By percentage sets the sliders to represent a value between 1 and 100%. Width and Height will both be calculated as this percentage of your screen size. By pixels sets the sliders to represent a value between 1 and your current total screen width. The width will be set to exactly this value, and the height will be calculated in order to maintain the correct aspect ratio. It exists for two reasons. The first is to upload smaller images. These images are *physically* smaller, but this also affects the file size. The second reason is that by making the picture smaller, you can make it more difficult to read the text on the screen, thus allowing you to broadcast your desktop without any concern that people can read what you are typing. I run my desktop at 30%, I suggest you verify that you're happy with the results before advertising your page. As always, never broadcast anything you want nobody to see!! The first slider in this section is for resizing - this sets the size of the captured image, as described above. If you change the size, when you exit configuration SCWebcam will offer to resize the program window to fit. There is a dropdown box next to the resizing slider - this box allows you to select from a variety of filters which will greatly vary the quality of the resized desktop. The new default is 'box', which is relatively sharp while providing good retension of the original image. Bilinear also works well. 'Classic' is the old method of resizing, and 'Fast' just uses a quick nearest-neighbor algorithm ('fast' only refers to the sizing, not the capture itself!) The new scaling code is based on code posted by Eran Yariv to The Code Project. Thumb is the next slider in this section, and indicates what size thumbnails should be resized to. If the scaling mode is by percentage, the thumbnail is reduced to x% of the captured picture, not the desktop. For instance, if you set both sliders to 50%, and your desktop is 1280x1024, the uploaded picture will be 640x512, and the thumbnail will be 320x256. If the scale mode is set to Pixel, this slider represents the exact width of the thumbnail. The dropdown box next to the Thumb slider allows you to choose the scaling algorithm for the thumbnail, which may be different than for the main capture. It also contains the entry 'None', which will disable the thumbnail. Logoff Picture lets you choose a final image to upload when you close the program. You may browse for an image by clicking the (...) button to the right of the box. This makes the program take a few seconds longer to close (depending on the file size of the image you selected). I use a picture with text on it, stating that the screencam is offline. Either JPG or PNG should be fine. Note that you should use the same type as you choose below, as SCWebcam will not convert the image for you. It will, however, rename the file to match your regular upload name. The Logoff Picture is not affected by the Resizing slider, however, if thumbnails are active, it will be scaled normally by the Thumbnail setting. Filename is the name that you wish to give the image. This name is used both locally, and on the web server, and will have the extension added automatically. Do not specify a path here. (ie: "desktop") Select either JPEG or PNG, depending on the type that you want to use. Note this comment from the official PNG web site: "A side note: for all practical purposes, PNG is never smaller than JPEG for photographic images. On the other hand, for buttons and simple graphics with relatively few colors, PNG usually is smaller than JPEG. Use the right tool for the job!" SCWebCam2 uses a PNG library that does not support the compression levels. As a form of compensation, the Quality slider can be used to reduce the detail stored in the PNG image - read the settings above. Local temp folder is the path where you would like to store the image temporarily while it is being uploaded. A normal setting is C:\Windows\Temp, or simply C:\. FTP Server is the name or address of the FTP server you wish to send the image to. Note that you will need access to log into this server! Either a numeric address or a text address such as ftp.server.com is permitted. Your internet provider can assist with this information. If this field is blank, the program will not attempt to upload to a server (good for running in local mode if your PC *is* your web server.) Port is the FTP port on the specified server. It is normally 21 and you should not change it unless instructed to by your Internet provider. The big 'X' to the right of the Port field will clear the FTP server field for you, if you aren't sure how to do it yourself. ;) Username is the name that you need to log into your ftp server. Your internet provider can help you with this. Password is the password that you need to log into your ftp server. Your internet provider can help you with this. (Advanced: Note that the password is stored scrambled in the registry and can not be read directly! ) Remote Path is the folder on the ftp machine that you wish to send the picture to. This is usually relative to your home directory, ie: public_html/mycam/, although you may need to specify a full path on some servers, such as /home/jbgoode/public_html/mycam/. Your internet provider can help you with this. Note that there is a problem with the FTP library in the current version of SCWebcam that may cause unexpected problems if uploading the the root path of your server ('/'). If you are having trouble, and everything looks right, see if a subdirectory works before asking for help. 'Caption' allows you to display a short caption automatically on your image. The radio buttons with the arrows allow you to choose where on the picture the text will appear. If you don't want to put it exactly centered or in a corner, select the Custom Position and enter X and Y offsets. (Note: if either co-ordinate is completely off the window, then it will default to the bottom-right corner.) You may also enter either coordinate as a negative number, in this case it will be based off the right or bottom edge of the window, instead of the left or top. (It will also use the end/bottom of the string for the reference point.) Then simply type the text into the box below. You may also choose a file to be used for the caption. A file is specified by entering a drive letter and colon (:) as the first two characters of the caption. You may press the 'file' button to browse for a file, and it will be filled in for you. Files must be plain ASCII text, and all replacement tags below will affect the text. The file is read each capture, so may be used for a dynamic caption. Three buttons next to the caption text box specify the text alignment, whether it will be Left, Center, or Right aligned within the text box. The default color is white, if you wish to change the color or the font, click the font button beside the text box and select your font or color. There is also an 'Outline' dropdown list. It allows you to select from 1-5 pixels of outline around your text, or 'Shaded Area'. These options use the color selected by the 'Color' button to the right. 'Shaded Area' will tint the box in which the text is drawn towards the color you have selected, rather than just outlining the letters. Selecting "0 (None)" will disable the outline. There are five special tags that display special information in the caption: %t - specifies the current time (hh:mm:ss - "13:21:15") %d - specifies the current date as numbers (mm/dd/yy - "10/25/00") %D - specifies the current date in long form (Month dd, yyyy - "October 25, 2000") %w - specifies the title of the currently active window %r - specifies the resolution of all monitors (XxY - "800x600") You may also specify multiple lines in the caption by entering \n to break to a new line. Once you click 'OK', the settings are saved. You can now click 'Begin'. You may resize the form, if you like, to your preference. After one picture has been uploaded, check your web page to make sure it worked, and that you're happy with the speed and quality. If not, click Configure and adjust the settings at will. (Note: Clicking Configure will NOT stop the countdown, however, changes do not take effect until you click 'OK'.) Clicking 'Pause' (or the minimized tray icon or selecting Pause from the Right-click menu) will temporarily pause the system - the current countdown will stop and no new images will be captured (the current image will be completed if a capture is in progress, though). This can be used to easily suspend operations while doing something private. Finally, if you click the 'About' button, you can see who's responsible. Clicking on the web links will take you to the web page in question, even though the cursor doesn't change. Advanced Usage: Autostart Once things are working nicely, you may want to make SCWebcam2 start automatically with Windows. This is only useful if you have cable modem, DSL, or other "always-on" internet. There are two command line switches that make this work. If you don't understand, I'll walk you through it, but be careful in here. If you do understand, skip down to see what they are. Windows has a folder in the Start menu called 'startup' that runs everything in it when you start windows. Open the folder that you installed SCWebcam2 into. If you do not have a shortcut created yet, rightclick SCWebcam2.exe and select "Create Shortcut". You can rename the shortcut if you want by right-clicking on it and selecting 'Rename'. Finally, right-click on the shortcut and select 'copy'. Now right-click on the start menu and select 'explore'. The normal explorer will appear, showing the start menu. Using only the folders on the right side of the explorer window, double-click Programs, and then Startup. This folder may or may not be empty. You shouldn't change anything in here unless you know what you're doing. Right click on an empty space in the right side of the explorer window, and select Paste. The shortcut you copied from the other window should now appear. Now we add the command line switches. Right-click the new shortcut, and select Properties. Select the first line, labelled Target, and put the cursor right at the end of the existing text. If it is highlighted, use the arrow keys to deselect it, be careful not to erase anything! At the very end, add "/minimize /begin", so it looks like this (the front part of yours will differ!) C:\scwebcam2\SCWebCam2.exe /minimize /begin If you make a mistake you can't correct (don't change the path!), just hit 'cancel'. When done, hit OK and double-click the shortcut to try it. If the program comes up, then disappears and begins uploading, you're done, this will happen every time you start Windows. To stop this behaviour, Use explorer to go to the Startup folder again, and simply delete the SCWebcam2 shortcut. Advanced: /minimize - minimize the window on startup /begin - immediately begin the upload countdown The switches MUST be lowercase, and may be specified in either order. It is legal to specify only one switch or the other. Note: Only 1 copy of SCWebcam 2.10 or higher may be active at a time. :)