![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Как проще всего снять скриншот с части экрана? Подскажите кто-нибудь
![]() Еще пара вопросов..... 1) Видел в "Архиве исходников" прогу "X-kill", она убивала процесс на который наведена мышь. Помогите сделать похожую, но что бы она убивала процесс если известно имя процесса. Очень надо. 2) Там же видел ряд статей посвященных DelphiX, (там описывалось создание небольшой игры с 2 игроками) но в нем я ничего не смыслю, мне понравился кусук программы отвечающий за движение первого игрока. Как сделать этот кусок без 'sin' и 'cos', если так можно?... Последний раз редактировалось Interface, 19.06.2008 в 11:21. |
#2
|
|||
|
|||
![]() Если без Delphi, то надо найти программу, которая умеет это делать. Таких программ великое множество. Windows своими штатными средствами может только снимать либо весь экран, либо активное окно.
Если в программе на Delphi то так (источник DelphiWorld, успешно протестировано на D7): Код:
procedure TForm1.Button1Click(Sender: TObject); var DT: HDc; DTCanvas: TCanvas; DTRect: TRect; begin DT := GetWindowDC(GetDeskTopWindow); DTCanvas := TCanvas.Create; DTCanvas.Handle := DT; DTRect := Rect(0, 0, 200, 200); //указываем координаты куска экрана для съемки Image1.Canvas.CopyRect(DTRect, DTCanvas, DTRect); ReleaseDC(GetDeskTopWindow, DT); DTCanvas.Free; end; Не забывайте делать резервные копии Последний раз редактировалось san-46, 19.06.2008 в 11:45. |
#3
|
|||
|
|||
![]() Спасибо!
![]() А насчет других вопросов не в курсе?.. ![]() |
#4
|
|||
|
|||
![]() Насчет других вопросов, не в курсе. Может кто из знающих заглянет в эту тему. Вчера сделал запрос по слову DelphiX - вывалилось где-то 2000 стр. Так что можно посмотреть и в эту сторону.
Не забывайте делать резервные копии Последний раз редактировалось san-46, 19.06.2008 в 11:46. |
#5
|
||||
|
||||
![]() |
#6
|
|||
|
|||
![]() Вот примерчик разыскал:
на форму Image кидаешь, в него копируется и сохраняеться кусочек. Код:
procedure TForm1.Button1Click(Sender: TObject); var i: TJPEGImage; begin try i := TJPEGImage.create; try i.CompressionQuality := 100; Canv := TCanvas.Create; Canv.Handle := GetDC(0); DRect.Left := 0; DRect.Top := 0; DRect.Right := 200; DRect.Bottom := 200; image.Width := DRect.Right - DRect.Left; image.height := Drect.Bottom - DRect.Top; Image.Canvas.CopyRect(DRect, Canv, DRect); i.assign(Image.Picture.Bitmap); I.SaveToFile('c:\MyFile.jpg'); finally i.free; end; except end; end; |
#7
|
||||
|
||||
![]() Я сам пишу игрушку с DelphiX. Информацию взял с http://www.gamedev.ru/users/hex/articles/DelphiX
http://forceway.ru/ ![]() |
#8
|
|||
|
|||
![]() Понимаете, тут дело обстоит так. Я пишу небольшую игру и мне очень надо сделать так что бы вот этот кусочек:
"Procedure TPlayerone.DoMove(MoveCount: Integer); begin inherited DoMove(MoveCount); x:=x+cos256(Angle)*speed; //обработчик движения по X y:=y+sin256(Angle)*speed; //обработчик движения по Y if y <= form1.DXDraw1.SurfaceHeight-image.Height then y := form1.DXDraw1.SurfaceHeight-image.Height; if x <= form1.DXDraw1.SurfaceWidth -image.Width then x := form1.DXDraw1.SurfaceWidth -image.Width; if y >= 0 then y := 1; if x >= 0 then x:=1; begin speed:=0; //когда ничего не делаем, скорость равна 0 if isLeft in Form1.DXInput1.States then angle:=angle-5; if isRight in Form1.DXInput1.States then angle:=angle+5; if isup in Form1.DXInput1.States then speed:=4; if isDown in Form1.DXInput1.States then speed:=-4; end; end; " (Взят из FAQ этого сайта и заново просмотрен на сайте ,указанном выше ![]() А точнее именно этот "x:=x+cos256(Angle)*speed; //обработчик движения по X y:=y+sin256(Angle)*speed; //обработчик движения по Y" работал без "COS" и "SIN". Я плохо разбираюсь в DelphiX ![]() ![]() |
#9
|
|||
|
|||
![]() Спасибо XCHROM за приведенную инфу
![]() |
#10
|
|||
|
|||
![]() Люди плиз объясните
![]() ![]() ![]() |