Hi,
Szuksegem volna egy kepernyokep rutinra c-ben. Ha volna valakinek valami link peldara vagy esetleg egy egyszeru program (mondjuk nem Gimp, Imagemagick es tarsai, inkabb valami nagyon egszeru) orulnek neki. Tulajdonkeppen egy wine alatt futo closed source programrol kellene megallapitanom, hogy az eredmeny OK vagy NG, de ezt csak a kepernyon jeleniti meg.
Koszi,
/sza2
- 1487 megtekintés
Hozzászólások
Tehat Win32-es kod kellene? Lehet, hogy egyszerubb lenne win API hivasokkal kiolvasni az ablak szoveget (FindWindow(), GetWindow(), GetWindowText()), mint screenshotot kesziteni es a keprol felismerni azt!
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Nem, X alatt futtatok wine-t, es a Linux-os alkalmazasnak kellene visszaadni a win-es kepet.
- A hozzászóláshoz be kell jelentkezni
Kb 8-10 eve egy "Macro Maker 2000" programot hasznaltam. Azzal meg lehet csinalni, hogy pl. figyeljen egy bizonyos title-ű ablak megjeleneset. Amikor az ablak megjelenik, keszithet egy screenshotot, es elmentheti, stb.. egy csomo mindent meg lehet tenni ezekkel.
C-ben meg ilyesmikkel csinalnam:
GdkWindow *rootwin;
GdkImage *image;
GdkColormap *cmap;
gint x, y;
guint32 pixel;
GdkColor color;
gdouble r, g, b;
rootwin = gdk_screen_get_root_window(gdk_screen_get_default());
cmap = gdk_screen_get_system_colormap(gdk_screen_get_default());
x = x_coordinate_of_pixel_you_want;
y = y_coordinate_of_pixel_you_want;
image = gdk_drawable_get_image(rootwin, x, y, 1, 1);
pixel = gdk_image_get_pixel(image, 0, 0);
g_object_unref(image);
gdk_colormap_query_color(cmap, pixel, &color);
/* color.[red green blue] are now the proper hex numbers, but if we want to use it with cairo, we need to divide by 0xFFFF (65535.0) */
r = color.red / 65535.0;
g = color.green / 65535.0;
b = color.blue / 65535.0;
- A hozzászóláshoz be kell jelentkezni
Huh, ezt meg fel kell fognom. Ha jol latom ez a teljes kepernyot nezi. Mindenesetre, megprobalom ezt az utat is. Vegulis a GTK ugyis fent van.
- A hozzászóláshoz be kell jelentkezni
Lehetőségek:
- külső program hívásával, pl. imagemagick, vagy xwd (utóbbi az X része)
- vmi GUI toolkit-tel, pl. Qt - rövid kereséssel példa
- közvetlen Xlib hívásokkal - ez lenne a legkézenfekvőbb, de állítólag bonyolult az Xlib és olyan kevesen használják közvetlenül, hogy nem találtam rá a neten példaprogramot. Hátránya még, hogy csak X-et használó platformokon fog működni.
- A hozzászóláshoz be kell jelentkezni
A kulso program nem igazan szimpatikus, az xwd-t megnezem.
A Qt-t csak ezert nem szeretnem felrakni.
Az Xlib-ben tetszene legjobban, raadasul X van, a protabilitas abszolut nem lenyeg, csak belso hasznalatra lesz.
Tudom, hogy az egesz a tarko mogul labonloves tipikus esete, de nem tudok mast tenni. Adott egy berendezes, aminek el kell inditania egy folyamatot (a Win-es alkalmazasban megnyomni egy gombot (ezt mar megoldottam), majd ha vege, ki kell deriteni, hogy mi az eredmeny, es ennek megfeleloen indikalni (jelen esetben pecsetelni).
- A hozzászóláshoz be kell jelentkezni
debian alatt:
$ apt-get source x11-apps
Ezen belul az xwd csinalja ezt.
Az XGetImage
a konkret API hivas.
Szerk: eleg lassu nalam, bar lehet, hogy csak a regi hardware miatt.
- A hozzászóláshoz be kell jelentkezni
amit csinalni akarsz, az koncepionalisan rossz :)
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Koszi.
Ertem a szmajlit, de hogyan csinalnad?
- A hozzászóláshoz be kell jelentkezni
Ugy emlekszem, hogy a print screen egyszeruen ugy zajlik Win32 API-ban, hogy megnyitod a foablak handleret mint kepet, es egyszeruen kiolvasod. Tehat ugy teszel, mintha rajzolni szeretnel az ablakra (elkapod a HDC - Device Context), majd egy bitcopy muvelettel lemasolod.
Itt van peldakod (screenshot winapi szerencseserzet): http://groups.google.com/group/win32-programming/browse_thread/thread/5…
Nyilvan erre sok megoldas letezik. Ha X11 alol akarod ugyanezt, akkor az xgrab lesz neked a megfelelo cuccos, mint legegyszerubb talan.
- A hozzászóláshoz be kell jelentkezni
Wine alkalmazások látják egymás ablakát a Wine Win32 API klónján keresztül?
- A hozzászóláshoz be kell jelentkezni
Azt nem tudom, engem csak megtanitottak win-t programozni, annak ellenere, hogy effektiv mostani melohelyem elott nem lattam olyat...
De ha meg az van, akkor linuxrol lekapja xgrabbal, probalja ki. Ezek alapszintu apik, tuti implementaltak.
- A hozzászóláshoz be kell jelentkezni
xsg-t probaltad mar?
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni