Sign in to follow this  
Followers 0
joelb

ScreenCapture problem

8 posts in this topic

#1 ·  Posted (edited)

Hi everyone ,

I am a newb with Autoit , yet we consider using it for a project in our company so I could really use help.

Here's my problem : I have made a tool whose job is to run a couple of processes , take a snapshot of the window with a specific process and shut down.

I wrote the script , made an exe (with auto2exe tool) and ran it on my machine and it works alright .

However , running my exe on a friend's machine yields bad result - the snapshot taken is not of the wanted window but of everything 'behind' the window (I get a screenshot of the portion of the desktop that is behind the window that I want).

Both of our machines run windows7 so I don't know what's the difference other than obviously he does not have autoit installed (does it matter?)

I suspect that maybe the #include <ScreenCapture.au3> line got messed up somehow otherwise I'm completely lost ...

My code :

#include <ScreenCapture.au3>

FileInstall("C:UsersJuelDesktoptoolv3.0releaseexecute.exe", @WorkingDir & "execute2.exe")

FileInstall("C:UsersJuelDesktoptoolv3.0releasetool.exe" , @WorkingDir & "tool2.exe")

;takes process id and returns window handle

Func _GetHwndFromPID($PID)

$hWnd = 0

$winlist = WinList()

Do

For $i = 1 To $winlist[0][0]

If $winlist[$i][0] <> "" Then

$iPID2 = WinGetProcess($winlist[$i][1])

If $iPID2 = $PID Then

$hWnd = $winlist[$i][1]

ExitLoop

EndIf

EndIf

Next

Until $hWnd <> 0

Return $hWnd

EndFunc

Run("tool2.exe")

ProcessWait("execute2.exe")

$pid=ProcessExists("execute2.exe")

Sleep(8000)

$handle=_GetHwndFromPID($pid)

_ScreenCapture_CaptureWnd(@DesktopDir & "offer_Image.jpg", $handle)

ProcessClose($pid)

Edited by Melba23

Share this post


Link to post
Share on other sites



joelb,

Welcome to the AutoIt forum. :)

Just a guess, but does your friend have Aero enabled and you not? :huh:

M23

P.S. Please use more descriptive titles in future - "Newb really needs help" is not very informative. ;)


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

Hi Melba,

Could you please explain the problem with aero or please tell me what to type into the search to find out what are you talking about.

I am always FEARFUL of posting in these forums, just in case someone flames me for putting in a dumb question.

I have found this thread because I too am having problems with my Window (screen) capture program as a result of the latest AutoIt version (v3.3.8.1), it has changed the way _ScreenCapture_CaptureWnd works.

Whether I have Aero on or off does not seem to matter.

I am passing the window control ID from a different program (that part has not changed) but it looks like _ScreenCapture_CaptureWnd does not like the old controlID. So now, I get the entire desktop screen instead of just the window.

Any help would be greatly appreciated.

joelb, did you get any further?


Regards,Andy (no, the other one)

Share this post


Link to post
Share on other sites

The handle for a window is different every time the program is run, what are you using to get the handle from the window you're trying to capture?


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Hi BewManNH,

Thanks for responding.

I am using an object oriented language called OpenROAD (by Ingres Corp)...

Internally, each frame that is instantiated has its own "widgetid" and in the past this worked as the windows control id.

eg: hwnd = curframe.widgetid;


Regards,Andy (no, the other one)

Share this post


Link to post
Share on other sites

Andy007,

I am always FEARFUL of posting in these forums, just in case someone flames me for putting in a dumb question.

Please do not be - as you can see from the Forum Rules we do not tolerate flaming here. Everyone is welcome as long as they respect those rules, regardless of their experience level - after all everyone of us started at the beginning at one point in our coding lives. :D

And if it does happen because someone slept badly the night before - just report it and the Moderating team will deal with it. :)

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

Hi Melb23,

Why would Aero be a problem?


Regards,Andy (no, the other one)

Share this post


Link to post
Share on other sites

Andy007,

Using Aero can give problems with some screen reading functions (particularly the Pixel* ones), so I thought it worthwhile asking. :)

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

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
Sign in to follow this  
Followers 0