на главную
об игре

Привязка курсора к окну d2

Написал маленькую прогу на былдере, мб кому пригодится. Очень удобно например соркой летать, экономится время (так как всегда летаем на чуть большее расстояние).
http://ifolder.ru/29607498
Как юзать:
Запускаем exe, тыкаем lock. У вас есть секунда, чтобы навести курсор на окно, к которому нужно привязать курсор. Чтобы вернуть всё назад, табаемся в прогу и жмем enter.
Работает на 7-ке, насчет других ОС - не знаю).

Комментарии:  40
Тема закрыта. Публикация новых комментариев отключена.

#include
#pragma hdrstop
#include "Unit1.h"
#include
#include
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
RECT rcClip;
RECT rcOldClip;
HWND Wnd;
tagPoint Pos;
RECT Rect;
bool u1 = false;
std::string s;
AnsiString name = ExtractFilePath(Application->ExeName)+"pos.ini";

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (!u1) {
u1 = true;
Button1->Caption = "Unlock";
Sleep(1000);
GetClipCursor(&rcOldClip);
GetCursorPos(&Pos);
Wnd = WindowFromPoint(Pos);
Timer1->Enabled = true;
} else {
u1 = false;
Button1->Caption = "Lock";
Timer1->Enabled = false;
ClipCursor(&rcOldClip);
Label5->Caption = rcOldClip.left;
Label6->Caption = rcOldClip.top;
Label7->Caption = rcOldClip.right;
Label8->Caption = rcOldClip.bottom;
}
}

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
GetWindowRect(Wnd, &rcClip);
rcClip.left = rcClip.left + 5;
rcClip.right = rcClip.right - 5;
rcClip.top = rcClip.top + 29;
rcClip.bottom = rcClip.bottom -5;
ClipCursor(&rcClip);
Label5->Caption = rcClip.left;
Label6->Caption = rcClip.top;
Label7->Caption = rcClip.right;
Label8->Caption = rcClip.bottom;
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ifstream in;
int r;
in.open(name.c_str());
for (;in.peek()!=EOF;)
{
in>>r;
Form1->Left = r;
in>>r;
Form1->Top = r;
}
in.close();
}

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
ofstream in(name.c_str(),ios_base::in | ios_base::out | ios_base::trunc);
in << Form1->Left;
in << "\n";
in << Form1->Top;
in.close();
}

t.A.T.u., а то, что любые сторонние прожки запрещены, не смущаэ? %) Одмен одобряэ? ;)

Sleep(1000);
ShowMessage("u vas 5 sekund chtobi zalochit okno");
Sleep(5000);

vot tak norm mb :D

типо привязка к окну это чит?) xD
LGt_Justice, ни в коем разе. просто на моей работе, например, "чит" - это то, что Москва назвала читом..

Отступы большие, кажется. Когда я себе такую штуку делал - ставил 3/22 (это был AHK/WinGetPos и стандартный Aero, если что. Про XP уже не помню - мб там заголовок и более узкий был).
Т.е., по-хорошему, их надо делать конфигурируемыми.

Вот аналог такой же проги, только написанной на си:
Link. Запускаем прогу. Видим, что начался поиск окна д2. Запускаем д2, ждем до появления Messagebox`a, нажимаем Enter и играем. Чтобы сделать все назад, переключаемся на прогу, вводим любой символ и нажимаем Enter или просто нажимаем Ctrl+C.

ЗАГРУЗИТЬ ВСЕ КОММЕНТАРИИ
Новое на форуме Diablo 2