![]()  | 
	
 
  | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Как сделать снятие скриншота?Народ подскажите плиззз!!! 
		
	
		
		
		
		
		
	
		
		
	
	
	![]()  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Код: 
	procedure GetWindowsScreen( PathToSave: string );
begin
   with TBitmap.Create do
   begin
      Width := Screen.Width;
      Height := Screen.Height;
      BitBlt( Canvas.Handle, 0, 0, Width, Height, GetDC( GetDesktopWindow ), 0, 0, SRCCOPY );
      SaveToFile( PathToSave );
      Free;
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
   GetWindowsScreen( 'C:\Screen.bmp' );
end; | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Пасибо огромное Decoding!!!  
		
	
		
		
		
		
		
	
		
		
	
	
	![]()  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 А у меня не работает! ![]() Выдает такую ошибку: Incompatible types: "HDC" and "QPainterH" В чем дело?  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Decoding, мне всё в коде понятно, всё заработало. Но можно ли сделать так чтобы когда снимался скриншот форма не была видна(чтобы её не было на снимке) или всё это сделать через Hot Key и как??? 
		
	
		
		
		
		
		
	
		
		
	
	
	![]()  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 to A-VIP: я конечно могу ошибаться, но у меня такое впечатление, что ты пытался вставить этод код в прогу, которая использует библиотеку CLX. Если это так, то естественно, что код не работает... Используй VCL. 
		
	
		
		
		
		
		
	
		
		
	
	
	to Vlastelin Delphi: все можно. Перед снятием скриншота прячь окна (ShowWindow), которых не должно быть видно. Ище окна при помощи FindWindow. Возможно, тебе поможет эта статья - http://decoding.narod.ru/practic/wndinfo/wndinfo.html  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Кароче типа того и было! СПС! Все терь гут. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Лучше будет открыть главный файл проекта(Project>View Source) и после строки Код: 
	Application.CreateForm(TForm1, Form1); Код: 
	Form1.BorderStyle := bsNone; Последний раз редактировалось DungeonLords, 10.09.2008 в 12:54.  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 процедура мне чучуть не понятна GetWindowsScreen( PathToSave: string ) 
		
	
		
		
		
		
		
	
		
		
	
	
	как мне сделать чтоб была функция возвращающия картинку типа:TBitmap 100X100 пикселов чтоб выглидела function GetWindowsScreen(const: x,y : integer):TBitmap я не как немогу разобратся с BitBlt например мне нужен кусочек экрана по x 200-300 ну и y 200-300 GetWindowsScreen(200,200); помогите пожалуйста  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код: 
	function getscreen(const x,y:integer ):tbitmap;
var bitmap:tbitmap;
begin
  with bitmap.Create do
   begin
      bitmap.Width := 100;
      bitmap.Height := 100;
      BitBlt(bitmap.Canvas.Handle, x, y, bitmap.Width, bitmap.Height, GetDC( GetDesktopWindow ), 0, 0, SRCCOPY );
      result:=bitmap;
      Free;
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);
 var J: TJPEGImage;
begin
  j.Create;
  j.Assign(getscreen(200,200));
end;
![]() Последний раз редактировалось walear, 22.10.2008 в 20:21.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Ну да, не работает. 
		
	
		
		
		
		
		
	
		
		
	
	
	как минимум должно быть: Код: 
	begin bitmap := TBitmap.Create; with bitmap do ...  | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 lmikle спасибо помогло 
		
	
		
		
		
		
		
		
			теперь правда новая проблема нехочет сохранят потом в джепег просто сохраняться пустой файл Код: 
	function getscreen(const x,y:integer ):tbitmap;
var bitmap:tbitmap;
begin
  bitmap:=tbitmap.Create;
  with bitmap do
   begin
      bitmap.Width := 100;
      bitmap.Height := 100;
      BitBlt(bitmap.Canvas.Handle, 0, 0, bitmap.Width, bitmap.Height, GetDC( GetDesktopWindow ), x, y, SRCCOPY );
      bitmap.SaveToFile('temp.bmp');
      result:=bitmap;
      bitmap.Free;
   end;
end;
procedure TForm1.Button1Click(Sender: TObject);
 var J: TJPEGImage;
begin
   j:=TJPEGImage.Create;
   j.Assign(getscreen(500,500));
   j.CompressionQuality:=100;
   j.Compress;
  j.SaveToFile('temp.jpg');
  j.Free;
end;Последний раз редактировалось walear, 22.10.2008 в 21:01.  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Не assign, а Canvas.Draw 
		
	
		
		
		
		
		
	
		
		
	
	
	Ну и размеры jpeg'у кто будет ставить???  |