Kwapture is a light-weight (~50KB) tool that sits in a Windows System Tray and allows you to easily capture any area on the screen. The resulting capture can be modified (drawn upon), copied to clipboard, emailed, uploaded to an FTP server, or opened in another application.
The main motivation for Kwapture was to create a light-weight tool in contrast to others available on the web. More on the motivation behind this project is outlined here.
- Download Kwapture archive (zip) – Updated: 2011.10.03 – v.126.96.36.199
- Extract into any directory on your hard drive (I keep a ‘Tools’ directory on my desktop for easy access)
- Modify the configuration as desired by editing Kwapture.exe.config in Notepad or any text editor of your choice
- Run Kwapture.exe
- Capture as desired
Requirements: Windows Operating System with .NET framework 2.0 or higher.
Once you run the application, a new icon (the camera) will be created in you System Tray.
Right-Clicking on the icon, will bring up a menu with several operation options:
“Area Select” is the default operation mode, and it simply allows you to select any area on your screen. This option is executed when you simply double click on the camera icon in the tray. When Kwapture is in this mode, it will dim the screen and allow you to select any area by pressing the left mouse button and dragging the mouse with the button pressed. Once you release the left mouse button, the selected area will be un-dimmed.
“Window Hunt” mode will allow you to click on another window on the screen, and Kwapture will automatically select the screen area occupied by that window. Clicking on the desktop will select the entire screen.
“Delete Temp Files” should be run occasionally to clean up the Kwapture files stored in your temporary directory.
Editing and Deploying Your Kwaptures
Once you have a screen area or a window selected, clicking on the right mouse button anywhere in the highlighted area will bring up a menu with several potential actions.
The “Doodle” menu allows you to draw on the captured image. Freehand is the default mode. Simply dragging the mouse in the capture area with the left mouse button down will draw on top of the captured image. “Pick Color…” will allow you to change the draw color. “UnDoodle” will erase any drawings and expose original capture image.
“Save As…” menu will bring up a dialog allowing you to save the file to disk.
“Email To…” will bring up an email confirmation box and subsequently email the captured image via SMTP. Configuration section below, outlines how you can save time by entering configuration settings ahead of time, and even not bring up the confirmation box at all.
“FTP To…” will bring up an FTP confirmation box and subsequently upload the captured image to an FTP server. Similarly to Email Settings, you can save time by entering configuration settings ahead of time.
“Copy To Clipboard” will copy the capture image to clipboard such that you can paste it into another application that accepts bitmap clipboard content.
“Outsource” menu will bring up options for launching an external application and passing the captured image to it via command line. Configuration for this menu is described below.
Finally, “Escape” will simply undo the capture.
The configuration for the app is managed via an XML file – Kwapture.exe.config. Whenever you make changes to the configuration, you will need to restart your Kwapture application.
The file contains several configuration sections, where you can enter your various account credentials to speed up your Kwapturing.
Email Settings – In this section you can specify SMTP settings for an email account that will be used to email your kwaptures.
<EmailSettings> <add key="Verify" value="true"/> <add key="SMTPHost" value="mail.yourdomain.com"/> <add key="SMTPUser" value="email@example.com"/> <add key="SMTPPass" value="yourpassword"/> <add key="FromAddr" value="firstname.lastname@example.org"/> <add key="ToAddr" value="email@example.com"/> <add key="Subject" value="Check out this Kwapture!"/> <add key="Body" value=""/> </EmailSettings>
Most of the settings are self explanatory and are typical settings you would supply when sending an email or configuring an email client to send email via SMTP.
The “Verify” option, also available in FTP configuration, allows you to control whether the settings should be confirmed via a dialog when you select “Email To…” from the Kwapture Edit menu. If set to true, you will have a chance to modify these settings for each Kwapture. Otherwise, the settings in the file will be used, and no confirmation will pop up. This option can also be useful if you do not feel comfortable having your password appear as plain text in the configuration file. In that case, leave the password option blank, and Verify set to true. This way, you’ll have the option of entering your password for each Kwapture you email or FTP.
FTP Settings – In this section you can specify FTP settings that will be used to upload your Kwaptures to an FTP server.
<FTPSettings> <add key="Verify" value="true"/> <add key="FTPHost" value="ftp://www.yourdomain.com.com/"/> <add key="FTPUser" value="you"/> <add key="FTPPass" value="yourpassword"/> <add key="FTPDir" value="public_html/kwaptures/"/> <add key="WebLink" value="http://www.yourdomain.com.com/kwaptures/"/> </FTPSettings>
Similarly to Email settings, “Verify” setting controls whether a confirmation dialog should be shown. In case your FTP account provides access to a web host, the “WebLink” setting can be used to streamline getting a link to the uploaded Kwapture – upon successful upload, the capture file name will be appended to the value you specify for “WebLink” and copied to the clipboard. So you can simply paste it into a chat window, email, etc.
NOTE: The directory on the FTP server must exist in order for the Kwapture to upload successfully.
Outsource (3rd party application) Settings – In this section you can specify any other application that is capable of opening a JPEG file (your kwapture).
<OutsourceMenu> <add key="MS Paint" value="%SystemRoot%\system32\mspaint.exe %1"/> <add key="Outlook" value="outlook.exe /c ipm.note /m firstname.lastname@example.org /a %1"/> </OutsourceMenu>
The value of the ‘key’ attribute defines how the option should be displayed in the “Outsource” menu. The ‘value’ attribute specifies which application should be launched. ‘%1’ will be replaced with the path to the kwapture (stored in your Temp directory).
Note, that environment variables can be used in application path.
UI Delay Configuration – hopefully you won’t need to edit this value. But if you are seeing portions of confirmation dialogs being caught in your kwaptures, you can try increasing this value – it represents time in milliseconds that the application will wait for User Interface changes.
<appSettings> <add key="UIDelay" value="350"/> </appSettings>
- Multi-display configuration causes strange behavior – I know this is a problem, and I am collecting data on various configurations that produce this behavior. Please contact me with your configuration settings and the symptoms you experience – I am specifically interested in:
- number of displays you have
- how many displays does your taskbar span
- which display is configured as primary, secondary, etc from left to right
- what incorrect behavior you observe
If you encounter issues with the application, or have suggestions for further improvement, please contact me.
Update (2009.11.10): The selection are should now be selected properly. The only after-effect that is still malfunctioning is that grayed out box during select-drag is not extending properly to one of the monitors in the Secondary-Primary display configuration from left to right.
- 2011.10.03 – Fixed issue when selecting a small capture area
- 2011.05.20 – Windows 7 compatibility fixes, code cleanup
- 2009.10.20 – Initial Revision v. 188.8.131.52
- 2009.11.10 – Minor Bug Fixes v. 184.108.40.206: Better Multi-Display Handling.
- Fixed the issue with the select window not spanning both monitors initially.