Jump to content
letsCodeMyLife

_ScreenCapture_Capture doesnt saves the image

Recommended Posts

letsCodeMyLife

Hello,

I want to save a screenshot with _ScreenCapture_Capture. My code:

#include <ScreenCapture.au3>

_ScreenCapture_Capture(@ScriptDir & "/test.jpg", 0, 0, 1366, 700)

The problem is not to capture the screen, the problem is to save the image.

Can you help me?

Thanks.

Share this post


Link to post
Share on other sites
Danyfirex

Hello try to add a:

ConsoleWrite(@error & @CRLF)

To check the returned error code.

 

Saludos

Share this post


Link to post
Share on other sites
Melba23

letsCodeMyLife,

Are you using 3.3.14.3? If so then upgrade to 3.3.14.5:

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
letsCodeMyLife
Posted (edited)

I have the latest Version.

Edited by letsCodeMyLife

Share this post


Link to post
Share on other sites
Melba23

letsCodeMyLife,

Add this line to your code above and please post what appears in the SciTE console:

ConsoleWrite($iRet & " - " & @error & @CRLF)

I get:

>"M:\Program\AutoIt3\SciTE\..\AutoIt3.exe" "M:\Program\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "M:\Program\Au3 Scripts\fred1.au3" /UserParams    
+>10:11:55 Starting AutoIt3Wrapper v.17.224.935.0 SciTE v.3.7.3.0   Keyboard:00000809  OS:WIN_7/Service Pack 1  CPU:X64 OS:X86  Environment(Language:0409)  CodePage:0  utf8.auto.check:4
+>         SciTEDir => M:\Program\AutoIt3\SciTE   UserDir => C:\Users\###########\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\#############\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.14.5)  from:M:\Program\AutoIt3  input:M:\Program\Au3 Scripts\fred1.au3
+>10:11:56 AU3Check ended.rc:0
>Running:(3.3.14.5):M:\Program\AutoIt3\autoit3.exe "M:\Program\Au3 Scripts\fred1.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
True - 0
+>10:11:57 AutoIt3.exe ended.rc:0
+>10:11:57 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 2.923

and the file is correctly created.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
letsCodeMyLife

The $iRet is False and the errror code is 0.

Share this post


Link to post
Share on other sites
Melba23

letsCodeMyLife,

I asked to see the whole SciTE output.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
AndyG

Hi, 

make a screenshot "by hand" and post the picture here please...

 

Share this post


Link to post
Share on other sites
letsCodeMyLife
Posted (edited)

@Melba23SciTe cant run files in the console.

The requested Screenshot by Hand:

PS: My Laptop is very old.

 

Unbenannt.png

Edited by letsCodeMyLife

Share this post


Link to post
Share on other sites
Melba23

letsCodeMyLife,

Quote

SciTe cant run files in the console

The SciTE console is the lower of the 2 panes in the editor.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
DynamicRookie
Posted (edited)

Just to let you know, desktop.ini is a virus called Recycler, you should check if it's a positive and if it is, avoid deleting massive amount of files.

About your problem with ScreenCapture, try instead using _ScreenCapture_CaptureWnd

Like this:
 

#include <ScreenCapture.au3>

$0 = @ScriptDir
$a = Random(0,200)
$ab = Random(0,10)
$b = "10.9.8.7.6.5.4.3.2.1"
$c = StringSplit($b, ".")
$b0 = 1
For $d in $c
    If $b0 <> 1 Then
        SplashTextOn('', "Capturing in " & $d& "...", 150, 100, 100, 100, 0, "Tahoma", 16)
        Sleep(1000)
        If $d = "1" Then
            SplashOff()
            ExitLoop
        EndIf
    Else
        $b0 = 0
    EndIf
Next
$HWnd = WinActive('', '')
Sleep(500)
_ScreenCapture_CaptureWnd($0 & "\Screenshots\" & "Screenshot" & $a +$ab & ".jpg", $HWnd, 0, 0, -1, -1, False)
MsgBox(0, '', "Screenshot saved on " & $0 & "\Screenshots\" & "Screenshot" & $a +$ab & ".jpg")
exit 0

 

  • Variable $0 stores current script working directory
  • Variable $a stores a random number between 0 and 200
  • Variable $ab stores a random number between 0 and 10
  • Variable $b stores a countdown
  • Variable $c splits the variable $b into an array countdown
  • Variable $b0 debugs For loop to skip the first subscript [0] that contains amount of subscripts
  • For loop does a countdown and splashs it on screen.
  • Variable $d stores the countdown
  • Between each $d round, it sleeps a second.
  • After countdown end, variable $HWnd stores the handle of the actual active window
  • _ScreenCapture_CaptureWnd searchs for a folder called "Screenshots" on @ScriptDir and stores screen capture there.
  • Then a MsgBox saying the location of screenshot saved pops up
  • Exit script.
Edited by DynamicRookie
Explanation

Share this post


Link to post
Share on other sites
kaisies

Desktop.ini happens in normal windows operation. It's presence does not mean he has a virus. 

Share this post


Link to post
Share on other sites
letsCodeMyLife
Posted (edited)

nope my Desktop.ini isn't  a Virus.

And the _Screencapture_CaptureWnd also doesnt work.

And when i try to execute it on the SciTe Shell it Displays this error: (its german)

>"E:\AutoItEdit\..\AutoIt3.exe" "E:\AutoItEdit\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\Sybille\Desktop\test.au3" /UserParams   
>Das System kann die angegebene Datei nicht finden.
 

"Das System kann die angegebene Datei nicht finden." is translated to english: "The System cant find the file."

Edited by letsCodeMyLife

Share this post


Link to post
Share on other sites
DynamicRookie
Posted (edited)

About desktop ini, theres a virus called Recycler that tries to impersonate common recycle bin files to fill the hard disk of trash and let other viruses in.

 

There shouldn't be 2 of them, and if they also appear on other folders non related to desktop (Maybe along with links) then is a virus.

Edited by DynamicRookie

Share this post


Link to post
Share on other sites
DynamicRookie
Posted (edited)

About ScreenCapture its cause you need a folder called Screenshots placed on the same directory as script, in example: C:/Test/Script/Screenshots

 

Where Script folder contains the script and Screenshots saves the screen captures.

 

You can, however, edit the script to change the directory to save screenshots at.

Edited by DynamicRookie

Share this post


Link to post
Share on other sites
DynamicRookie
Posted (edited)

I feel like you trying to do a spyware, aren't you?:naughty:

Edited by DynamicRookie

Share this post


Link to post
Share on other sites
Jos
2 hours ago, DynamicRookie said:

I feel like you trying to do a spyware, aren't you?:naughty:

What about you stop these accusations and simply follow the rules of reporting posts?

Jos


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Melba23

letsCodeMyLife,

The _ScreenCapture_CaptureWnd function definitely does exist! Please run the following code and tell us what appears in the MsgBox:

MsgBox(0, "Version", @AutoItVersion)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
letsCodeMyLife

@Melba23: The MsgBox Displays: 3.3.14.3

@DynamicRookie: I won't program Spyware and i already have created the Screenshots Folder and it also doesnt work.

But i find my own solve:

I use _WinAPI_SaveHBITMAPToFile. This works on my Computer, but  on my Laptop it Ends with error code 30.

Share this post


Link to post
Share on other sites
Melba23
Posted (edited)

letsCodeMyLife,

So, as explained here:

to which thread I linked you earlier, you are NOT using the latest version (despite your earlier comment) and, because of a known bug, the _ScreenCapture functions will not save a file. Update to 3.3.14.5 where the bug has been fixed (along with some others) and all will be well.

Might I suggest that in future you actually take the time to read the responses you get - then we would not have all wasted our time over the past few days.

M23

Edited by Melba23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
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

  • Similar Content

    • JuanFelipe
      By JuanFelipe
      Hello friends, I have a simple question, can I have a variable that is not reset, even if my program is closed?
      That is, I want to make a program that can only be opened once, have a variable $ ini = 0, when it is opened for the first and only time it becomes $ ini = 1, so that it can not use the program a second time, as if it was a test software.
      I do not want the variable to depend on a reading of an external file that is easily manipulated. Thank you.
    • nooneclose
      By nooneclose
      My program has to first search for names in Column D that do not match up with column C. I got that search to work using arrays. It was slow and I could not figure out how to delete them so I just manually put coded the names that do not belong. I found their cell location but I do not know how to store that location and delete it.
      This is what I have so far.
      Local $NameToDelete1[6]  = _Excel_RangeFind($OpenWorkbook, "Smith, Bill") _ArrayDisplay($NameToDelete1, "Excel UDF: _Excel_RangeFind Example 1", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment") _Excel_RangeDelete($OpenWorkbook.ActiveSheet, $NameToDelete1[2], $xlShiftUp)  
      Please help, I wanted to have this program done yesterday but I did not see this problem until yesterday. 
    • TrashBoat
      By TrashBoat
      So Im trying to make a simple 2d game and make some sort of collision detection so why not to make a 2 dimensional array but i have no clue how  to write it in multiple lines
      Global $map[5,5] = [0,0,0,0,0 _ [0,0,0,0,0 _ [0,0,0,0,0 _ [0,0,0,0,0 _ [0,0,0,0,0] something like this but it doesn't work
    • Zein
      By Zein
      #include "..\Include\Array.au3" #include "..\Include\File.au3" #include "..\Include\AutoItConstants.au3" Local $aRetArray Local $sFilePath = "n.csv" _FileReadToArray($sFilePath, $aRetArray, ",") ; _FileReadToArray($sFilePath, $aRetArray, $FRTA_COUNT, ",") _ArrayDisplay($aRetArray, "Original", Default, 8) The above code shows two versions of _FileReadToArray and both don't work as expected.
      The first one doesn't use the comma as a delimiter. (so I get a single column array)  I tried adding "Default" between $aRetArray and "," then it told me it had an incorrect number of parameters. 

      I looked again at the documentation:
       
      #include <File.au3> _FileReadToArray ( $sFilePath, ByRef $vReturn [, $iFlags = $FRTA_COUNT [, $sDelimiter = ""]] )
      And I with or without the flags params I should be getting a 2D array due to my file being a csv. 
      I then tried a regular flag, $FRTA_COUNT, and it tells me that I'm using a variable $FRTA_COUNT while it's not declared. Tried putting in 1 instead and it told me again, incorrect number of params. 

       
    • nooneclose
      By nooneclose
      I need to perform a subtotal in excel and I would like to automate this process using Autoit if possible like always any and all help will be greatly appreciated. 
      I can not find a good example but the two from Microsoft. Here is one of the two from msdn.microsoft.com/en-us/vba/excel-vba/articles/range-subtotal-method-excel
      I do not really understand how to translate this into AutoIt, but I gave it a try and here is what I have.
      $OpenRange      = "A1:E200" $xlSum          = -4157 $Added_Array[2] = [2, 3] $OpenRange.Subtotal("B1", $xlSum, $Added_Array, True, False, True) I just need to perform a subtotal on a range based on a header called department, and then perform a sum on the results.
×