Take a webcam photo on login using Windows 7

How do I set up my webcam to capture an image on the sly each time my account (or any account) logs on? Is there some specific software that will do this?

I have a Logitech QuickCam Fusion cam and running Windows 7.

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

Using AutoIt, this code will take the snapshot, just run it on startup (just use a shortcut unless you change the save path and use the include folder for the include file) Note that this will flash any LED on the camera on for a half second while it takes the snapshot, there isn’t a way around that:

#include <GUIConstants.au3>
#include <Webcam.au3>

$gui = GUICreate("Webcam UDF Test",640,480)
_WebcamInit()
_Webcam($gui,640,480,0,0)
GUISetState(@SW_HIDE)
Sleep(100)
ConsoleWrite("Taking snapshot ..." & @CRLF)
_WebcamSnapShot()
ConsoleWrite("Snapshot taken !" & @CRLF)

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
        _WebcamStop()
        Exit
    EndIf
    Sleep(10)
    _WebcamStop()
    Exit
WEnd

You will need to get the Webcam.au3 include file from here. Put it in the same directory as the script or into the autoit include folder. I borrowed the code from that site and modded it for your needs. The file will appear in the same folder as the script (you can change that via the Webcam.au3 file if needed).

EDIT: you will also need to add this line to the top of Webcam.au3:

#include <WindowsConstants.au3>

EDIT2: The line you will change for the path in Webcam.au3 if you want to specify it is:

$snapfile = @ScriptDir & "\snapshot.bmp"

to something like:

$snapfile = "C:\snapshot\snapshot.bmp"

or if you want date and time of pic:

$snapfile = "C:\snapshot\" & @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & "-" & @MIN & "-" & @SEC & ".bmp"

Solution 2

I have just built a small program called qpic.

The only requirements are .Net Framework 3.5.

Simply extract to a folder anywhere, and, when it is launched, a half second later it will close and save a JPG picture in the folder it was launched from with the next sequential number.

Simply place a shortcut to this program in your startup folder , or HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run – and it should work without problems!

In order to see when someone logged on, simply take a look at the date/time of the picture.

All this aside, if your webcam has a light or similar that shows when it is active, there is no way to get around this as it is a hardware feature of the webcam… Unless you open it up and disconnect the LED/light!

(It is built off of a modified version of this project)

You can download here.

Solution 3

There are several ways to this.

Personally, I would make a script using AutoIt (there’s an example how to take a snapshot here). AutoIt allows you to produce an executable from the script if desired.

After you have a working script, you’ll need to create a shortcut for it (or the executable) in the StartMenu’s Startup folder of the intended user (or “All Users” if the snapshot should be take from all users).

Solution 4

Visual Basic 6 apparently has libraries for controlling webcams.

This page has source code for a Visual Basic app that will start capture from a webcam, close the cam, and offers video formatting options.

I’d imaging VBScript offers this sort of thing as well, which would probably be easier to run on system startup.

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply