|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 730
|
[C#] problema screenshot per windows mobile 6
ho un problema...
in pratica sto cercando di ottenere uno screenshot dello shermo di un'applicazione in c# per windows mobile 6... ho trovato un paio di istruzioni in giro...solo che c'è ne una che sotto winmo non esiste...e non riesco a trovare con cosa sostituirla... ecco il codice Codice:
private void button1_Click(object sender, EventArgs e)
{
int screenWidth = Screen.PrimaryScreen.Bounds.Right;
int screenHeight = Screen.PrimaryScreen.Bounds.Bottom;
System.Threading.Thread.Sleep(5000);
Bitmap bmpScreenShot = new Bitmap(screenWidth, screenHeight);
Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
//gfx.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight));
// gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
bmpScreenShot.Save("test.jpg", ImageFormat.Jpeg);
qualcuno ha qualche soluzione???? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Mai fatto nulla per Windows Mobile, ma potresti provare a vedere se i vecchi metodi funzionano.
Importa le funzioni dalla user32.dll o dalla gdi32 e poi prova con Codice:
int xLoc;
int yLoc;
IntPtr dsk;
IntPtr mem;
Bitmap currentView;
//get the handle of the desktop DC
dsk = Win32API.GetDC(Win32API.GetDesktopWindow());
//create memory DC
mem = Win32API.CreateCompatibleDC(dsk);
//get the X coordinates of the screen
xLoc = Win32API.GetSystemMetrics(SCREEN_X);
//get the Y coordinates of screen.
yLoc = Win32API.GetSystemMetrics(SCREEN_Y);
//create a compatible image the size of the desktop
newBMP = Win32API.CreateCompatibleBitmap(dsk, xLoc, yLoc);
//check against IntPtr (cant check IntPtr values against a null value)
if (newBMP != IntPtr.Zero)
{
//select the image in memory
IntPtr oldBmp = (IntPtr)Win32API.SelectObject(mem, newBMP);
//copy the new bitmap into memory
Win32API.BitBlt(mem, 0, 0, xLoc, yLoc, dsk, 0, 0, SRCCOPY);
//select the old bitmap into memory
Win32API.SelectObject(mem, oldBmp);
//delete the memoryDC since we're through with it
Win32API.DeleteDC(mem);
//release dskTopDC to free up the resources
Win32API.ReleaseDC(Win32API.GetDesktopWindow(), dsk);
//create out BitMap
currentView = Image.FromHbitmap(newBMP);
//return the image
return currentView;
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 09-05-2009 alle 01:38. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 730
|
grazie ma non funziona...mi diche che WIN32API non esiste nel contesto attuale...
se hai qualche altra dritta... |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
http://www.dreamincode.net/forums/lo...hp/t34831.html |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:07.




















