Don_Diego, там все дело к выводу в блокнот сводится, а мне нужно перекрестье на канве нарисивать, пару лет назад делал такую прогу, но вот исходник потерял, теперь переписываю.Подобные исходники для проги Куй гдето на форуме есть (в приколах, если не ошибаюсь), надо глянуть в них что да как писать.Как допишу свою прогу, выложу. Главное - не изобретать велосипед
делал подобное, вобщем то ничего сложного, правда исходники куда то подевались, суть в том что канву тебе нужно будет создавать на отдельной форме, тупо добавляешь еще одну форму в проект, затем убираешь у нее границы (свойство BorderStyle:= bsNone кажется так), растягиваешь её на весь экран, указываешь что бы форма всегда была по верх всех окон, делаешь саму форму прозрачной и на ней уже с канвой работаешь, рисуешь что хочешь, будет твое изображение по верх всех окон, но если я не ошибаюсь для того что бы твой крестик так же работал в играх (если ты делаешь что то вроде "crosshair hack") то вроде бы необходимо будет еще что то прописать, иначе при каждой перерисовки изображения в игре у тебя сам крестик будет мигать постоянно, ну вобщем разберешься думаю.
Сообщение отредактировал xXxSh@dowxXx - Вторник, 11.06.2013, 13:47
type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormPaint(Sender: TObject); begin //122,150,223 Form1.Canvas.Pen.Color:= $00DF967A; Form1.Canvas.Pen.Width:=2; // repeat {Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2+5,Form1.Height div 2); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2-5,Form1.Height div 2); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2,Form1.Height div 2+5); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2,Form1.Height div 2-5);} Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2+5,Screen.Height div 2); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2-5,Screen.Height div 2); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2,Screen.Height div 2+5); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2,Screen.Height div 2-5);
// sleep(1000); // until 1=1; end;
procedure TForm1.FormCreate(Sender: TObject); begin //122,150,223 Form1.Canvas.Pen.Color:= $00DF967A; //repeat {Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2+5,Form1.Height div 2); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2-5,Form1.Height div 2); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2,Form1.Height div 2+5); Form1.Canvas.MoveTo(Form1.Width div 2,Form1.Height div 2); Form1.Canvas.LineTo(Form1.Width div 2,Form1.Height div 2-5);} Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2+5,Screen.Height div 2); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2-5,Screen.Height div 2); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2,Screen.Height div 2+5); Form1.Canvas.MoveTo(Screen.Width div 2,Screen.Height div 2); Form1.Canvas.LineTo(Screen.Width div 2,Screen.Height div 2-5);
// sleep(1000); //until 1=1; end;
end.
Добавлено (11.06.2013, 15:08) --------------------------------------------- Тут такая проблема вылезла - если игра развернута на весь экран он не отрисовывается и фпс жутко падает
Тут такая проблема вылезла - если игра развернута на весь экран он не отрисовывается и фпс жутко падает
да, такая проблема действительно присутствует, но тут дело уже в другом, я как то уже сталкивался с этим, оказывается нельзя просто так изменив свойство "FormStyle" добиться того что бы твоя форма была так же и по верх графического окна игры, если ты запустишь игру в оконном режиме тогда твоя форма будет поверх игры прорисовываться, ну а если же в полный экран, то тогда для того что бы добиться прорисовки поверх игры придется писать свой код в виде DLL и инжектиться в процесс игры, так как там на разных уровнях обработка происходит.
смотря что за игра, вобще "crosshair hack" такой сомнительный хак что мало какие антихаки его вылавливают, ведь в основном он работает только у тебя на компе, только визуально тобишь графически и с сервером никак не связывается, такого рода хаки ловят только конкретные античит программы, чьи клиенты ставятся на комп каждому игроку, что бы делать скриншоты с экранов их мониторов (PunkBuster, Steam и тп.), все остальное не палит "crosshair hack".
Цитата (Hargen)
А нельзя както перехватить дескриптор окна игры и использовать его?
Можно взять образец винлокера, не нужные функции удалить,а там есть функция что бы окно поверх окон было. Жизнь сложна когда учишься на своих ошибках, а зачем учиться на своих, не проще ли на чужих?