From 2b7cc59ad45ecc6cbf3868381a7e2c558cbd6c46 Mon Sep 17 00:00:00 2001 From: Gavin Kendall Date: Mon, 31 Jan 2022 09:52:41 -0500 Subject: [PATCH] 2.4.0.0 - Fixed bug with Dashboard not showing screenshots in tabControlViews_Selected so now we calculate the count of all screen and region tabs then make sure the count is equal to the total count of tabs in the tab control view before saving the selected tab index and showing the screenshots based on the slide index. Updated README and documentation. --- README.md | 1200 +--------------------- changelog.txt | 3 +- help/help-2.rtf | 3 +- interface/main/FormMain-Screenshots.cs | 14 +- readme.txt | 1297 +----------------------- 5 files changed, 15 insertions(+), 2502 deletions(-) diff --git a/README.md b/README.md index eb0eb77b..b4ce781d 100644 --- a/README.md +++ b/README.md @@ -6,23 +6,9 @@ Summary ------- Auto Screen Capture is a small and portable screen capture utility for gamers, designers, and testers. -(The information presented in this README refers to version 2.3.3.9) - The application enables you to automatically take screenshots at a chosen interval. For example, you may want to capture the progress of playing through a game's level or track your progress on a long project. -It includes basic region (or area) selection screen capture options from the system tray icon menu so simply right-clicking on the system tray icon will give you the following options: - -``` -Region Select / Clipboard for a region selection and place the screenshot into the clipboard -Region Select / Auto Save for a region selection and save the screenshot on the desktop -Region Select / Edit for a region selection, save the screenshot, and open it in an editor -``` - -You may use any application or script as your default editor rather than Microsoft Paint and, if you happen to have Snagit Editor installed, then the Snagit Editor will be your default editor. - -You can schedule your automated screen capture sessions by specifying when a session starts and when a session stops on particular days of the week. - -A calendar is included to help you keep track of what days screenshots were taken and you can filter screenshots based on label or active window title. +All the documentation you need is found in the Help section of the application. @@ -44,1186 +30,4 @@ Source Code ----------- https://github.com/gavinkendall/autoscreen -This is where to view the source code, fork from the project, and submit pull requests. - - - -Video Tutorials ---------------- -There are a number of videos on YouTube which demonstrate the features of Auto Screen Capture. - -Getting Started -https://youtu.be/v6ajwNFIV_s - -Quick Demo -https://youtu.be/0Mv9tb2OLss - -The Basics -https://youtu.be/TPeHXZHhZpA - -Hidden Startup -https://youtu.be/U-2WExUUdTw - -Snagit Editor -https://youtu.be/_u3RpDl_Df4 - -Naming Files With Macro Tags -https://youtu.be/6o73hn2pCxg - -Active Window Title -https://youtu.be/rkeXjxOQJwM - -Schedules -https://youtu.be/pwvGvLBttg8 - -Multiple Regions -https://youtu.be/iXPtGo0kInQ - -Region Select / Auto Save -https://youtu.be/woz-D8XKL5I - -Region Select / Edit -https://youtu.be/ryTjdWOei5A - -Command Line Options -https://youtu.be/zLPFJetI_5k - -Labels -https://youtu.be/HzfMWGQyz5E - -Time Range Macro Tag Type -https://youtu.be/DvK5VI6TnHQ - -Application Focus -https://youtu.be/6-dlhW5e29U - - - -Introduction to Modules ------------------------ -When you open Auto Screen Capture's interface you're going to see a Dashboard and a number of tabs on the left side which are called Modules: - -``` -Setup -Screenshots -Screens -Regions -Editors -Schedules -Tags -Triggers -``` - -The Dashboard gives you an overview of all the screens and regions associated with the set of screenshots selected from the calendar and listed in the Screenshots module. - - -Modules - Setup ---------------- -The Setup module is divided into a few sections. - -*Interval* - -This section sets the interval value for the timer that will be used when screenshots are being taken during a screen capture session. You can set the number of hours, minutes, seconds, and milliseconds that Auto Screen Capture should wait until it takes screenshots of your displays. - -For example, an interval of 30 seconds will tell Auto Screen Capture to wait for 30 seconds, take screenshots, wait for another 30 seconds, take screenshots, wait for another 30 seconds, take screenshots, wait for another 30 seconds, take screenshots, etc. until the application is told to stop or the application quits. - -(You can also use the "-interval" command line argument to specify the timer's interval.) - -"Initial Capture" takes an initial round of screenshots before starting the timer -(and then following the timer's set interval). For example, screenshots will be taken first, then the timer is started for 30 seconds, and then after 30 seconds the screenshots will be taken again until the application is told to stop or the application quits. - -(You can also use the "-initial" command line argument to enable this option.) - -Setting "limit" tells Auto Screen Capture to keep taking screenshots until a specified number of "cycles" has been reached. For example, a limit of 3 will be three cycles. - -(You can also use the "-limit" command line argument.) - -This means that screenshots will continue to be taken until Auto Screen Capture reaches the 3rd cycle. - -With an interval set for 30 seconds the application will ... -1) Wait for 30 seconds (which completes the 1st cycle) -2) Take screenshots -3) Wait for another 30 seconds (to complete the 2nd cycle) -4) Take screenshots -5) Wait for another 30 seconds (to complete the 3rd cycle) -6) Stop taking screenshots - -With an interval set for 30 seconds and Initial Capture enabled the application will -1) Take screenshots -2) Wait for 30 seconds (which completes the 1st cycle) -3) Take screenshots -4) Wait for another 30 seconds (to complete the 2nd cycle) -5) Take screenshots -6) Wait for another 30 seconds (to complete the 3rd cycle) -7) Stop taking screenshots - -This gives you three cycles. When you look at the Screenshots module you will see three sets of screenshots taken with a 30 second interval in between each set. - -Enabling the "Apply this label to each screenshot" option and entering a label in the text field will assign the provided text to each screenshot taken. This is useful for when you want to filter your screenshots by a particular label. A label can represent whatever you feel is necessary and important. For example, you could use a label to represent the name of a project you're currently working on. When you start working on a new project you then change the label to represent the name of the new project. - -Auto Screen Capture will keep track of what screenshots were taken during the time a label was applied. - -As of version 2.2.3.1 a label can be selected from the "Apply Label" system tray icon menu. This menu will not be available if the session is locked. - -*Active Window Title* - -This is where to specify the text to compare against the active window title so that the application only takes screenshots if the active window title contains the defined text. There are a few ways for the text comparison to match against the active window title: -``` -Case Sensitive Match -Case Insensitive Match -Regular Expression Match -``` - -Based on what type of match you use will affect how the text in the text field behaves. For example, you can match on exactly the lowercase and uppercase characters in a specific order or do a logical comparison with a regular expression (such as black|pink to match on either the words black or pink). - -*Application Focus* - -This is where you can choose which application (process) will be forced into the foreground as the active application when screenshots are taken. Select an application from the list, click "Test" to make sure the correct application is brought to the foreground, and use the "Refresh" button to refresh the list. You can also specify, in milliseconds, how long a delay should occur before and after the focus. - -*Region Select / Auto Save* - -This section defines the path of the folder and the filename pattern ("macro") for when you right-click on the system tray icon and click on "Region Select / Auto Save" to automatically save the captured region of the screen to an image file. By default this saves a file to the user's desktop - much like doing Command+Shift+4 on a Mac. - -*Security* - -You can set a passphrase in order to lock the running screen capture session once the application starts taking screenshots. - -Enter a phrase that you can remember into the text field and then click on the Lock button. -You will see the following message: -"The passphrase you entered has been securely stored as a SHA-512 hash and your session has been locked." -The entered phrase will be cleared from the text field because your passphrase has now been hashed and stored in the application's user settings file ("user.xml"). - -The menu items available in the system tray icon will also be limited when a session is locked. This ensures that the user will not be able to change labels or see when the next screen capture is going to happen. The system tray icon's status will appear to remain normal/idle even when screenshots are being taken. The user will still be able to use the "Region Select" menu items. - -When the application is stopped, the interface is shown, or the application is exiting, the user will be prompted with an "Enter Passphrase" window which has a text field and an Unlock button for the user to enter the correct passphrase in order to "unlock" the running screen capture session. - -If the user correctly enters the passphrase and unlocks the session the application will continue with the action that the user initiated prior to receiving the prompt. - -If the user incorrectly enters the passphrase and attempts to unlock the session the application will continue to prompt for the passphrase until the prompt window is closed. - -(You can also use the "-passphrase" command line argument.) - - - -Modules - Screenshots ---------------------- -This module is a list of the screenshots that were taken on a particular day. You use the calendar to choose a day and the list will be refreshed based on the chosen day. - -Each entry in this list represents a set of screenshots that were taken for -each screen and/or region at the time the screenshots were taken. - -Each entry in this list also displays the title of the active window at the time screenshots were taken. Clicking on an entry will show you the screenshots for each screen and/or region. - -The "Keep screenshots for X days" option tells Auto Screen Capture to keep all the image files it knows about for a specified number of days. - -For example, "Keep screenshots for 30 days" will keep the image files on disk for 30 days. If any image files are found to be older than 30 days then those files will be automatically deleted. (Folders containing image files will not be deleted. This is intentional for now; a future version of Auto Screen Capture will include this functionality when I have time to develop it further.) - -Old screenshots will be deleted every five minutes. New screenshots will be saved every five minutes. The calendar will also update every five minutes (as of version 2.3.0.0). - -(You can find screenshots data in "!autoscreen\screenshots.xml") - - - -Modules - Screens ------------------ -This module enables you to setup as many screens as you prefer. - -A green square in the list indicates that the Screen is active. -A red square in the list indicates that the Screen is inactive. -You can click on a square to toggle the active/inactive state. - -The green button with the white plus will show you a preview of the currently selected Component (whether it be the Active Window or an available screen/display/monitor). - -The "Name" text field contains the name of the screen. For a new screen the Name field will auto-populate with a default name based on the next available screen name that can be used. - -The value of the Name field can be retrieved with the %name% macro tag so it could be used as part of the screenshot's filename. Therefore any characters that are invalid to Windows will be stripped out of the name (such as /, :, *, ?, \, <, >, and |). - -The Source drop down list shows you three sources: -``` -Auto Screen Capture -Graphics Card -Operating System -``` - -If you need screenshots of the active window then use the Auto Screen Capture source. - -The Graphics Card source gives you a list of displays using the resolution properties from each display based on what your graphics card provides. - -The Operating System source gives you a list of displays using the device information provided by Windows. This may or may not be the same as the list from the Graphics Card source. - -The Component drop down list shows you the available screens with their associated dimensions. - -For example, if you have three displays connected to your computer, then the "Graphics Card" source and its Component list might show you ... -``` -Screen 1 (1920 x 1080) -Screen 2 (1920 x 1080) -Screen 3 (1680 x 1050) -``` -.. depending on what your screen setup is. - -You can change the values for X, Y, Width, and Height. - -From the Image group of controls you can specify the format and quality of the image that will be used when a screenshot is taken for that particular screen. - -The following image formats are supported: - -- BMP -- EMF -- GIF -- JPEG -- PNG -- TIFF -- WMF - -The "Include mouse pointer" option, when enabled, will include the mouse pointer in the image of the screenshot that will be taken for that particular screen. - -The "Preview" image area shows you a preview of the selected Component. - -The "Folder" text field refers to the directory in which screenshots will be written to. You can use the backslash character (\) as part of your folder structure to define sub-folders. An ending backslash character is recommended, but it will be included automatically upon save. - -The "Macro" text field refers to the macro used that defines how each individual file is named. Any characters invalid to Windows will be stripped out (such as /, :, *, ?, <, >, and |). You can use the backslash character (\) as part of your macro to define sub-folders. - -The button with the red cross is used to remove a selected number of screens in the list. Select the screens you want to remove and then click the button to remove the selected screens. - -The button with the cog will open the Change Screen window enabling you to change properties. - -(The data used for screens can be found in "!autoscreen\screens.xml") - - - -Modules - Regions ------------------ -This module enables you to setup as many regions as you prefer. - -A green square in the list indicates that the Region is active. -A red square in the list indicates that the Region is inactive. -You can click on a square to toggle the active/inactive state. - -The green button with the white plus will show you, by default, a preview of a region at position 0,0 with the width set to 800 and the height set to 600. - -The "Name" text field contains the name of the region. For a new region the Name field will auto-populate with a default name based on the next available region name that can be used. - -The value of the Name field can be retrieved with the %name% macro tag so it could be used as part of the screenshot's filename. Therefore any characters that are invalid to Windows will be stripped out of the name (such as /, :, *, ?, \, <, >, and |). - -The "Region Select" button is used to acquire the X, Y, Width, and Height values by using a mouse-driven region selection on the screen. - -Change the X and Y values in the "Position" section to adjust the region's position. -X = 0 and Y = 0 usually represents the corner of the primary display. You can also use negative values to adjust the position of the region beyond the boundaries of the available screens. - -Change the Width and Height values in the "Size" section to adjust the region's size. - -The "Image" section defines the image format and JPEG quality. - -The "Include mouse pointer" option, when enabled, will include the mouse pointer in the image of the screenshot that will be taken for that particular region. - -You can import the X, Y, Width, and Height values from an available screen by selecting a screen from the "Import Screen Dimensions" drop-down control. - -The "Preview" image area shows you a preview of the specified region using the given X, Y, Width, and Height values. - -The "Folder" text field refers to the directory in which screenshots will be written to. You can use the backslash character (\) as part of your folder structure to define sub-folders. An ending backslash character is recommended, but it will be included automatically upon save. - -The "Macro" text field refers to the macro used that defines how each individual file is named. Any characters invalid to Windows will be stripped out (such as /, :, *, ?, <, >, and |). You can use the backslash character (\) as part of your macro to define sub-folders. - -The button with the red cross is used to remove a selected number of regions in the list. Select the regions you want to remove and then click the button to remove the selected regions. - -The button with the cog will open the Change Region window enabling you to change properties. - -(The data used for regions can be found in "!autoscreen\regions.xml") - - - -Modules - Editors ------------------ -This module enables you to setup your favourite image editors, scripts, or executable applications. - -The green button with the white plus will show a window where you can specify the name, application, and application arguments for the new image editor that you're adding to the list of editors. - -The "Name" text field contains the name of the editor. You can name it however you want. - -The "Application" text field contains the path where the application binary is located. For example, "C:\Windows\System32\mspaint.exe" is the path to Microsoft Paint. - -(Since version 2.2.1.1 you can also use batch scripts (*.bat) and PowerShell scripts (*.ps1) as the editor. In fact, you can use any type of file for an editor.) - -The "Arguments" text field contains the application's command line arguments that will be used during the execution of the application. The %filepath% tag represents the filepath of the screenshot's image file. This could be the filepath of the screenshot that you're wanting to edit via the "Edit" menu of the screenshot you're viewing from the Screenshots module or the filepath of the last screenshot that was taken when a Trigger uses a specified Editor to open the screenshot in the editor. This field is optional so you can leave it empty. - -The "Default" checkbox sets the editor as the default editor to be used when you select "Capture Now -> Edit" or any of the Region Select options from the system tray icon's menu. - -The button with the red cross button is used to remove a selected number of editors in the list. Select the editors you want to remove and then click the button to remove the selected editors. - -The button with the cog will open the Change Editor window enabling you to change properties. - -You can create a trigger to run a particular editor when a screenshot is taken. -For example, WinSCP could be setup as an Editor with ... -``` -Name: WinSCP -Application: C:\Users\gkendall\AppData\Local\Programs\WinSCP\WinSCP.exe -Arguments: /command "open sftp://sftpu:password@MYSERVER/" "put %filepath% MyScreenshot.jpeg" "exit" -``` -... and then a trigger setup as ... -``` -Name: Take Screenshot and SFTP -Condition: Screenshot Taken -Action: Run Editor -Editor: WinSCP -``` - -(The data used for editors can be found in "!autoscreen\editors.xml") - - -Modules - Schedules ------------------- -This module gives you the ability to setup various schedules so you could have a schedule that takes screenshots during your working hours in the morning and another schedule that takes screenshots during your working hours in the afternoon. - -A green square in the list indicates that the Schedule is active. -A red square in the list indicates that the Schedule is inactive. -You can click on a square to toggle the active/inactive state. - -A schedule can either take screenshots of screens and regions for a single cycle ("One Time") or start the timer and take screenshots from a starting time until an ending time is reached (with the "Period" mode) at a certain interval ("hours:minutes:seconds.milliseconds"). - -One Time - -With this mode you specify the time when a set of screenshots are taken. This happens only once and at the exact time specified. - -Period - -This mode specifies the time when the screen capture timer should start running and when the screen capture timer should stop running. You can define an interval for each individual schedule. The interval should be defined in hours, minutes, seconds, and milliseconds. The numeric controls represent the hours, minutes, seconds, and milliseconds of the interval. For example, "0:10:0.000" or 0 10 0 000 in the interface represents a 10 minute interval. The interval defined in a schedule takes priority over the main interval defined in "Setup". - -Days - -A schedule can run on a particular day of the week so you can have a schedule to take screenshots between the hours of 3pm and 5pm only on Saturdays. - -***IMPORTANT NOTES ABOUT SCHEDULES*** - -The application needs to be idle for a schedule to start. Please make sure that the application's screen capture status says "Ready to start taking screenshots". This is because each schedule will start the application's screen capture timer at the specified start time so do not click on the "Start Screen Capture" button or select the "Start Screen Capture" option from the system tray icon's menu otherwise you will be starting the timer before your schedule can start the timer. Simply wait for the scheduled start time. - -A schedule cannot start if the screen capture timer is already running so if you -have a short schedule in the middle of a long schedule then the long schedule will -take priority over the short schedule. For example, if you have ... - -Schedule 1 starting at 9:00am and stopping at 5:00pm at interval 0:5:0.000 (5 minutes) - -... and ... - -Schedule 2 starting at 10:00am and stopping at 3:00pm at interval 0:0:10.000 (10 seconds) - -... the duration of Schedule 1 will take priority over the duration of Schedule 2. -This also means that the 0:5:0.000 (five minute) interval will continue to be used. - -I recommend keeping your schedules as separate as possible so you don't mix them. Have each schedule in its own duration or time range without overlapping another schedule's duration or time range. - -Special Schedule - -As you may see in the Notes section ... -"This schedule is used for the command line arguments -captureat, -startat, and -stopat." - -The Special Schedule remains inactive until the following command line arguments are used: - -``` --captureat=00:00:00 --startat=00:00:00 --stopat=00:00:00 -``` - -If you open a Command Prompt or PowerShell terminal, navigate to where autoscreen.exe is located, and issue a -captureat command line argument for 3:30pm ... - -autoscreen.exe -captureat=15:30:00 - -This will set the Special Schedule in "One Time" mode to take screenshots at 3:30pm. - -Now issue a -startat and -stopat commands for a "Period" schedule ... - -autoscreen.exe -startat=15:45:00 -stopat=16:00:00 - -This will set the Special Schedule in "Period" mode to start taking screenshots at 3:45pm and stop taking screenshots at 4:00pm. - -You may also notice that the Special Schedule will use the current day so be aware that if you executed these commands on a Wednesday then the Special Schedule will continue to use the defined start time and stop time every Wednesday until you deactivate it (you can click on the green square to make it a red square or edit the schedule and simply uncheck the "Active" checkbox). - -Please do not delete the Special Schedule. You can if you want to but it will be created every time you use the -captureat, -startat, and/or -stopat command line arguments. - -(The data used for schedules can be found in "!autoscreen\schedules.xml") - - - -Modules - Tags --------------- -This module enables you to setup macro tags. - -A green square in the list indicates that the Tag is active. -A red square in the list indicates that the Tag is inactive. -You can click on a square to toggle the active/inactive state. - -A tag is a special value, surrounded by the percentage character (%), which gives you the ability to acquire certain information that can be used in your macro for the filename pattern. - -The green button with the white plus will display a dialog box in order to create a new tag. - -The "Name" text field is for the tag's name. This is a required field, but make sure to include the percentage character ("%") at the beginning and the end of the tag name. - -The "Type" drop-down control defines the type of tag being used. There are 11 tag types: - -``` -Screen Name The "Name" of the screen or region -Screen Number The screen's associated number (such as 1, 2, 3, 4) -Image Format The format of the image used for the screen -Screen Capture Cycle Count Number of screen capture cycles during the current screen capture session -Active Window Title The title of the active window -Date/Time Format A value representing a date/time format (such as "yyyy-MM-dd HH-mm-ss-fff") -User The name of the logged in user -Machine The name of the machine being used -Time Range A specified value based on a time range -Date/Time Format Expression A value representing a date/time tag expression (such as "{day-1}") -Quarter Year A number representing the current quarter of the current year -``` - -(The Date/Time Format Expression type is simply the new name for the Date/Time Format Function type previously used by Auto Screen Capture. The functionality of this type remains the same as before.) - -If you select either the Date/Time Format or Date/Time Format Expression type then the Date/Time Format Value text field will be available to enter a value. This value can be a date/time format (such as "HH-mm-ss") to represent the current date/time as a defined pattern or a date/time tag expression (such as "{month-1}") -which represents the current date/time modified by an operator and an applied amount of time. - -As of version 2.3.2.5 you can use date/time format in a tag expression. For example, the value of the tag expression can be "{day-1}[yyyy-MM-dd]" to show the previous day in the format yyyy-MM-dd. - -If you select the Time Range type then the Time Range group of controls will be available. This includes four sets of controls that enable you to specify the start time, end time, and value of four time ranges. The macro for each time range can be text and/or a series of macro tags. - -Macro tags available by default are ... - -``` -%name% Screen Name -%screen% Screen Number -%format% Image Format -%date% Date/Time Format Current date as "yyyy-MM-dd" -%time% Date/Time Format Current time as "HH-mm-ss-fff" -%year% Date/Time Format Current year as "yyyy" -%month% Date/Time Format Current month as "MM" -%day% Date/Time Format Current day as "dd" -%hour% Date/Time Format Current hour as "HH" -%minute% Date/Time Format Current minute as "mm" -%second% Date/Time Format Current second as "ss" -%millisecond% Date/Time Format Current millisecond as "fff" -%lastyear% Date/Time Format Expression Current year minus 1 with expression "{year-1}" -%lastmonth% Date/Time Format Expression Current month minus 1 with expression "{month-1}" -%yesterday% Date/Time Format Expression Current day minus 1 with expression "{day-1}[yyyy-MM-dd]" -%tomorrow% Date/Time Format Expression Current day plus 1 with expression "{day+1}[yyyy-MM-dd]" -%6hoursbehind% Date/Time Format Expression Current hour m***IMPORTANT NOTES ABOUT SCHEDULES*** -inus 6 with expression "{hour-6}[yyyy-MM-dd_HH-mm-ss.fff]" -%6hoursahead% Date/Time Format Expression Current hour plus 6 with expression "{hour+6}[yyyy-MM-dd_HH-mm-ss.fff]" -%count% Screen Capture Cycle Count -%user% User -%machine% Machine -%title% Active Window Title -%timerange% Time Range -%quarteryear% Quarter Year -``` - -You can add, edit, or remove tags. Each tag needs a tag name and a tag type. - -You may also need to specify the date/time format value and/or the time range values based on the chosen tag type. - -So, typically, any date/time value would be associated with the Date/Time Format type. This means that you would need to specify a date/time format value which can include ... - -``` -fff for milliseconds -ss for seconds -mm for minutes -HH for hours -dd for days -MM for months -yyyy for years -``` - -For example, a date/time format value of "yyyy-MM-dd HH-mm-ss" would be translated by your Date/Time Format tag as the current year, month, day, hour, minute, and second. - -A special type of date/time format tag called a date/time format expression tag -(or just "date/time tag expression") can be used to define an applied amount of time either behind or ahead the current date/time. - -A date/time expression tag is specified by a date/time part (year, month, day, hour, minute, or second), an operator (either "-" or "+"), and the amount of time applied. - -For example ... - -``` -{year-1} for last year -{day-1} for yesterday -{day+1} for tomorrow -{month-2} for 2 months ago -{hour+6} for 6 hours ahead -``` - -You can also specify the date/time format as part of a date/time tag expression for when a particular date/time format needs to be used rather than the default date/time format. - -For example ... -``` -{day-1} -``` -... returns the value of day ("dd") subtracted by 1 for the previous day -(so on January 1st 2021 this will return "31") but ... -``` -{day-1}[yyyyMMdd] -``` -... returns the entire value of year ("yyyy"), month ("MM"), and day ("dd") subtracted by 1 for the previous day in the date/time format of "yyyyMMdd" so you have more context as to what the previous day represents in terms of its related month and year (so on January 1st 2021 this will return "20201231"). - -As of version 2.3.0.0, Date/Time Format Function was renamed to Date/Time Format Expression to better define its purpose. - -(The data used for tags can be found in "!autoscreen\tags.xml") - - - -Modules - Triggers ------------------- -This module enables you to setup triggers. - -A green square in the list indicates that the Trigger is active. -A red square in the list indicates that the Trigger is inactive. -You can click on a square to toggle the active/inactive state. - -A trigger performs a specified Action based on a specified Condition to control the behaviour and workflow of Auto Screen Capture. For example, you could setup a trigger to open your favourite image editor whenever a screenshot is taken. - -The following conditions are available: - -``` -ApplicationStartup Perform an action when Auto Screen Capture starts -ApplicationExit Perform an action when Auto Screen Capture exits -InterfaceClosing Perform an action when the interface is closing -InterfaceHiding Perform an action when the interface is hiding -InterfaceShowing Perform an action when the interface is showing -LimitReached Perform an action when the Limit has been reached -ScreenCaptureStarted Perform an action when a screen capture session starts -ScreenCaptureStopped Perform an action when the running session is stopped -ScreenshotTaken Perform an action when a screenshot is taken -Date/Time Perform an action when a defined date and time has been met -Time Perform an action when a defined time has been met on a daily basis -Day/Time Perform an action when a defined day and time has been met - -``` - -The following actions are available: - -``` -ExitApplication Quits Auto Screen Capture -HideInterface Hides the interface -RunEditor Runs (executes) a specified Editor -ShowInterface Shows the interface -StartScreenCapture Starts a screen capture session -StopScreenCapture Stops the currently running screen capture session -EmailScreenshot Uses the email settings in "application.xml" to email - the last screenshot image that was captured -Set Screen Capture Interval Sets (or changes) the screen capture interval to the defined interval -Activate Screen Turns on (sets the "Active" toggle state to on for) a Screen -Activate Region Turns on (sets the "Active" toggle state to on for) a Region -Activate Schedule Turns on (sets the "Active" toggle state to on for) a Schedule -Activate Tag Turns on (sets the "Active" toggle state to on for) a Tag -Activate Trigger Turns on (sets the "Active" toggle state to on for) a Trigger -Deactivate Screen Turns off (sets the "Active" toggle state to off for) a Screen -Deactivate Region Turns off (sets the "Active" toggle state to off for) a Region -Deactivate Schedule Turns off (sets the "Active" toggle state to off for) a Schedule -Deactivate Tag Turns off (sets the "Active" toggle state to off for) a Tag -Deactivate Trigger Turns off (sets the "Active" toggle state to off for) a Trigger -``` - -The following triggers are created by default on the first run of Auto Screen Capture: - -``` -Condition = ApplicationStartup -> Action = ShowInterface -Condition = ScreenCaptureStarted -> Action = HideInterface -Condition = ScreenCaptureStopped -> Action = ShowInterface -Condition = InterfaceClosing -> Action = ExitApplication -Condition = LimitReached -> Action = StopScreenCapture -``` -You may want to disable/deactivate or remove/delete any triggers that show the interface if you're wanting Auto Screen Capture to not show its interface for certain situations. - -(The data used for triggers can be found in "!autoscreen\triggers.xml") - - - -System Tray Icon ----------------- -Auto Screen Capture normally runs in your system tray and its icon will be displayed to show the current status of the application. If the icon is green then screenshots are being taken. If the icon is red then there is likely an error which the application has encountered. - -You can right-click the system tray icon to bring up a menu. This menu has the following items: - -``` -About Auto Screen Capture Shows information about the developer and the app's license -Show Interface Shows the main interface of the application -Hide Interface Hides the main interface of the application -Show Screen Capture Status Shows a small floating window displaying the screen capture status -Start Screen Capture Starts a screen capture session -Stop Screen Capture Stops a running screen capture session -Capture Now / Archive Takes a set of screenshots and saves them -Capture Now / Edit Takes a set of screenshots, saves them, and edits them -Region Select / Clipboard Select an area and send the screenshot to the clipboard -Region Select / Auto Save Select an area and auto save the screenshot -Region Select / Edit Select an area, auto save the screenshot, and edit it -Apply Label Enables you to apply a label to each screenshot taken -Exit Quits the application -``` - -(You can hide the system tray icon with the "-hideSystemTrayIcon" command line argument and show it with the "-showSystemTrayIcon" command line argument.) - - - -Command Line Arguments ----------------------- -You can run the Auto Screen Capture "autoscreen.exe" binary with command line arguments. Simply running "autoscreen.exe" without arguments will open Auto Screen Capture and not necessarily start a screen capture session unless a trigger is setup to do so, the -start command has been given, or the AutoStartFromCommandLine setting is enabled. ("AutoStartFromCommandLine" will be enabled if you're upgrading from a version that's older than version 2.3.0.0 to emulate the old behaviour of running from the command line) - -As of version 2.3.0.0 most commands can be given to Auto Screen Capture while it's running. This gives you the opportunity to control a running instance of the application. - -``` --start -Starts the timer and begins running a screen capture session. ("AutoStartFromCommandLine" will be ignored) - --stop -Stops the timer and stops the currently running screen capture session. ("AutoStartFromCommandLine" will be ignored) - --exit -Quits Auto Screen Capture. - --capture -Takes screenshots in a single capture cycle at the time the command is given. - --interval=hh:mm:ss.nnn -Sets the timer's interval to take a screenshot of each screen and region every hour (hh), minute (mm), second (ss), and millisecond (nnn). For example, "-interval=02:30:10.000" sets the timer's interval to take screenshots every 2 hours, 30 minutes, and 10 seconds. - --log -Toggles logging. As of version 2.3.0.0 this command toggles logging on and off rather than simply enabling (or turning on) logging so be aware how frequently you use this command. For example, if logging is currently off then using "-log" will turn logging on and using "-log" -again will turn it off. All log files, by default, are stored in the "!autoscreen\logs" folder (and this folder path is configurable as of version 2.2.1.0). As of version 2.3.0.0 you can issue this command during a running instance of Auto Screen Capture. - --log=on -Enables logging. - --log=off -Disables logging. - --debug -Toggles "DebugMode". When enabled this command logs all debugging information. Be very careful when enabling DebugMode because it's basically verbose logging. I introduced this command line argument in 2.0.6, removed it in 2.2.0.7, and re-introduced it in 2.2.1.0 :) - --debug=on -Turns on "DebugMode". - --debug=off -Turns off "DebugMode". - --showSystemTrayIcon -Show the application's system tray icon. - --hideSystemTrayIcon -Hides the application's system tray icon. - --initial -Toggles "Initial Capture". When enabled this command takes a screenshot of each screen and region before starting the timer. - --initial=on -Turns on "Initial Capture". - --initial=off -Turns off "Initial Capture". - --captureat=hh:mm:ss -Takes screenshots at the specified time. - --startat=hh:mm:ss -Schedules the application to start taking screenshots at a specified time. - --stopat=hh:mm:ss -Schedules the application to stop taking screenshots at a specified time. - --limit=x -Stops taking screenshots when the specified limit has been reached where x is any number. For example, "-limit=10" will take screenshots for 10 cycles and then stop after the 10th cycle. Each cycle represents taking screenshots of every screen and region for a single tick of the timer. - --passphrase="x" -Sets a word or a series of words to be used as the passphrase for challenging the user when the application is going to show its interface, stop taking screenshots, or exit ensuring that the application continues taking screenshots until the passphrase is entered. This locks the screen capture session until the passphrase is successfully entered to unlock the session. The passphrase is stored as a SHA-512 hash. - --label="x" -Applies a label to each screenshot given the provided text. - --activeWindowTitle="x" -Sets the text for Active Window Title so that a screenshot will be taken only if the text matches with the title of the active window. - --applicationFocus="x" -Sets the process name of the application which will be brought to the foreground during a screen capture session. As of 2.3.3.5 this will also bring the specified application into focus. - --applicationFocusDelayBefore=x -The delay, in milliseconds, to wait before the chosen application is force focused. - --applicationFocusDelayAfter=x -The delay, in milliseconds, to wait after the chosen application is force focused. - --config="filepath" -Sets up various paths of the application's folders and files using a specified configuration file. (where filepath is the path and name of the configuration file to use) For example, "-config=C:\MyAutoScreenCapture.conf" will start the application using the config file named "MyAutoScreenCapture.conf" on the C:\ drive. -``` - -A configuration file that can be used by Auto Screen Capture should, at a minimum, contain the following 11 lines representing key-value pairs that will be parsed by the application upon execution: - -``` -ScreenshotsFolder=screenshots -DebugFolder=!autoscreen\debug -LogsFolder=!autoscreen\logs -CommandFile=!autoscreen\command.txt -ApplicationSettingsFile=application.xml -UserSettingsFile=user.xml -EditorsFile=!autoscreen\editors.xml -RegionsFile=!autoscreen\regions.xml -ScreensFile=!autoscreen\screens.xml -TriggersFile=!autoscreen\triggers.xml -ScreenshotsFile=!autoscreen\screenshots.xml -TagsFile=!autoscreen\tags.xml -``` - -As you can see, each line specifies either the name of a folder or a file. -If only the folder name is given (such as "screenshots") then Auto Screen Capture will parse it as the "screenshots" folder in the same folder where the executed autoscreen.exe binary is found. You can also specify a folder name with a trailing backslash but this isn't necessary. If a file extension is found then Auto Screen Capture will parse the filename as an XML file. You can tell Auto Screen Capture where to find each XML file by specifying absolute or relative (sub)folder paths. - -As of version 2.2.2.3, if the -config command line argument is not provided and a configuration file named "autoscreen.conf" is not found in the same folder as autoscreen.exe then the application will attempt to write out its default "autoscreen.conf" file. The "autoscreen.conf" file explains what each key-value pair represents. - -Examples: - -``` -autoscreen.exe -interval=00:01:00.000 -Starts the application, waits for 1 minute, and then starts taking screenshots for every minute until the application is stopped. - -autoscreen.exe -interval=00:01:00.000 -initial=on -limit=10 -Starts the application, takes initial screenshots, waits for 1 minute, takes the next set of screenshots, waits for 1 minute, takes screenshots etc. until the application is stopped or a limit of 10 "cycles" has been reached. - -autoscreen.exe -interval=00:01:00.000 -initial=on -hideSystemTrayIcon -Starts the application, takes initial screenshots, waits for 1 minute, takes the next set of screenshots, waits for 1 minute, takes screenshots, etc. until the application is stopped. Also hides the system tray icon. - -autoscreen.exe -interval=00:01:00.000 -initial=on -startat=13:30:00 -stopat=21:30:00 -Starts the application's timer at 1:30pm, takes initial screenshots, waits for 1 minute, takes the next set of screenshots, waits for 1 minute, etc. until the application's timer stops at 9:30pm or the application is stopped by the user. - -autoscreen.exe -applicationFocus="firefox" -capture -exit -Starts the application, brings Firefox into the foreground, takes a screenshot of Firefox, and quits. - -** Known Bug ** -An issue with parsing command line arguments was accidentally introduced in version 2.2.1.0 whereby user settings were loaded after they were set by command line arguments. This bug was fixed in version 2.2.3.1 which loads user settings before being set by command line arguments. -``` - - - -Configuration -------------- -Auto Screen Capture's configuration options are varied and very powerful. You can configure the application to run in a single-user environment or in a multi-user environment. - -By default, on the first run, Auto Screen Capture will create its own configuration file named "autoscreen.conf" in the same directory as where the "autoscreen.exe" binary is executed from. - -If you run into any issues with the application you can safely delete the "autoscreen.conf" file and try again. However, some issues may require you to remove the "!autoscreen" directory which is usually used to store the application's various XML files for its internal data system. - -The default configuration file looks like this (the paths, however, might be different for you) ... - -``` -=========================================== autoscreen.conf =========================================== - -# Auto Screen Capture Configuration File -# Use this file to tell the application what folders and files it should utilize. -# Each key-value pair can be the name of a folder or file or a path to a folder or file. -# If only the folder name is given then it will be parsed as the sub-folder of the folder -# where the executed autoscreen.exe binary is located. - -# This is the folder where screenshots will be stored by default. -ScreenshotsFolder=C:\Users\gkendall\Desktop\screenshots - -# If any errors are encountered then you will find them in this folder when DebugMode is enabled. -DebugFolder=C:\Users\gkendall\Desktop\!autoscreen\debug - -# Logs are stored in this folder when either Logging or DebugMode is enabled. -LogsFolder=C:\Users\gkendall\Desktop\!autoscreen\logs - -# This file is monitored by the application for commands issued from the command line while it's running. -CommandFile=C:\Users\gkendall\Desktop\!autoscreen\command.txt - -# The application settings (such as DebugMode). -ApplicationSettingsFile=C:\Users\gkendall\Desktop\!autoscreen\settings\application.xml - -# Your personal settings. -UserSettingsFile=C:\Users\gkendall\Desktop\!autoscreen\settings\user.xml - -# References to image editors. -EditorsFile=C:\Users\gkendall\Desktop\!autoscreen\editors.xml - -# References to regions. -RegionsFile=C:\Users\gkendall\Desktop\!autoscreen\regions.xml - -# References to screens. -ScreensFile=C:\Users\gkendall\Desktop\!autoscreen\screens.xml - -# References to triggers. -TriggersFile=C:\Users\gkendall\Desktop\!autoscreen\triggers.xml - -# References to screenshots. -ScreenshotsFile=C:\Users\gkendall\Desktop\!autoscreen\screenshots.xml - -# References to tags. -TagsFile=C:\Users\gkendall\Desktop\!autoscreen\tags.xml - -# References to schedules. -SchedulesFile=C:\Users\gkendall\Desktop\!autoscreen\schedules.xml - -======================================================================================================= - -``` - -As you can see the configuration file defines the folders and XML files the application should use. - -You can create your own configuration file as long as it has, at a minimum, the following lines ... - -``` -ScreenshotsFolder=screenshots -DebugFolder=!autoscreen\debug -LogsFolder=!autoscreen\logs -CommandFile=!autoscreen\command.txt -ApplicationSettingsFile=!autoscreen\settings\application.xml -UserSettingsFile=!autoscreen\settings\user.xml -EditorsFile=!autoscreen\editors.xml -RegionsFile=!autoscreen\regions.xml -ScreensFile=!autoscreen\screens.xml -TriggersFile=!autoscreen\triggers.xml -ScreenshotsFile=!autoscreen\screenshots.xml -TagsFile=!autoscreen\tags.xml -SchedulesFile=!autoscreen\schedules.xml - -``` - -All of these values represent local paths for the computer that Auto Screen Capture is running on, but it's also possible to use network paths instead. - -By default the "!autoscreen" directory is created, and used, for storing XML files ... - -``` - -application.xml Setup settings for the application (such as Debug Mode and Email) -user.xml Setup settings for the user (such as Interval and Schedule) -command.txt The command file is used to parse commands issued to a running instance -editors.xml Setup the user's image editors to use when editing screenshots -regions.xml Setup regions to capture on the user's computer -screens.xml Setup screens to capture on the user's computer -triggers.xml Setup triggers to control the application's behavior -screenshots.xml List the screenshots that have been captured by the application -tags.xml Setup tags to use in a macro for customizing filenames -schedules.xml Schedules for defining when screen capture sessions start and stop - -``` - -You can use a network path (rather than a local system path). For example, if you have a server named "SKYWALKER" and it's accessible by Auto Screen Capture running from a user's computer you could have that user's settings file be stored on the server ... - -``` -UserSettingsFile=\\SKYWALKER\shared\autoscreen\gkendall-zim\gavin\user_settings.xml -``` - -You can use the %machine% and %user% tags for the value of a configuration key. For example, you could specify the path for the user settings file to be used by any user on any machine on your network and have each user configured to use the same settings stored on a server named "SKYWALKER" ... - -``` -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\user_settings.xml -``` - -Comments can be made in the configuration file with the # symbol. For example, you could write a comment for explaining the value of the "UserSettingsFile" key ... - -``` -# Each user can have their own settings file for the computer they're using -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\user_settings.xml -``` - -You could have an "autoscreen.conf" file on each user's machine and it will read the XML files from the server and store the user's screenshots on the server. - -For example, each user's "autoscreen.conf" file could look like this ... - -``` -=========================================== autoscreen.conf =========================================== - -ScreenshotsFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screenshots -DebugFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\debug -LogsFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\logs -Commandfile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\command.txt -ApplicationSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\settings\application.xml -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\settings\user.xml -EditorsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\editors.xml -RegionsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\regions.xml -ScreensFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screens.xml -TriggersFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\triggers.xml -ScreenshotsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screenshots.xml -TagsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\tags.xml -SchedulesFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\\schedules.xml - -======================================================================================================= -``` - -You don't need to use "autoscreen.conf" as the name for your configuration file. - -If you have a configuration file that you want Auto Screen Capture to use when the application starts you can specify the path and name of the configuration file with the "-config" command line argument. For example, "-config=C:\MyAutoScreenCapture.conf" will start the application using the -config file named "MyAutoScreenCapture.conf" on the C:\ drive. - - - -Data System ------------ -Auto Screen Capture stores its data in various XML files and the location of these XML files are usually defined by the "autoscreen.conf" configuration file. Each XML data file will likely have a root node that shows the version number and codename of the application such as ... -``` - -``` - -Auto Screen Capture's data system isn't very complex, but it's helpful to learn how it works. - -application.xml -This file is for application settings that controls how the application is going -to perform when it's started. Should logging be enabled? What percentage of disk space is acceptable until the application stops taking screenshots? Should the application exit when it encounters an error or continues to run regardless of any errors? A few examples of application setting nodes in application.xml: - -``` - - DebugMode - False - - - Logging - False - - - LowDiskPercentageThreshold - 1 - - - ExitOnError - False - -``` - -user.xml - -This file is for user settings such as screen capture interval, setting a limit on how -many screenshots should be taken, and how many days old screenshots should be kept for. A few examples of user setting nodes in user.xml: - -``` - - ScreenCaptureInterval - 60000 - - - CaptureLimit - 100 - - - KeepScreenshotsForDays - 30 - -``` - -screens.xml -This file defines the screens (monitors or displays) the application should consider -and the properties of each screen, where screenshots should be written, and what -macro should be used when writing screenshot files in a particular image format. -The "component" indicates if it's the active window or a screen. If the component -value is 0 then the application will capture the active window otherwise it will -capture an available screen based on its number; 1, 2, 3, 4, 5, 6, etc. -An example of a screen node in screens.xml: - -``` - - True - 32e576b6-6ca4-4159-9256-11e8a2248d4c - Screen 1 - screenshots\ - %date%\%name%\%date%_%time%.%format% - 1 - JPEG - 100 - True - -``` - -regions.xml - -This file defines the regions you have setup. Like a screen, a region includes a -folder path, macro, image format, JPEG quality, and if the mouse should be included in the image. A region also includes the X, Y, Width, and Height -values to determine the area of the screen it should capture. An example of a region node in regions.xml: - -``` - - True - c0a75b62-70af-4b4e-bba0-74a937cba83e - Region 1 - screenshots\ - %date%\%name%\%date%_%time%.%format% - JPEG - 100 - True - 0 - 0 - 800 - 600 - -``` - -screenshots.xml - -This file stores the references to screenshots that have been taken. These references are useful for the application to know which screen a screenshot is associated with, where each screenshot is located on the file system, when a screenshot was taken, the format of the screenshot, the active window title, process name, and label. The "viewid" identifies the screen or region which the screenshot is associated with. An example of a screenshot node in screenshots.xml: - -``` - - 2.3.0.0 - 32e576b6-6ca4-4159-9256-11e8a2248d4c - 2020-02-03 - - screenshots\2020-02-03\Screen 1\2020-02-03_18-43-21-391.jpeg - JPEG - 1 - {date=2020-02-03}{time=18:43:21.391} - 18:43:21.391 [Auto Screen Capture] - Auto Screen Capture - autoscreen.exe - - -``` - -editors.xml - -This file contains all the image editors to use. -An example of an editor node in editors.xml: - -``` - - Microsoft Paint - C:\Windows\System32\mspaint.exe - %filepath% - - -``` - -tags.xml - -This file determines what tags should be used in a macro when a screenshot is written to an image file. Tags like %date% and %time% dynamically change value depending on the date and time a macro is parsed and an image file is processed. -An example of a tag node in tags.xml: - -``` - - True - %time% - The current time (%time%) - - DateTimeFormat - HH-mm-ss-fff - 6/1/2020 12:00:00 AM - 6/1/2020 11:59:59 AM - 6/1/2020 12:00:00 PM - 6/1/2020 5:59:59 PM - 6/1/2020 6:00:00 PM - 6/1/2020 11:59:59 PM - morning at %hour%-%minute%-%second% - afternoon at %hour%-%minute%-%second% - evening at %hour%-%minute%-%second% - False - -``` - -triggers.xml - -This file contains the various triggers that control the behaviour of the application. -Each trigger is based on a condition to consider and an action to take if the condition is met. An example of a trigger node in triggers.xml: - -``` - - True - Interface Closing -> Exit - InterfaceClosing - ExitApplication - 5/31/2020 9:32:19 PM - - 0 - - -``` - - - -Common Setup Scenarios ----------------------- -You want Auto Screen Capture to not exit when closing its interface window: - 1. Go to the Triggers module and edit the "Interface Closing -> Exit" trigger - 2. In the Action list change the action from "Exit Application" to "Hide Interface" - 3. Change the trigger's name to something like "Hide when interface closing" - 4. Click OK to apply the changes - 5. Now when you close its interface window the application will simply hide its interface - -You want Auto Screen Capture to not show its interface when it starts: - 1. Go to the Triggers module - 2. Click on the green square for the "Application Startup -> Show" trigger to disable the trigger - 3. The next time you run Auto Screen Capture its interface will no longer appear - -You want Auto Screen Capture to start a screen capture session when it starts: - 1. Go to the Triggers module - 2. Add a new trigger with the condition "Application Startup" and the action "Start Screen Capture" - 3. Click OK to create the new trigger - -You want Auto Screen Capture to not show its interface when a screen capture session stops: - 1. Go to the Triggers module - 2. Click on the green square for the "Capture Stopped -> Show" trigger to disable the trigger - 3. When a running screen capture session stops the interface will no longer appear - -You want Auto Screen Capture to take screenshots only when the active window title has particular text: - 1. Go to the Setup module - 2. Scroll down until you see "Active Window Title" - 3. Check the "Capture only if the title contains ..." option - 4. Type in the text field the text you want Auto Screen Capture to consider - -You want Auto Screen Capture to take screenshots of a cropped area of the screen: - 1. Click on the "Configure" drop-down menu and select "Add New Region" (or add it from Regions) - 2. Click on the "Region Select" button and your mouse pointer should turn into crosshairs - 3. Click and hold from the top-left of the region you want to select and drag to the bottom-right - 4. Release the left mouse button when you have the desired area selected - 5. Click OK to add the new region - -You want Auto Screen Capture to use a certain application or script when a screenshot is taken: - 1. Click on the "Edit" drop-down menu and select "Add New Editor ..." - 2. Choose the application or script for the "Application" field (this would be the path to it) - 3. Click OK to add the new editor - 4. Go to the Triggers module - 5. Add a new trigger - 6. Select "Screenshot Taken" from the Condition list - 7. Select "Run Editor" from the Action list - 8. Select the application or script you want to run when a screenshot is taken - 9. Click OK to add the new trigger - - - -Troubleshooting / Debugging ---------------------------- -If things just seem weird or can't be easily explained beyond the normal usage of Auto Screen Capture then you can always run the application in its Debug Mode. You can enable Debug Mode by either running "autoscreen.exe -debug=on" from a command prompt or changing the DebugMode application setting to "True". While the application is in Debug Mode it will write out logging messages to the logs directory and be a lot more verbose with its logging compared to what you usually get with the Logging option enabled. - -If all else fails and you still can't figure out what's going on then the best approach is the classic "Have you tried turning it off and on again?" approach. In the case of Auto Screen Capture that means deleting the "!autoscreen" directory (that was created on the first run according to its config file) and running the application again. Every reference to screens, regions, screenshots, tags, and triggers will be reset to its default state as if Auto Screen Capture was being run for the very first time. - - - -Version History ---------------- -Auto Screen Capture has a long history (10+ years) and it's advanced a lot since the first version. I started writing the code for the application in 2008 after being frustrated that no screen capture program, at the time, could take screenshots at a chosen interval while I was playing a game. - -1.0 -The very first version was a simple desktop application that took screenshots at an interval which could only be specified in milliseconds. It also had a small list of screenshots called "Time Slices". It was uploaded to SourceForge in 2008 and then picked up, and distributed, by Brothersoft. - -2.0 Series -A calendar was introduced and, by version 2.0.5, you could capture up to four displays. The interval was also updated in order for the user to specify hours, minutes, seconds, and milliseconds. - - 2.1 Series ("Clara") -You were now able to define how your files would be named by using a macro and macro tags instead of relying on the application's default filename pattern. The series was codenamed "Clara" because I would be watching Doctor Who (featuring Clara Oswald) while working on Auto Screen Capture :) - - 2.2 Series ("Dalek") -The application took a major step forward with the ability to capture screenshots from multiple displays, filter screenshots, and automatically remove old screenshots. You can control the application's behaviour with Triggers and customize filenames with your own Tags. You can also replace an old "autoscreen.exe" binary with any 2.2 binary and it will upgrade its data system so that old screenshot references are updated with the newest reference schema. - - 2.3 Series ("Boombayah") -Commands can now be issued to a running instance of the application! -These include ... - -``` --interval=hh:mm:ss.nnn --start --startat=hh:mm:ss --stop --stopat=hh:mm:ss --capture --captureat=hh:mm:ss --debug --debug=on --debug=off --log --log=on --log=off --hideSystemTrayIcon --showSystemTrayIcon --label --activeWindowTitle --applicationFocus -``` - -Also introduced is the ability to activate and deactivate screens, regions, schedules, tags, and triggers. You can now set an image editor to be your default editor when using "Capture Now -> Edit". Another amazing enhancement are the multiple schedules that you can create and being able to have better control over the application's workflow with more trigger conditions and trigger actions. The system tray icon turns red if an error has been encountered. The system tray icon turns yellow if a drive being used is running low on available disk space. You can define length of filepaths with the FilepathLengthLimit application setting. It's also much faster at startup (even with a lot of screenshot references being available). -The codename for this version is based on "Boombayah" by BLACKPINK (https://youtu.be/bwmSjveL3Lc) since this was constantly playing in the background while I was writing the code for 2.3.0.0 :) \ No newline at end of file +This is where to view the source code, fork from the project, and submit pull requests. \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index f4fade5e..f5250c40 100644 --- a/changelog.txt +++ b/changelog.txt @@ -24,9 +24,10 @@ Auto Screen Capture by Gavin Kendall - New schedules "Work Schedule - Morning" and "Work Schedule - Afternoon" created on startup just in case people find them useful; they're disabled by default - Any sub-forms that are currently open when a screen capture session is about to start will now close - Screen Capture Status With Label Switcher tool introduced so you can keep an eye on when the next set of screenshots are going to be taken, what label will currently be applied to each screenshot, and have the ability to change the label from the tool instead of needing to open the Apply Label menu from the system tray icon. You can also start and stop a screen capture session from the tool +- Encryptor/Decryptor tool introduced to encrypt and decrypt screenshots, files, and text Codename "Boombayah" -2.3.7.0 Attempting to fix bug with region select not working on multiple displays. +2.3.7.0 Attempting to fix bug with region select not working on multiple displays. (December 8, 2021) 2.3.6.9 Maybe fixed the bug with region select not working on multiple displays. Maybe. I haven't had multiple displays to test this properly for myself due to working from a laptop since March 2020. 2.3.6.8 Fixed bug with "the handle is invalid" to prevent application from crashing when Windows is locked. The check on the invalid handle was accidentally removed in 2.3.4.1 but has now been restored. 2.3.6.7 Fixed bug with emailing screenshots from a one time schedule. diff --git a/help/help-2.rtf b/help/help-2.rtf index 8155777f..2092e089 100644 --- a/help/help-2.rtf +++ b/help/help-2.rtf @@ -7719,7 +7719,8 @@ I love the Blade movies and I don't care what anyone says but the music in the " - "Special Schedule" is now an internal schedule instead of an actual schedule that gets created on startup\par - New schedules "Work Schedule - Morning" and "Work Schedule - Afternoon" created on startup just in case people find them useful; they're disabled by default\par - Any sub-forms that are currently open when a screen capture session is about to start will now close\par -- Screen Capture Status With Label Switcher tool introduced so you can keep an eye on when the next set of screenshots are going to be taken, what label will currently be applied to each screenshot, and have the ability to change the label from the tool instead of needing to open the Apply Label menu from the system tray icon. You can also start and stop a screen capture session from the tool\f0\fs22\par +- Screen Capture Status With Label Switcher tool introduced so you can keep an eye on when the next set of screenshots are going to be taken, what label will currently be applied to each screenshot, and have the ability to change the label from the tool instead of needing to open the Apply Label menu from the system tray icon. You can also start and stop a screen capture session from the tool\par +- Encryptor/Decryptor tool introduced to encrypt and decrypt screenshots, files, and text\f0\fs22\par \i\par \b\i0 2.3 ("Boombayah")\b0\par diff --git a/interface/main/FormMain-Screenshots.cs b/interface/main/FormMain-Screenshots.cs index c09dff72..efb974f1 100644 --- a/interface/main/FormMain-Screenshots.cs +++ b/interface/main/FormMain-Screenshots.cs @@ -1161,15 +1161,15 @@ private void tabControlViews_Selected(object sender, TabControlEventArgs e) { ClearScreenshotMetadataFields(); - // There's no point saving the value if the tab control view was cleared. - if (tabControlViews.SelectedIndex <= 0) - { - return; - } + int screenTabCount = _formScreen.ScreenCollection.Count; + int regionTabCount = _formRegion.RegionCollection.Count; - _config.Settings.User.SetValueByKey("SelectedTabPageIndex", tabControlViews.SelectedIndex); + if (tabControlViews.TabCount == (screenTabCount + regionTabCount + 1)) + { + _config.Settings.User.SetValueByKey("SelectedTabPageIndex", tabControlViews.SelectedIndex); - ShowScreenshotBySlideIndex(); + ShowScreenshotBySlideIndex(); + } } private void buttonRefreshFilterValues_Click(object sender, EventArgs e) diff --git a/readme.txt b/readme.txt index f5ddae35..da59975d 100644 --- a/readme.txt +++ b/readme.txt @@ -7,24 +7,10 @@ Summary ------- Auto Screen Capture is a small and portable screen capture utility for gamers, designers, and testers. -(The information presented in this README refers to version 2.3.3.9) - The application enables you to automatically take screenshots at a chosen interval. For example, you may want to capture the progress of playing through a game's level or track your progress on a long project. -It includes basic region (or area) selection screen capture options from the system tray icon menu -so simply right-clicking on the system tray icon will give you the following options: -Region Select / Clipboard for a region selection and place the screenshot into the clipboard -Region Select / Auto Save for a region selection and save the screenshot on the desktop -Region Select / Edit for a region selection, save the screenshot, and open it in an editor - -You may use any application or script as your default editor rather than Microsoft Paint and, -if you happen to have Snagit Editor installed, then the Snagit Editor will be your default editor. - -You can schedule your automated screen capture sessions by specifying when a session starts and -when a session stops on particular days of the week. - -A calendar is included to help you keep track of what days screenshots were taken. +All the documentation you need is found in the Help section of the application. @@ -46,1283 +32,4 @@ and create support tickets for any bugs encountered with the application. Source Code ----------- https://github.com/gavinkendall/autoscreen -This is where to view the source code, fork from the project, and submit pull requests. - - - -Video Tutorials ---------------- -There are a number of videos on YouTube which demonstrate the features of Auto Screen Capture. - -Getting Started -https://youtu.be/v6ajwNFIV_s - -Quick Demo -https://youtu.be/0Mv9tb2OLss - -The Basics -https://youtu.be/TPeHXZHhZpA - -Hidden Startup -https://youtu.be/U-2WExUUdTw - -Snagit Editor -https://youtu.be/_u3RpDl_Df4 - -Naming Files With Macro Tags -https://youtu.be/6o73hn2pCxg - -Active Window Title -https://youtu.be/rkeXjxOQJwM - -Schedules -https://youtu.be/pwvGvLBttg8 - -Multiple Regions -https://youtu.be/iXPtGo0kInQ - -Region Select / Auto Save -https://youtu.be/woz-D8XKL5I - -Region Select / Edit -https://youtu.be/ryTjdWOei5A - -Command Line Options -https://youtu.be/zLPFJetI_5k - -Labels -https://youtu.be/HzfMWGQyz5E - -Time Range Macro Tag Type -https://youtu.be/DvK5VI6TnHQ - -Application Focus -https://youtu.be/6-dlhW5e29U - - - -Introduction to Modules ------------------------ -When you open Auto Screen Capture's interface you're going to see a Dashboard and -a number of tabs on the left side which are called Modules: -Setup -Screenshots -Screens -Regions -Editors -Schedules -Tags -Triggers - -The Dashboard gives you an overview of all the screens and regions associated with the set -of screenshots selected from the calendar and listed in the Screenshots module. - - - -Modules - Setup ---------------- -The Setup module is divided into a few sections. - -*Interval* -This section sets the interval value for the timer that will be used when screenshots are being -taken during a screen capture session. You can set the number of hours, minutes, seconds, and milliseconds -that Auto Screen Capture should wait until it takes screenshots of your displays. - -For example, an interval of 30 seconds will tell Auto Screen Capture to wait for 30 seconds, -take screenshots, wait for another 30 seconds, take screenshots, wait for another 30 seconds, -take screenshots, wait for another 30 seconds, take screenshots, etc. until the application -is told to stop or the application quits. - -(You can also use the "-interval" command line argument to specify the timer's interval.) - -"Initial Capture" takes an initial round of screenshots before starting the timer -(and then following the timer's set interval). For example, screenshots will be taken first, -then the timer is started for 30 seconds, and then after 30 seconds the screenshots will be taken again -until the application is told to stop or the application quits. - -(You can also use the "-initial" command line argument to enable this option.) - -Setting "limit" tells Auto Screen Capture to keep taking screenshots until a specified number of "cycles" -has been reached. For example, a limit of 3 will be three cycles. - -(You can also use the "-limit" command line argument.) - -This means that screenshots will continue to be taken until Auto Screen Capture reaches the 3rd cycle. - -With an interval set for 30 seconds the application will ... -1) Wait for 30 seconds (which completes the 1st cycle) -2) Take screenshots -3) Wait for another 30 seconds (to complete the 2nd cycle) -4) Take screenshots -5) Wait for another 30 seconds (to complete the 3rd cycle) -6) Stop taking screenshots - -With an interval set for 30 seconds and Initial Capture enabled the application will ... -1) Take screenshots -2) Wait for 30 seconds (which completes the 1st cycle) -3) Take screenshots -4) Wait for another 30 seconds (to complete the 2nd cycle) -5) Take screenshots -6) Wait for another 30 seconds (to complete the 3rd cycle) -7) Stop taking screenshots - -This gives you three cycles. When you look at the Screenshots module you will see three sets of screenshots -taken with a 30 second interval in between each set. - -Enabling the "Apply this label to each screenshot" option and entering a label in the text field will assign -the provided text to each screenshot taken. This is useful for when you want to filter your screenshots by -a particular label. A label can represent whatever you feel is necessary and important. For example, -you could use a label to represent the name of a project you're currently working on. When you start working -on a new project you then change the label to represent the name of the new project. - -Auto Screen Capture will keep track of what screenshots were taken during the time a label was applied. - -As of version 2.2.3.1 a label can be selected from the "Apply Label" system tray icon menu. -This menu will not be available if the session is locked. - -*Active Window Title* -This is where to specify the text to compare against the active window title so that the application only -takes screenshots if the active window title contains the defined text. There are a few ways for the text -comparison to match against the active window title: -Case Sensitive Match -Case Insensitive Match -Regular Expression Match - -Based on what type of match you use will affect how the text in the text field behaves. For example, -you can match on exactly the lowercase and uppercase characters in a specific order or do a logical -comparison with a regular expression (such as black|pink to match on either the words black or pink). - -*Application Focus* -This is where you can choose which application (process) will be forced into the foreground as the active -application when screenshots are taken. Select an application from the list, click "Test" to make sure -the correct application is brought to the foreground, and use the "Refresh" button to refresh the list. -You can also specify, in milliseconds, how long a delay should occur before and after the focus. - -*Region Select / Auto Save* -This section defines the path of the folder and the filename pattern ("macro") for when -you right-click on the system tray icon and click on "Region Select / Auto Save" to -automatically save the captured region of the screen to an image file. By default this -saves a file to the user's desktop - much like doing Command+Shift+4 on a Mac. - -*Security* -You can set a passphrase in order to lock the running screen capture session once the application starts -taking screenshots. - -Enter a phrase that you can remember into the text field and then click on the Lock button. -You will see the following message: -"The passphrase you entered has been securely stored as a SHA-512 hash and your session has been locked." -The entered phrase will be cleared from the text field because your passphrase has now been hashed and -stored in the application's user settings file ("user.xml"). - -The menu items available in the system tray icon will also be limited when a session is locked. -This ensures that the user will not be able to change labels or see when the next screen capture -is going to happen. The system tray icon's status will appear to remain normal/idle even when -screenshots are being taken. The user will still be able to use the "Region Select" menu items. - -When the application is stopped, the interface is shown, or the application is exiting, the user will be -prompted with an "Enter Passphrase" window which has a text field and an Unlock button for the user to -enter the correct passphrase in order to "unlock" the running screen capture session. - -If the user correctly enters the passphrase and unlocks the session the application will continue with -the action that the user initiated prior to receiving the prompt. - -If the user incorrectly enters the passphrase and attempts to unlock the session the application will -continue to prompt for the passphrase until the prompt window is closed. - -(You can also use the "-passphrase" command line argument.) - - - -Modules - Screenshots ---------------------- -This module is a list of the screenshots that were taken on a particular day. You use the calendar to -choose a day and the list will be refreshed based on the chosen day. - -Each entry in this list represents a set of screenshots that were taken for -each screen and/or region at the time the screenshots were taken. - -Each entry in this list also displays the title of the active window at the time screenshots were taken. -Clicking on an entry will show you the screenshots for each screen and/or region. - -The "Keep screenshots for X days" option tells Auto Screen Capture to keep all the image files it -knows about for a specified number of days. - -For example, "Keep screenshots for 30 days" will keep the image files on disk for 30 days. -If any image files are found to be older than 30 days then those files will be automatically deleted. -(Folders containing image files will not be deleted. This is intentional for now; a future version -of Auto Screen Capture will include this functionality when I have time to develop it further.) - -Old screenshots will be deleted every five minutes. New screenshots will be saved every five minutes. -The calendar will also update every five minutes (as of version 2.3.0.0). - -(You can find screenshots data in "!autoscreen\screenshots.xml") - - - -Modules - Screens ------------------ -This module enables you to setup as many screens as you prefer. - -A green square in the list indicates that the Screen is active. -A red square in the list indicates that the Screen is inactive. -You can click on a square to toggle the active/inactive state. - -The green button with the white plus will show you a preview of the currently selected Component -(whether it be the Active Window or an available screen/display/monitor). - -The "Name" text field contains the name of the screen. For a new screen the Name field will -auto-populate with a default name based on the next available screen name that can be used. - -The value of the Name field can be retrieved with the %name% macro tag so it could be used -as part of the screenshot's filename. Therefore any characters that are invalid to Windows -will be stripped out of the name (such as /, :, *, ?, \, <, >, and |). - -The Source drop down list shows you three sources: -Auto Screen Capture -Graphics Card -Operating System - -If you need screenshots of the active window then use the Auto Screen Capture source. - -The Graphics Card source gives you a list of displays using the resolution properties -from each display based on what your graphics card provides. - -The Operating System source gives you a list of displays using the device information -provided by Windows. This may or may not be the same as the list from the Graphics Card source. - -The Component drop down list shows you the available screens with their associated dimensions. - -For example, if you have three displays connected to your computer, then the "Graphics Card" -source and its Component list might show you ... -Screen 1 (1920 x 1080) -Screen 2 (1920 x 1080) -Screen 3 (1680 x 1050) -... depending on what your screen setup is. - -You can change the values for X, Y, Width, and Height. - -From the Image group of controls you can specify the format and quality of the image -that will be used when a screenshot is taken for that particular screen. - -The following image formats are supported: -BMP -EMF -GIF -JPEG -PNG -TIFF -WMF - -The "Include mouse pointer" option, when enabled, will include the mouse pointer in the image of the -screenshot that will be taken for that particular screen. - -The "Preview" image area shows you a preview of the selected Component. - -The "Folder" text field refers to the directory in which screenshots will be written to. -You can use the backslash character (\) as part of your folder structure to define sub-folders. -An ending backslash character is recommended, but it will be included automatically upon save. - -The "Macro" text field refers to the macro used that defines how each individual file is named. -Any characters invalid to Windows will be stripped out (such as /, :, *, ?, <, >, and |). -You can use the backslash character (\) as part of your macro to define sub-folders. - -The button with the red cross is used to remove a selected number of screens in the list. -Select the screens you want to remove and then click the button to remove the selected screens. - -The button with the cog will open the Change Screen window enabling you to change properties. - -(The data used for screens can be found in "!autoscreen\screens.xml") - - - -Modules - Regions ------------------ -This module enables you to setup as many regions as you prefer. - -A green square in the list indicates that the Region is active. -A red square in the list indicates that the Region is inactive. -You can click on a square to toggle the active/inactive state. - -The green button with the white plus will show you, by default, a preview of a region at position 0,0 -with the width set to 800 and the height set to 600. - -The "Name" text field contains the name of the region. For a new region the Name field will -auto-populate with a default name based on the next available region name that can be used. - -The value of the Name field can be retrieved with the %name% macro tag so it could be used -as part of the screenshot's filename. Therefore any characters that are invalid to Windows -will be stripped out of the name (such as /, :, *, ?, \, <, >, and |). - -The "Region Select" button is used to acquire the X, Y, Width, and Height values by -using a mouse-driven region selection on the screen. - -Change the X and Y values in the "Position" section to adjust the region's position. -X = 0 and Y = 0 usually represents the corner of the primary display. You can also use negative -values to adjust the position of the region beyond the boundaries of the available screens. - -Change the Width and Height values in the "Size" section to adjust the region's size. - -The "Image" section defines the image format and JPEG quality. - -The "Include mouse pointer" option, when enabled, will include the mouse pointer in the image of the -screenshot that will be taken for that particular region. - -You can import the X, Y, Width, and Height values from an available screen by selecting a -screen from the "Import Screen Dimensions" drop-down control. - -The "Preview" image area shows you a preview of the specified region using the given X, Y, Width, -and Height values. - -The "Folder" text field refers to the directory in which screenshots will be written to. -You can use the backslash character (\) as part of your folder structure to define sub-folders. -An ending backslash character is recommended, but it will be included automatically upon save. - -The "Macro" text field refers to the macro used that defines how each individual file is named. -Any characters invalid to Windows will be stripped out (such as /, :, *, ?, <, >, and |). -You can use the backslash character (\) as part of your macro to define sub-folders. - -The button with the red cross is used to remove a selected number of regions in the list. -Select the regions you want to remove and then click the button to remove the selected regions. - -The button with the cog will open the Change Region window enabling you to change properties. - -(The data used for regions can be found in "!autoscreen\regions.xml") - - - -Modules - Editors ------------------ -This module enables you to setup your favourite image editors, scripts, or executable applications. - -The green button with the white plus will show a window where you can specify the name, application, -and application arguments for the new image editor that you're adding to the list of editors. - -The "Name" text field contains the name of the editor. You can name it however you want. - -The "Application" text field contains the path where the application binary is located. -For example, "C:\Windows\System32\mspaint.exe" is the path to Microsoft Paint. - -(Since version 2.2.1.1 you can also use batch scripts (*.bat) and PowerShell scripts (*.ps1) -as the editor. In fact, you can use any type of file for an editor.) - -The "Arguments" text field contains the application's command line arguments that will be used -during the execution of the application. The %filepath% tag represents the filepath of the -screenshot's image file. This could be the filepath of the screenshot that you're wanting to -edit via the "Edit" menu of the screenshot you're viewing from the Screenshots module or -the filepath of the last screenshot that was taken when a Trigger uses a specified Editor -to open the screenshot in the editor. This field is optional so you can leave it empty. - -The "Default" checkbox sets the editor as the default editor to be used when you select -"Capture Now -> Edit" or any of the Region Select options from the system tray icon's menu. - -The button with the red cross button is used to remove a selected number of editors in the list. -Select the editors you want to remove and then click the button to remove the selected editors. - -The button with the cog will open the Change Editor window enabling you to change properties. - -You can create a trigger to run a particular editor when a screenshot is taken. -For example, WinSCP could be setup as an Editor with ... -Name: WinSCP -Application: C:\Users\gkendall\AppData\Local\Programs\WinSCP\WinSCP.exe -Arguments: /command "open sftp://sftpu:password@MYSERVER/" "put %filepath% MyScreenshot.jpeg" "exit" -... and then a trigger setup as ... -Name: Take Screenshot and SFTP -Condition: Screenshot Taken -Action: Run Editor -Editor: WinSCP - -(The data used for editors can be found in "!autoscreen\editors.xml") - - - -Modules - Schedules ------------------- -This module gives you the ability to setup various schedules so you could have a schedule that -takes screenshots during your working hours in the morning and another schedule that takes -screenshots during your working hours in the afternoon. - -A green square in the list indicates that the Schedule is active. -A red square in the list indicates that the Schedule is inactive. -You can click on a square to toggle the active/inactive state. - -A schedule can either take screenshots of screens and regions for a single cycle ("One Time") -or start the timer and take screenshots from a starting time until an ending time is reached -(with the "Period" mode) at a certain interval ("hours:minutes:seconds.milliseconds"). - -One Time -With this mode you specify the time when a set of screenshots are taken. This happens only once -and at the exact time specified. - -Period -This mode specifies the time when the screen capture timer should start running and when the -screen capture timer should stop running. You can define an interval for each individual -schedule. The interval should be defined in hours, minutes, seconds, and milliseconds. -The numeric controls represent the hours, minutes, seconds, and milliseconds of the interval. -For example, "0:10:0.000" or 0 10 0 000 in the interface represents a 10 minute interval. -The interval defined in a schedule takes priority over the main interval defined in "Setup". - -Days -A schedule can run on a particular day of the week so you can have a schedule to take -screenshots between the hours of 3pm and 5pm only on Saturdays. - -*** IMPORTANT NOTES ABOUT SCHEDULES *** -The application needs to be idle for a schedule to start. -Please make sure that the application's screen capture status says -"Ready to start taking screenshots". This is because each schedule will start -the application's screen capture timer at the specified start time so do not -click on the "Start Screen Capture" button or select the "Start Screen Capture" -option from the system tray icon's menu otherwise you will be starting the timer -before your schedule can start the timer. Simply wait for the scheduled start time. - -A schedule cannot start if the screen capture timer is already running so if you -have a short schedule in the middle of a long schedule then the long schedule will -take priority over the short schedule. For example, if you have ... -Schedule 1 starting at 9:00am and stopping at 5:00pm at interval 0:5:0.000 (5 minutes) -... and ... -Schedule 2 starting at 10:00am and stopping at 3:00pm at interval 0:0:10.000 (10 seconds) -... the duration of Schedule 1 will take priority over the duration of Schedule 2. -This also means that the 0:5:0.000 (five minute) interval will continue to be used. - -I recommend keeping your schedules as separate as possible so you don't mix them. -Have each schedule in its own duration or time range without overlapping another -schedule's duration or time range. - -Special Schedule -As you may see in the Notes section ... -"This schedule is used for the command line arguments -captureat, -startat, and -stopat." - -The Special Schedule remains inactive until the following command line arguments are used: --captureat=00:00:00 --startat=00:00:00 --stopat=00:00:00 - -If you open a Command Prompt or PowerShell terminal, navigate to where autoscreen.exe -is located, and issue a -captureat command line argument for 3:30pm ... -autoscreen.exe -captureat=15:30:00 -This will set the Special Schedule in "One Time" mode to take screenshots at 3:30pm. - -Now issue a -startat and -stopat commands for a "Period" schedule ... -autoscreen.exe -startat=15:45:00 -stopat=16:00:00 -This will set the Special Schedule in "Period" mode to start taking screenshots at 3:45pm -and stop taking screenshots at 4:00pm. - -You may also notice that the Special Schedule will use the current day so be aware that -if you executed these commands on a Wednesday then the Special Schedule will continue -to use the defined start time and stop time every Wednesday until you deactivate it -(you can click on the green square to make it a red square or edit the schedule and -simply uncheck the "Active" checkbox). - -Please do not delete the Special Schedule. You can if you want to but it will be created -every time you use the -captureat, -startat, and/or -stopat command line arguments. - -(The data used for schedules can be found in "!autoscreen\schedules.xml") - - - -Modules - Tags --------------- -This module enables you to setup macro tags. - -A green square in the list indicates that the Tag is active. -A red square in the list indicates that the Tag is inactive. -You can click on a square to toggle the active/inactive state. - -A tag is a special value, surrounded by the percentage character (%), which gives you the ability -to acquire certain information that can be used in your macro for the filename pattern. - -The green button with the white plus will display a dialog box in order to create a new tag. - -The "Name" text field is for the tag's name. This is a required field, but make sure to include -the percentage character ("%") at the beginning and the end of the tag name. - -The "Type" drop-down control defines the type of tag being used. There are 11 tag types: -Screen Name The "Name" of the screen or region -Screen Number The screen's associated number (such as 1, 2, 3, 4) -Image Format The format of the image used for the screen -Screen Capture Cycle Count Number of screen capture cycles during the current screen capture session -Active Window Title The title of the active window -Date/Time Format A value representing a date/time format (such as "yyyy-MM-dd HH-mm-ss-fff") -User The name of the logged in user -Machine The name of the machine being used -Time Range A specified value based on a time range -Date/Time Format Expression A value representing a date/time tag expression (such as "{day-1}") -Quarter Year A number representing the current quarter of the current year - -(The Date/Time Format Expression type is simply the new name for the Date/Time Format Function type previously -used by Auto Screen Capture. The functionality of this type remains the same as before.) - -If you select either the Date/Time Format or Date/Time Format Expression type then the Date/Time Format Value -text field will be available to enter a value. This value can be a date/time format (such as "HH-mm-ss") -to represent the current date/time as a defined pattern or a date/time tag expression (such as "{month-1}") -which represents the current date/time modified by an operator and an applied amount of time. - -As of version 2.3.2.5 you can use date/time format in a tag expression. For example, the value of the tag -expression can be "{day-1}[yyyy-MM-dd]" to show the previous day in the format yyyy-MM-dd. - -If you select the Time Range type then the Time Range group of controls will be available. This includes -four sets of controls that enable you to specify the start time, end time, and value of four time ranges. -The macro for each time range can be text and/or a series of macro tags. - -Macro tags available by default are ... -%name% Screen Name -%screen% Screen Number -%format% Image Format -%date% Date/Time Format Current date as "yyyy-MM-dd" -%time% Date/Time Format Current time as "HH-mm-ss-fff" -%year% Date/Time Format Current year as "yyyy" -%month% Date/Time Format Current month as "MM" -%day% Date/Time Format Current day as "dd" -%hour% Date/Time Format Current hour as "HH" -%minute% Date/Time Format Current minute as "mm" -%second% Date/Time Format Current second as "ss" -%millisecond% Date/Time Format Current millisecond as "fff" -%lastyear% Date/Time Format Expression Current year minus 1 with expression "{year-1}" -%lastmonth% Date/Time Format Expression Current month minus 1 with expression "{month-1}" -%yesterday% Date/Time Format Expression Current day minus 1 with expression "{day-1}[yyyy-MM-dd]" -%tomorrow% Date/Time Format Expression Current day plus 1 with expression "{day+1}[yyyy-MM-dd]" -%6hoursbehind% Date/Time Format Expression Current hour minus 6 with expression "{hour-6}[yyyy-MM-dd_HH-mm-ss.fff]" -%6hoursahead% Date/Time Format Expression Current hour plus 6 with expression "{hour+6}[yyyy-MM-dd_HH-mm-ss.fff]" -%count% Screen Capture Cycle Count -%user% User -%machine% Machine -%title% Active Window Title -%timerange% Time Range -%quarteryear% Quarter Year - -You can add, edit, or remove tags. Each tag needs a tag name and a tag type. - -You may also need to specify the date/time format value and/or the time range values -based on the chosen tag type. - -So, typically, any date/time value would be associated with the Date/Time Format type. -This means that you would need to specify a date/time format value which can include ... -fff for milliseconds -ss for seconds -mm for minutes -HH for hours -dd for days -MM for months -yyyy for years -For example, a date/time format value of "yyyy-MM-dd HH-mm-ss" would be translated -by your Date/Time Format tag as the current year, month, day, hour, minute, and second. - -A special type of date/time format tag called a date/time format expression tag -(or just "date/time tag expression") can be used to define an applied amount of time -either behind or ahead the current date/time. - -A date/time expression tag is specified by a date/time part -(year, month, day, hour, minute, or second), an operator (either "-" or "+"), -and the amount of time applied. -For example ... -{year-1} for last year -{day-1} for yesterday -{day+1} for tomorrow -{month-2} for 2 months ago -{hour+6} for 6 hours ahead - -You can also specify the date/time format as part of a date/time tag expression for when -a particular date/time format needs to be used rather than the default date/time format. -For example ... -{day-1} -... returns the value of day ("dd") subtracted by 1 for the previous day -(so on January 1st 2021 this will return "31") but ... -{day-1}[yyyyMMdd] -... returns the entire value of year ("yyyy"), month ("MM"), and day ("dd") subtracted -by 1 for the previous day in the date/time format of "yyyyMMdd" so you have more context -as to what the previous day represents in terms of its related month and year -(so on January 1st 2021 this will return "20201231"). - -As of version 2.3.0.0, Date/Time Format Function was renamed to Date/Time Format Expression -to better define its purpose. - -(The data used for tags can be found in "!autoscreen\tags.xml") - - - -Modules - Triggers ------------------- -This module enables you to setup triggers. - -A green square in the list indicates that the Trigger is active. -A red square in the list indicates that the Trigger is inactive. -You can click on a square to toggle the active/inactive state. - -A trigger performs a specified Action based on a specified Condition to control the behaviour -and workflow of Auto Screen Capture. For example, you could setup a trigger to open your -favourite image editor whenever a screenshot is taken. - -The following conditions are available: -ApplicationStartup Perform an action when Auto Screen Capture starts -ApplicationExit Perform an action when Auto Screen Capture exits -InterfaceClosing Perform an action when the interface is closing -InterfaceHiding Perform an action when the interface is hiding -InterfaceShowing Perform an action when the interface is showing -LimitReached Perform an action when the Limit has been reached -ScreenCaptureStarted Perform an action when a screen capture session starts -ScreenCaptureStopped Perform an action when the running session is stopped -ScreenshotTaken Perform an action when a screenshot is taken -Date/Time Perform an action when a defined date and time has been met -Time Perform an action when a defined time has been met on a daily basis -Day/Time Perform an action when a defined day and time has been met - -The following actions are available: -ExitApplication Quits Auto Screen Capture -HideInterface Hides the interface -RunEditor Runs (executes) a specified Editor -ShowInterface Shows the interface -StartScreenCapture Starts a screen capture session -StopScreenCapture Stops the currently running screen capture session -EmailScreenshot Uses the email settings in "application.xml" to email - the last screenshot image that was captured -Set Screen Capture Interval Sets (or changes) the screen capture interval to the defined interval -Activate Screen Turns on (sets the "Active" toggle state to on for) a Screen -Activate Region Turns on (sets the "Active" toggle state to on for) a Region -Activate Schedule Turns on (sets the "Active" toggle state to on for) a Schedule -Activate Tag Turns on (sets the "Active" toggle state to on for) a Tag -Activate Trigger Turns on (sets the "Active" toggle state to on for) a Trigger -Deactivate Screen Turns off (sets the "Active" toggle state to off for) a Screen -Deactivate Region Turns off (sets the "Active" toggle state to off for) a Region -Deactivate Schedule Turns off (sets the "Active" toggle state to off for) a Schedule -Deactivate Tag Turns off (sets the "Active" toggle state to off for) a Tag -Deactivate Trigger Turns off (sets the "Active" toggle state to off for) a Trigger - -The following triggers are created by default on the first run of Auto Screen Capture: -Condition = ApplicationStartup -> Action = ShowInterface -Condition = ScreenCaptureStarted -> Action = HideInterface -Condition = ScreenCaptureStopped -> Action = ShowInterface -Condition = InterfaceClosing -> Action = ExitApplication -Condition = LimitReached -> Action = StopScreenCapture - -You may want to disable/deactivate or remove/delete any triggers that show the interface if you're -wanting Auto Screen Capture to not show its interface for certain situations. - -(The data used for triggers can be found in "!autoscreen\triggers.xml") - - - -System Tray Icon ----------------- -Auto Screen Capture normally runs in your system tray and its icon will be displayed to show -the current status of the application. If the icon is green then screenshots are being taken. -If the icon is red then there is likely an error which the application has encountered. - -You can right-click the system tray icon to bring up a menu. This menu has the following items: -About Auto Screen Capture Shows information about the developer and the app's license -Show Interface Shows the main interface of the application -Hide Interface Hides the main interface of the application -Show Screen Capture Status Shows a small floating window displaying the screen capture status -Start Screen Capture Starts a screen capture session -Stop Screen Capture Stops a running screen capture session -Capture Now / Archive Takes a set of screenshots and saves them -Capture Now / Edit Takes a set of screenshots, saves them, and edits them -Region Select / Clipboard Select an area and send the screenshot to the clipboard -Region Select / Auto Save Select an area and auto save the screenshot -Region Select / Edit Select an area, auto save the screenshot, and edit it -Apply Label Enables you to apply a label to each screenshot taken -Exit Quits the application - -(You can hide the system tray icon with the "-hideSystemTrayIcon" command line argument -and show it with the "-showSystemTrayIcon" command line argument.) - - - -Command Line Arguments ----------------------- -You can run the Auto Screen Capture "autoscreen.exe" binary with command line arguments. -Simply running "autoscreen.exe" without arguments will open Auto Screen Capture and not -necessarily start a screen capture session unless a trigger is setup to do so, the -start -command has been given, or the AutoStartFromCommandLine setting is enabled. -("AutoStartFromCommandLine" will be enabled if you're upgrading from a version that's -older than version 2.3.0.0 to emulate the old behaviour of running from the command line) - -As of version 2.3.0.0 most commands can be given to Auto Screen Capture while it's running. -This gives you the opportunity to control a running instance of the application. - --start -Starts the timer and begins running a screen capture session. -("AutoStartFromCommandLine" will be ignored) - --stop -Stops the timer and stops the currently running screen capture session. -("AutoStartFromCommandLine" will be ignored) - --exit -Quits Auto Screen Capture. - --capture -Takes screenshots in a single capture cycle at the time the command is given. - --interval=hh:mm:ss.nnn -Sets the timer's interval to take a screenshot of each screen and region -every hour (hh), minute (mm), second (ss), and millisecond (nnn). -For example, "-interval=02:30:10.000" sets the timer's interval to take screenshots -every 2 hours, 30 minutes, and 10 seconds. - --log -Toggles logging. As of version 2.3.0.0 this command toggles logging on and off rather than -simply enabling (or turning on) logging so be aware how frequently you use this command. -For example, if logging is currently off then using "-log" will turn logging on and using "-log" -again will turn it off. All log files, by default, are stored in the "!autoscreen\logs" folder -(and this folder path is configurable as of version 2.2.1.0). As of version 2.3.0.0 you can issue -this command during a running instance of Auto Screen Capture. - --log=on -Enables logging. - --log=off -Disables logging. - --debug -Toggles "DebugMode". When enabled this command logs all debugging information. -Be very careful when enabling DebugMode because it's basically verbose logging. -I introduced this command line argument in 2.0.6, removed it in 2.2.0.7, and re-introduced it in 2.2.1.0 :) - --debug=on -Turns on "DebugMode". - --debug=off -Turns off "DebugMode". - --showSystemTrayIcon -Show the application's system tray icon. - --hideSystemTrayIcon -Hides the application's system tray icon. - --initial -Toggles "Initial Capture". -When enabled this command takes a screenshot of each screen and region before starting the timer. - --initial=on -Turns on "Initial Capture". - --initial=off -Turns off "Initial Capture". - --captureat=hh:mm:ss -Takes screenshots at the specified time. - --startat=hh:mm:ss -Schedules the application to start taking screenshots at a specified time. - --stopat=hh:mm:ss -Schedules the application to stop taking screenshots at a specified time. - --limit=x -Stops taking screenshots when the specified limit has been reached where x is any number. -For example, "-limit=10" will take screenshots for 10 cycles and then stop after the 10th cycle. -Each cycle represents taking screenshots of every screen and region for a single tick of the timer. - --passphrase="x" -Sets a word or a series of words to be used as the passphrase for challenging the user when the -application is going to show its interface, stop taking screenshots, or exit ensuring that the application -continues taking screenshots until the passphrase is entered. -This locks the screen capture session until the passphrase is successfully entered to unlock the session. -The passphrase is stored as a SHA-512 hash. - --label="x" -Applies a label to each screenshot given the provided text. - --activeWindowTitle="x" -Sets the text for Active Window Title so that a screenshot will be taken only if the text -matches with the title of the active window. - --applicationFocus="x" -Sets the process name of the application which will be brought to the foreground -during a screen capture session. As of 2.3.3.5 this will also bring the specified application into focus. - --applicationFocusDelayBefore=x -The delay, in milliseconds, to wait before the chosen application is force focused. - --applicationFocusDelayAfter=x -The delay, in milliseconds, to wait after the chosen application is force focused. - --config="filepath" -Sets up various paths of the application's folders and files using a specified configuration file. -(where filepath is the path and name of the configuration file to use) -For example, "-config=C:\MyAutoScreenCapture.conf" will start the application using the -config file named "MyAutoScreenCapture.conf" on the C:\ drive. - -A configuration file that can be used by Auto Screen Capture should, at a minimum, -contain the following 11 lines representing key-value pairs that will be parsed by the -application upon execution: -ScreenshotsFolder=screenshots -DebugFolder=!autoscreen\debug -LogsFolder=!autoscreen\logs -CommandFile=!autoscreen\command.txt -ApplicationSettingsFile=application.xml -UserSettingsFile=user.xml -EditorsFile=!autoscreen\editors.xml -RegionsFile=!autoscreen\regions.xml -ScreensFile=!autoscreen\screens.xml -TriggersFile=!autoscreen\triggers.xml -ScreenshotsFile=!autoscreen\screenshots.xml -TagsFile=!autoscreen\tags.xml - -As you can see, each line specifies either the name of a folder or a file. -If only the folder name is given (such as "screenshots") then Auto Screen Capture will parse it -as the "screenshots" folder in the same folder where the executed autoscreen.exe binary is found. -You can also specify a folder name with a trailing backslash but this isn't necessary. -If a file extension is found then Auto Screen Capture will parse the filename as an XML file. -You can tell Auto Screen Capture where to find each XML file by specifying absolute or -relative (sub)folder paths. - -As of version 2.2.2.3, if the -config command line argument is not provided and a configuration -file named "autoscreen.conf" is not found in the same folder as autoscreen.exe then the application -will attempt to write out its default "autoscreen.conf" file. -The "autoscreen.conf" file explains what each key-value pair represents. - -Examples: -autoscreen.exe -interval=00:01:00.000 -Starts the application, waits for 1 minute, and then starts taking screenshots for every minute -until the application is stopped. - -autoscreen.exe -interval=00:01:00.000 -initial=on -limit=10 -Starts the application, takes initial screenshots, waits for 1 minute, takes the next set of screenshots, -waits for 1 minute, takes screenshots etc. until the application is stopped or -a limit of 10 "cycles" has been reached. - -autoscreen.exe -interval=00:01:00.000 -initial=on -hideSystemTrayIcon -Starts the application, takes initial screenshots, waits for 1 minute, takes the next set of screenshots, -waits for 1 minute, takes screenshots, etc. until the application is stopped. -Also hides the system tray icon. - -autoscreen.exe -interval=00:01:00.000 -initial=on -startat=13:30:00 -stopat=21:30:00 -Starts the application's timer at 1:30pm, takes initial screenshots, waits for 1 minute, -takes the next set of screenshots, waits for 1 minute, etc. until the application's timer -stops at 9:30pm or the application is stopped by the user. - -autoscreen.exe -applicationFocus="firefox" -capture -exit -Starts the application, brings Firefox into the foreground, takes a screenshot of Firefox, and quits. - -** Known Bug ** -An issue with parsing command line arguments was accidentally introduced in version 2.2.1.0 -whereby user settings were loaded after they were set by command line arguments. This bug was -fixed in version 2.2.3.1 which loads user settings before being set by command line arguments. - - - -Configuration -------------- -Auto Screen Capture's configuration options are varied and very powerful. You can configure the -application to run in a single-user environment or in a multi-user environment. - -By default, on the first run, Auto Screen Capture will create its own configuration file named -"autoscreen.conf" in the same directory as where the "autoscreen.exe" binary is executed from. - -If you run into any issues with the application you can safely delete the "autoscreen.conf" file -and try again. However, some issues may require you to remove the "!autoscreen" directory which is -usually used to store the application's various XML files for its internal data system. - -The default configuration file looks like this (the paths, however, might be different for you) ... -=========================================== autoscreen.conf =========================================== -# Auto Screen Capture Configuration File -# Use this file to tell the application what folders and files it should utilize. -# Each key-value pair can be the name of a folder or file or a path to a folder or file. -# If only the folder name is given then it will be parsed as the sub-folder of the folder -# where the executed autoscreen.exe binary is located. - -# This is the folder where screenshots will be stored by default. -ScreenshotsFolder=C:\Users\gkendall\Desktop\screenshots - -# If any errors are encountered then you will find them in this folder when DebugMode is enabled. -DebugFolder=C:\Users\gkendall\Desktop\!autoscreen\debug - -# Logs are stored in this folder when either Logging or DebugMode is enabled. -LogsFolder=C:\Users\gkendall\Desktop\!autoscreen\logs - -# This file is monitored by the application for commands issued from the command line while it's running. -CommandFile=C:\Users\gkendall\Desktop\!autoscreen\command.txt - -# The application settings (such as DebugMode). -ApplicationSettingsFile=C:\Users\gkendall\Desktop\!autoscreen\settings\application.xml - -# Your personal settings. -UserSettingsFile=C:\Users\gkendall\Desktop\!autoscreen\settings\user.xml - -# References to image editors. -EditorsFile=C:\Users\gkendall\Desktop\!autoscreen\editors.xml - -# References to regions. -RegionsFile=C:\Users\gkendall\Desktop\!autoscreen\regions.xml - -# References to screens. -ScreensFile=C:\Users\gkendall\Desktop\!autoscreen\screens.xml - -# References to triggers. -TriggersFile=C:\Users\gkendall\Desktop\!autoscreen\triggers.xml - -# References to screenshots. -ScreenshotsFile=C:\Users\gkendall\Desktop\!autoscreen\screenshots.xml - -# References to tags. -TagsFile=C:\Users\gkendall\Desktop\!autoscreen\tags.xml - -# References to schedules. -SchedulesFile=C:\Users\gkendall\Desktop\!autoscreen\schedules.xml -======================================================================================================= - -As you can see the configuration file defines the folders and XML files the application should use. - -You can create your own configuration file as long as it has, at a minimum, the following lines ... -ScreenshotsFolder=screenshots -DebugFolder=!autoscreen\debug -LogsFolder=!autoscreen\logs -CommandFile=!autoscreen\command.txt -ApplicationSettingsFile=!autoscreen\settings\application.xml -UserSettingsFile=!autoscreen\settings\user.xml -EditorsFile=!autoscreen\editors.xml -RegionsFile=!autoscreen\regions.xml -ScreensFile=!autoscreen\screens.xml -TriggersFile=!autoscreen\triggers.xml -ScreenshotsFile=!autoscreen\screenshots.xml -TagsFile=!autoscreen\tags.xml -SchedulesFile=!autoscreen\schedules.xml - -All of these values represent local paths for the computer that Auto Screen Capture is running on, but -it's also possible to use network paths instead. - -By default the "!autoscreen" directory is created, and used, for storing XML files ... -application.xml Setup settings for the application (such as Debug Mode and Email) -user.xml Setup settings for the user (such as Interval and Schedule) -command.txt The command file is used to parse commands issued to a running instance -editors.xml Setup the user's image editors to use when editing screenshots -regions.xml Setup regions to capture on the user's computer -screens.xml Setup screens to capture on the user's computer -triggers.xml Setup triggers to control the application's behavior -screenshots.xml List the screenshots that have been captured by the application -tags.xml Setup tags to use in a macro for customizing filenames -schedules.xml Schedules for defining when screen capture sessions start and stop - -You can use a network path (rather than a local system path). For example, if you have a server -named "SKYWALKER" and it's accessible by Auto Screen Capture running from a user's computer you -could have that user's settings file be stored on the server ... -UserSettingsFile=\\SKYWALKER\shared\autoscreen\gkendall-zim\gavin\user_settings.xml - -You can use the %machine% and %user% tags for the value of a configuration key. For example, you could -specify the path for the user settings file to be used by any user on any machine on your network and -have each user configured to use the same settings stored on a server named "SKYWALKER" ... -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\user_settings.xml - -Comments can be made in the configuration file with the # symbol. -For example, you could write a comment for explaining the value of the "UserSettingsFile" key ... -# Each user can have their own settings file for the computer they're using -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\user_settings.xml - -You could have an "autoscreen.conf" file on each user's machine and it will read the XML files -from the server and store the user's screenshots on the server. - -For example, each user's "autoscreen.conf" file could look like this ... -=========================================== autoscreen.conf =========================================== -ScreenshotsFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screenshots -DebugFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\debug -LogsFolder=\\SKYWALKER\shared\autoscreen\%machine%\%user%\logs -Commandfile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\command.txt -ApplicationSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\settings\application.xml -UserSettingsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\settings\user.xml -EditorsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\editors.xml -RegionsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\regions.xml -ScreensFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screens.xml -TriggersFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\triggers.xml -ScreenshotsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\screenshots.xml -TagsFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\tags.xml -SchedulesFile=\\SKYWALKER\shared\autoscreen\%machine%\%user%\\schedules.xml -======================================================================================================= - -You don't need to use "autoscreen.conf" as the name for your configuration file. - -If you have a configuration file that you want Auto Screen Capture to use when the application starts -you can specify the path and name of the configuration file with the "-config" command line argument. -For example, "-config=C:\MyAutoScreenCapture.conf" will start the application using the -config file named "MyAutoScreenCapture.conf" on the C:\ drive. - - - -Data System ------------ -Auto Screen Capture stores its data in various XML files and the location of these XML files are -usually defined by the "autoscreen.conf" configuration file. Each XML data file will likely have -a root node that shows the version number and codename of the application such as ... - - -Auto Screen Capture's data system isn't very complex, but it's helpful to learn how it works. - -application.xml -This file is for application settings that controls how the application is going -to perform when it's started. Should logging be enabled? What percentage of disk space -is acceptable until the application stops taking screenshots? Should the application -exit when it encounters an error or continues to run regardless of any errors? -A few examples of application setting nodes in application.xml: - - DebugMode - False - - - Logging - False - - - LowDiskPercentageThreshold - 1 - - - ExitOnError - False - - -user.xml -This file is for user settings such as screen capture interval, setting a limit on how -many screenshots should be taken, and how many days old screenshots should be kept for. -A few examples of user setting nodes in user.xml: - - ScreenCaptureInterval - 60000 - - - CaptureLimit - 100 - - - KeepScreenshotsForDays - 30 - - -screens.xml -This file defines the screens (monitors or displays) the application should consider -and the properties of each screen, where screenshots should be written, and what -macro should be used when writing screenshot files in a particular image format. -The "component" indicates if it's the active window or a screen. If the component -value is 0 then the application will capture the active window otherwise it will -capture an available screen based on its number; 1, 2, 3, 4, 5, 6, etc. -An example of a screen node in screens.xml: - - True - 32e576b6-6ca4-4159-9256-11e8a2248d4c - Screen 1 - screenshots\ - %date%\%name%\%date%_%time%.%format% - 1 - JPEG - 100 - True - - -regions.xml -This file defines the regions you have setup. Like a screen, a region includes a -folder path, macro, image format, JPEG quality, and if the mouse -should be included in the image. A region also includes the X, Y, Width, and Height -values to determine the area of the screen it should capture. -An example of a region node in regions.xml: - - True - c0a75b62-70af-4b4e-bba0-74a937cba83e - Region 1 - screenshots\ - %date%\%name%\%date%_%time%.%format% - JPEG - 100 - True - 0 - 0 - 800 - 600 - - -screenshots.xml -This file stores the references to screenshots that have been taken. These references -are useful for the application to know which screen a screenshot is associated with, -where each screenshot is located on the file system, when a screenshot was taken, -the format of the screenshot, the active window title, process name, and label. -The "viewid" identifies the screen or region which the screenshot is associated with. -An example of a screenshot node in screenshots.xml: - - 2.3.0.0 - 32e576b6-6ca4-4159-9256-11e8a2248d4c - 2020-02-03 - - screenshots\2020-02-03\Screen 1\2020-02-03_18-43-21-391.jpeg - JPEG - 1 - {date=2020-02-03}{time=18:43:21.391} - 18:43:21.391 [Auto Screen Capture] - Auto Screen Capture - autoscreen.exe - - - -editors.xml -This file contains all the image editors to use. -An example of an editor node in editors.xml: - - Microsoft Paint - C:\Windows\System32\mspaint.exe - %filepath% - - - -tags.xml -This file determines what tags should be used in a macro when a screenshot is written -to an image file. Tags like %date% and %time% dynamically change value depending -on the date and time a macro is parsed and an image file is processed. -An example of a tag node in tags.xml: - - True - %time% - The current time (%time%) - - DateTimeFormat - HH-mm-ss-fff - 6/1/2020 12:00:00 AM - 6/1/2020 11:59:59 AM - 6/1/2020 12:00:00 PM - 6/1/2020 5:59:59 PM - 6/1/2020 6:00:00 PM - 6/1/2020 11:59:59 PM - morning at %hour%-%minute%-%second% - afternoon at %hour%-%minute%-%second% - evening at %hour%-%minute%-%second% - False - - -triggers.xml -This file contains the various triggers that control the behaviour of the application. -Each trigger is based on a condition to consider and an action to take if the condition is met. -An example of a trigger node in triggers.xml: - - True - Interface Closing -> Exit - InterfaceClosing - ExitApplication - 5/31/2020 9:32:19 PM - - 0 - - - - - -Common Setup Scenarios ----------------------- -You want Auto Screen Capture to not exit when closing its interface window: - 1. Go to the Triggers module and edit the "Interface Closing -> Exit" trigger - 2. In the Action list change the action from "Exit Application" to "Hide Interface" - 3. Change the trigger's name to something like "Hide when interface closing" - 4. Click OK to apply the changes - 5. Now when you close its interface window the application will simply hide its interface - -You want Auto Screen Capture to not show its interface when it starts: - 1. Go to the Triggers module - 2. Click on the green square for the "Application Startup -> Show" trigger to disable the trigger - 3. The next time you run Auto Screen Capture its interface will no longer appear - -You want Auto Screen Capture to start a screen capture session when it starts: - 1. Go to the Triggers module - 2. Add a new trigger with the condition "Application Startup" and the action "Start Screen Capture" - 3. Click OK to create the new trigger - -You want Auto Screen Capture to not show its interface when a screen capture session stops: - 1. Go to the Triggers module - 2. Click on the green square for the "Capture Stopped -> Show" trigger to disable the trigger - 3. When a running screen capture session stops the interface will no longer appear - -You want Auto Screen Capture to take screenshots only when the active window title has particular text: - 1. Go to the Setup module - 2. Scroll down until you see "Active Window Title" - 3. Check the "Capture only if the title contains ..." option - 4. Type in the text field the text you want Auto Screen Capture to consider - -You want Auto Screen Capture to take screenshots of a cropped area of the screen: - 1. Click on the "Configure" drop-down menu and select "Add New Region" (or add it from Regions) - 2. Click on the "Region Select" button and your mouse pointer should turn into crosshairs - 3. Click and hold from the top-left of the region you want to select and drag to the bottom-right - 4. Release the left mouse button when you have the desired area selected - 5. Click OK to add the new region - -You want Auto Screen Capture to use a certain application or script when a screenshot is taken: - 1. Click on the "Edit" drop-down menu and select "Add New Editor ..." - 2. Choose the application or script for the "Application" field (this would be the path to it) - 3. Click OK to add the new editor - 4. Go to the Triggers module - 5. Add a new trigger - 6. Select "Screenshot Taken" from the Condition list - 7. Select "Run Editor" from the Action list - 8. Select the application or script you want to run when a screenshot is taken - 9. Click OK to add the new trigger - - - -Troubleshooting / Debugging ------------------------------ -If things just seem weird or can't be easily explained beyond the normal usage of Auto Screen Capture -then you can always run the application in its Debug Mode. You can enable Debug Mode by either running -"autoscreen.exe -debug=on" from a command prompt or changing the DebugMode application setting to "True". -While the application is in Debug Mode it will write out logging messages to the logs directory and be -a lot more verbose with its logging compared to what you usually get with the Logging option enabled. - -If all else fails and you still can't figure out what's going on then the best approach is the classic -"Have you tried turning it off and on again?" approach. In the case of Auto Screen Capture that means -deleting the "!autoscreen" directory (that was created on the first run according to its config file) -and running the application again. Every reference to screens, regions, screenshots, tags, and triggers -will be reset to its default state as if Auto Screen Capture was being run for the very first time. - - - -Version History ---------------- -Auto Screen Capture has a long history (10+ years) and it's advanced a lot since the first version. -I started writing the code for the application in 2008 after being frustrated that no screen capture -program, at the time, could take screenshots at a chosen interval while I was playing a game. - -1.0 -The very first version was a simple desktop application that took screenshots at an interval which -could only be specified in milliseconds. It also had a small list of screenshots called "Time Slices". -It was uploaded to SourceForge in 2008 and then picked up, and distributed, by Brothersoft. - -2.0 Series -A calendar was introduced and, by version 2.0.5, you could capture up to four displays. The interval -was also updated in order for the user to specify hours, minutes, seconds, and milliseconds. - -2.1 Series ("Clara") -You were now able to define how your files would be named by using a macro and macro tags instead -of relying on the application's default filename pattern. The series was codenamed "Clara" because -I would be watching Doctor Who (featuring Clara Oswald) while working on Auto Screen Capture :) - -2.2 Series ("Dalek") -The application took a major step forward with the ability to capture screenshots from multiple displays, -filter screenshots, and automatically remove old screenshots. You can control the application's behaviour -with Triggers and customize filenames with your own Tags. You can also replace an old "autoscreen.exe" -binary with any 2.2 binary and it will upgrade its data system so that old screenshot references are -updated with the newest reference schema. - -2.3 Series ("Boombayah") -Commands can now be issued to a running instance of the application! -These include ... --interval=hh:mm:ss.nnn --start --startat=hh:mm:ss --stop --stopat=hh:mm:ss --capture --captureat=hh:mm:ss --debug --debug=on --debug=off --log --log=on --log=off --hideSystemTrayIcon --showSystemTrayIcon --label --activeWindowTitle --applicationFocus -Also introduced is the ability to activate and deactivate screens, regions, schedules, tags, and triggers. -You can now set an image editor to be your default editor when using "Capture Now -> Edit". -Another amazing enhancement are the multiple schedules that you can create and being able to have better -control over the application's workflow with more trigger conditions and trigger actions. -The system tray icon turns red if an error has been encountered. -The system tray icon turns yellow if a drive being used is running low on available disk space. -You can define length of filepaths with the FilepathLengthLimit application setting. -It's also much faster at startup (even with a lot of screenshot references being available). -The codename for this version is based on "Boombayah" by BLACKPINK (https://youtu.be/bwmSjveL3Lc) -since this was constantly playing in the background while I was writing the code for 2.3.0.0 :) \ No newline at end of file +This is where to view the source code, fork from the project, and submit pull requests. \ No newline at end of file