By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,089 Members | 2,432 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,089 IT Pros & Developers. It's quick & easy.

Window capture using WM_PRINT and Python

P: n/a
arN
Hi !

I'm a Java developper and I wish to make a capture of an offscreen
window (on WinXP). It's not possible in Java, so I use a python script
and WM_PRINT, but it doesn't seem to work.

Could someone have a look at my script and give me any advise ?

TIA

--
Arnaud
my python script : python snap.py GraphicalContext_handle image_handle
--------------------------------------------------------------------------------------------------
snap.py :
"
import win32api, win32con, sys

win32api.SendMessage(sys.argv[2], win32con.WM_PAINT, sys.argv[3], 0)
win32api.SendMessage(sys.argv[2], win32con.WM_PRINT, sys.argv[3],
win32con.PRF_CHILDREN | win32con.PRF_CLIENT | win32con.PRF_OWNED)
"

------------------------------------------------------------------------------------------------
snippet from Snapshot.java :
"
public static Image snapshot(Composite bean) {
GC gc = new GC(bean);
final Image image = new Image (null, bean.getBounds().width,
bean.getBounds().height);
String commmand = "python snap.py " + gc.handle + " " + image.handle;

Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec(command);
} catch (.....)

gc.dispose();
return image;
}
"
Jul 18 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Do you get any kind of traceback when you start a process that way?
There's not much info to go on.

Sys.argv parameters are passed as strings. You'll need to do an int() on
them
before you can use them as handles. Also, not all handles are portable
between processes. Your device context handle might not be valid
even if you make it an int.

hth
Roger
"arN" <pa*@demail.svp> wrote in message
news:41***********************@news.club-internet.fr...
Hi !

I'm a Java developper and I wish to make a capture of an offscreen window
(on WinXP). It's not possible in Java, so I use a python script and
WM_PRINT, but it doesn't seem to work.

Could someone have a look at my script and give me any advise ?

TIA

--
Arnaud
my python script : python snap.py GraphicalContext_handle image_handle
--------------------------------------------------------------------------------------------------
snap.py :
"
import win32api, win32con, sys

win32api.SendMessage(sys.argv[2], win32con.WM_PAINT, sys.argv[3], 0)
win32api.SendMessage(sys.argv[2], win32con.WM_PRINT, sys.argv[3],
win32con.PRF_CHILDREN | win32con.PRF_CLIENT | win32con.PRF_OWNED)
"

------------------------------------------------------------------------------------------------
snippet from Snapshot.java :
"
public static Image snapshot(Composite bean) {
GC gc = new GC(bean);
final Image image = new Image (null, bean.getBounds().width,
bean.getBounds().height);
String commmand = "python snap.py " + gc.handle + " " + image.handle;

Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec(command);
} catch (.....)

gc.dispose();
return image;
}
"



----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---
Jul 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.