Jump to content

[Solved] Tri-Screen Printscreen Software


 Share

Recommended Posts

I am looking to replace some software on my computer, with a Autoit script instead.

The software takes a picture of the screen 1920x1080, depending on which screen the mouse is one and then saves it to a location. The code below does all that, but i need a way to "read" what is in the folder, for setting the next $i so not to over-write anything. I welcome any ideas :)

#include <ScreenCapture.au3>
_ScreenCapture_SetBMPFormat(4)
$i = $i + 1
$pos = MouseGetPos()
If $pos[0] < 0 Then
_ScreenCapture_Capture("D:\Pictures\00¦ Miscellaneous\" & $i & ".bmp", -1920, 0, 0, 1080)
ElseIf $pos[0] > 1920 Then
_ScreenCapture_Capture("D:\Pictures\00¦ Miscellaneous\" & $i & ".bmp", 1920, 0, 3840, 1080)
Else
_ScreenCapture_Capture("D:\Pictures\00¦ Miscellaneous\" & $i & ".bmp", 0, 0, 1920, 1080)
EndIf

I am having trouble capturing perfect 1920x1080 Res of each screen, they end up as 1921x1081. When setting the left screen, using -1 causes as problem as that uses the default of the screen rather then the value -1

I thought about storing the information in a .txt file "ie the $i number" so even if the script is restarted the number can be found but tbh i am not very fond of that idea.

I would much perfer something that scans the folder, finds the highest number.bmp, adds one and then saves. ;)

For $i = 1 To 1000 step 1
  if FileExists("D:\Pictures\00¦ Miscellaneous\" & $i & ".bmp") Then
  Else
  ExitLoop
  EndIf
Next

Seams to work quite well, though i am looking into a way to find for it to "check" 10 files ahead. As i some-times delete fines, but i dont want new screenshots being placed into the "low" numbers, as i dont want the chain broken ;)

1 2 3 4 5, I delete 2

1 (no 2, checks 10 ahead but sees 3), checks 4, checks 5, "checks 10 ahead, sees nothing saves new image as 6"

local $extra
local $i


    For $i = 1 To 1000 step 1
  if FileExists("D:\Pictures\00¦ Miscellaneous\" & $i & ".bmp") Then
  $extra = 0
  Elseif $extra < 10 Then
  $extra = $extra + 1
Else
  $i = $i - 10
  ExitLoop
  EndIf
Next

Hmm it seams this topic is now solved XD Putting my thoughts onto paper for some reason really helped me find the answer. If anyone sees this and can think of a better or more effective way then i would be happy to read :)

Edited by IanN1990
Link to comment
Share on other sites

_ScreenCapture_Capture("D:Pictures00¦ Miscellaneous" & $i & ".bmp", 0, 0, 1919, 1079) Takes a perfect 1920x1080 of the main screen

_ScreenCapture_Capture("D:Pictures00¦ Miscellaneous" & $i & ".bmp", 1920, 0, 3839, 1079) Takes a perfect 1920x1080 of the right screen

_ScreenCapture_Capture("D:Pictures00¦ Miscellaneous" & $i & ".bmp", -1920, 0, 0, 1079) Takes a 1921x1080 of the left-screen,

_ScreenCapture_Capture("D:Pictures00¦ Miscellaneous" & $i & ".bmp", -1920, 0, -1, 1079) Takes a 3841x1080 image as in the helpfile "X coordinate of the lower right corner of the rectangle. If this is -1, the current screen width will be used."

So how can i make the script use the value of -1 rather then reverting to the current screen width?

Link to comment
Share on other sites

What about _FileListToArray & then use _PathSplit to determine the number OR a SRE.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...