IanN1990 Posted January 23, 2012 Share Posted January 23, 2012 (edited) 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 April 14, 2012 by IanN1990 Link to comment Share on other sites More sharing options...
IanN1990 Posted January 23, 2012 Author Share Posted January 23, 2012 _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 More sharing options...
guinness Posted January 23, 2012 Share Posted January 23, 2012 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now