Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

09.03.2010, 18:08
|
|
Участник форума
Регистрация: 25.11.2009
Сообщений: 201
Провел на форуме: 866555
Репутация:
226
|
|
По моему тут лучше через handle делать.
Нагло copy/paste, автора не знаю, но исходник очень даже наплохой
Код:
unit UMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ComCtrls, StdCtrls, ExtCtrls, ExtDlgs, Menus;
var
fmWinapi: TfmWinapi;
tnCurrent: TTreeNode;
SelWindow: HWND;
implementation
var
SelDC: HDC;
NewStyle: LongInt;
NewExStyle: LongInt;
NewClassStyle: LongInt;
{$R *.dfm}
function GetIcon(wnd:hwnd):TIcon;
begin
result:=TIcon.Create;
result.Handle:=GetClassLong(wnd,GCL_HICON);
end;
procedure SetIcon(wnd:hwnd; icon:TIcon);
begin
postmessage(wnd,wm_seticon,0,icon.Handle);
end;
function GetText(wnd:hwnd):string;
var p:array [0..256] of char;
begin
with fmWinAPi do
GetWindowText(wnd,p,255);
result:=strpas(p);
end;
procedure TfmWinapi.GetWindowParams(Wnd: HWND);
var
I, WL: LongInt;
begin
WL:= GetWindowLong(wnd, GWL_STYLE);
for I:= 0 to lvWndStyle.Items.Count -1 do
if ((LongInt(lvWndStyle.Items[i].Data)) and WL) <> 0 then lvWndStyle.Items[i].Checked:= True else lvWndStyle.Items[i].Checked:= False;
WL:= GetWindowLong(wnd, GWL_EXSTYLE);
for I:= 0 to lvExWndStyle.Items.Count -1 do
if ((LongInt(lvExWndStyle.Items[i].Data)) and WL) <> 0 then lvExWndStyle.Items[i].Checked:= True else lvExWndStyle.Items[i].Checked:= False;
WL:= GetClassLong(wnd, GCL_STYLE);
for I:= 0 to lvClassStyle.Items.Count -1 do
if ((LongInt(lvClassStyle.Items[i].Data)) and WL) <> 0 then lvClassStyle.Items[i].Checked:= True else lvClassStyle.Items[i].Checked:= False;
end;
procedure TfmWinapi.GetWindowExParams(Wnd: HWND);
var
PParam: array[0..127] of Char;
ProcId: LongInt;
hInst: THandle;
Rct: TRect;
begin
edWText.Text:= GetText(wnd); //Caption
GetClassName(wnd, PParam, 128); //Class
lbWClass.caption:= StrPas(PParam); //Class
lbWHandle.caption:= IntToStr(wnd); //Handle
lbWHmenu.caption:=IntToStr(GetMenu(wnd));// HMenu
ImWIcon.Picture.Icon:=GetIcon(wnd);
GetWindowText(GetParent(wnd), PParam, 127);//Parent Text
EdPWText.text:= StrPas(PParam); //Parent Text
lbPWHandle.caption:= IntToStr(GetParent(wnd));//Parent Handle
GetWindowRect(Wnd, Rct);
edWLeft.text:= IntToStr(Rct.Left);//Left
edWTop.text:= IntToStr(Rct.Top);//Top
edWWidth.text:= IntToStr(Rct.Right-Rct.Left);//Width
edWHeight.text:= IntToStr(Rct.Bottom-Rct.Top);//Height
edWRight.text:= IntToStr(Rct.Right);//Right
edWBottom.text:= IntToStr(Rct.Bottom);//Bottom
lbWDC.Caption:= IntToStr(SelDC); //DC
hInst:= GetWindowLong((wnd), GWL_HINSTANCE);//HInstance
lbWHinst.Caption:= IntToStr(hInst);
GetWindowThreadProcessId(wnd, @ProcId);
lbWProcId.Caption:= IntToStr(ProcId);//ProcId
end;
function ChildTree(Handle: HWND; Info: Pointer): BOOL; stdcall;
var
Text: array [0..256] of Char;
tnParent: TTreeNode;
begin
GetWindowText(handle, text, 200);
if Text <> '' then
tnParent:= fmWinapi.tvList.Items.AddChildObject(tnCurrent, StrPas(Text), TObject(Handle))
else begin
GetClassName(Handle,text,255);
tnParent:= fmWinapi.tvList.Items.AddChildObject(tnCurrent,text, TObject(Handle));
end;
tnParent.ImageIndex:= 1;
tnParent.SelectedIndex:= 1;
Result:= True;
end;
function ParentTree(Handle: HWND; Info: Pointer): BOOL; stdcall;
var
Text: array [0..256] of Char;
tnParent: TTreeNode;
begin
GetWindowText(handle, text, 200);
if (Text <> '') then
tnParent:= fmWinapi.tvList.Items.AddObject(nil, StrPas(Text), TObject(Handle))
else begin
GetClassName(Handle,text,255);
tnParent:= fmWinapi.tvList.Items.AddObject(nil, text, TObject(Handle));
end;
tnParent.ImageIndex:= 0;
tnParent.SelectedIndex:= 0;
Result:= True;
end;
procedure TfmWinapi.BuildTree;
var
i: integer;
begin
tvList.Items.Clear;
EnumWindows(@ParentTree, 0);
for i:= 0 to tvList.Items.Count do begin
tnCurrent:= tvList.Items[i];
EnumChildWindows(Integer(tvList.Items[i].Data), @ChildTree, 0);
end;
end;
procedure TfmWinapi.FormCreate(Sender: TObject);
var
ListItem: TListItem;
begin
btnRefresh.Click;
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_POPUP'; ListItem.Data:= TObject($80000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_CHILD'; ListItem.Data:= TObject($40000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_MINIMIZE'; ListItem.Data:= TObject($20000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_VISIBLE'; ListItem.Data:= TObject($10000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_DISABLED'; ListItem.Data:= TObject($8000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_CLIPSIBLINGS'; ListItem.Data:= TObject($4000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_CLIPCHILDREN'; ListItem.Data:= TObject($2000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_MAXIMIZE'; ListItem.Data:= TObject($1000000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_CAPTION'; ListItem.Data:= TObject($C00000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_BORDER'; ListItem.Data:= TObject($800000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_DLGFRAME'; ListItem.Data:= TObject($400000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_VSCROLL'; ListItem.Data:= TObject($200000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_HSCROLL'; ListItem.Data:= TObject($100000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_SYSMENU'; ListItem.Data:= TObject($80000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_THICKFRAME'; ListItem.Data:= TObject($40000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_GROUP'; ListItem.Data:= TObject($20000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_TABSTOP'; ListItem.Data:= TObject($10000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_MINIMIZEBOX'; ListItem.Data:= TObject($20000);
ListItem:= lvWndStyle.Items.Add; ListItem.Caption:= 'WS_MAXIMIZEBOX'; ListItem.Data:= TObject($10000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_DLGMODALFRAME'; ListItem.Data:= TObject(1);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_NOPARENTNOTIFY'; ListItem.Data:= TObject(4);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_TOPMOST'; ListItem.Data:= TObject(8);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_ACCEPTFILES'; ListItem.Data:= TObject($10);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_TRANSPARENT'; ListItem.Data:= TObject($20);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_MDICHILD'; ListItem.Data:= TObject($40);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_TOOLWINDOW'; ListItem.Data:= TObject($80);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_WINDOWEDGE'; ListItem.Data:= TObject($100);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_CLIENTEDGE'; ListItem.Data:= TObject($200);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_CONTEXTHELP'; ListItem.Data:= TObject($400);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_RIGHT'; ListItem.Data:= TObject($1000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_RTLREADING'; ListItem.Data:= TObject($2000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_LEFTSCROLLBAR'; ListItem.Data:= TObject($4000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_CONTROLPARENT'; ListItem.Data:= TObject($10000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_STATICEDGE'; ListItem.Data:= TObject($20000);
ListItem:= lvExWndStyle.Items.Add; ListItem.Caption:= 'WS_EX_APPWINDOW'; ListItem.Data:= TObject($40000);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_VREDRAW'; ListItem.Data:= TObject(1);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_HREDRAW'; ListItem.Data:= TObject(2);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_KEYCVTWINDOW'; ListItem.Data:= TObject(4);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_DBLCLKS'; ListItem.Data:= TObject(8);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_OWNDC'; ListItem.Data:= TObject($20);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_CLASSDC'; ListItem.Data:= TObject($40);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_PARENTDC'; ListItem.Data:= TObject($80);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_NOKEYCVT'; ListItem.Data:= TObject($100);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_NOCLOSE'; ListItem.Data:= TObject($200);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_SAVEBITS'; ListItem.Data:= TObject($800);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_BYTEALIGNCLIENT'; ListItem.Data:= TObject($1000);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_BYTEALIGNWINDOW'; ListItem.Data:= TObject($2000);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_GLOBALCLASS'; ListItem.Data:= TObject($4000);
ListItem:= lvClassStyle.Items.Add; ListItem.Caption:= 'CS_IME'; ListItem.Data:= TObject($10000);
end;
procedure TfmWinapi.btnApplyClick(Sender: TObject);
var i:integer;
begin
NewStyle:= 0;
for i:= 0 to lvWndStyle.Items.Count -1 do begin
if lvWndStyle.Items[i].Checked then NewStyle:= NewStyle or LongInt(lvWndStyle.Items[i].Data);
end;
NewExStyle:= 0;
for i:= 0 to lvExWndStyle.Items.Count -1 do begin
if lvExWndStyle.Items[i].Checked then NewExStyle:= NewExStyle or LongInt(lvExWndStyle.Items[i].Data);
end;
NewClassStyle:= 0;
for i:= 0 to lvClassStyle.Items.Count -1 do begin
if lvClassStyle.Items[i].Checked then NewClassStyle:= NewClassStyle or LongInt(lvClassStyle.Items[i].Data);
end;
SetWindowLong(SelWindow, GWL_STYLE, NewStyle);
SetWindowLong(SelWindow, GWL_EXSTYLE, NewExStyle);
SetClassLong(SelWindow, GCL_STYLE, NewClassStyle);
SetWindowPos(SelWindow, HWND_TOP, StrToInt(EdWLeft.Text),StrToInt(EdWTop.Text), StrToInt(EdWWidth.Text), StrToInt(EdWHeight.Text), SWP_FRAMECHANGED);
SetIcon(SelWindow,imWIcon.picture.icon);
end;
Урезал чутьчуть.
Если хочешь могу проект просто кинуть
Последний раз редактировалось Seravin; 09.03.2010 в 18:12..
|
|
|

09.03.2010, 18:20
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
А че лучше то? Размер кода огромен, для того что бы всего лизь закрыть варнинг..... Хотя смотря что ТС дальше хочет делать....
|
|
|

09.03.2010, 18:40
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
ребят - благодарю.
Под виртуалкой не видно, как курсор движется... - он как бы остается на месте. Но нажатие кнопки происходит - там, где нужно.
"При нормальных условиях".
Хотя нажать "yes" в UAC таким образом невозможно...=\
Делаю sleep 5000, настраиваю клик в нужном месте, запускаю "опасную программу" - и фиг там) Не кликает оно по окну этому(
По обычным окнам - нормально, а по варнингу от UAC - не хочет
Буду изыскивать другие способы запустить программу, блокируемую UAC без вмешательства юзера=\
ps. так же под дефолтным "недоадминским" аккаунтом в семерке заблочены такие консольные функции, как "net user" и "at". Обе доступны только "Built-in" администратору, аккаунт которого по умолчанию disabled.
Включить его можно через lusrmgr.msc... а вот через net user - фиг(
Кстати у built-in administrator UAC вообще отключен по дефолту... как и у SYSTEM я думаю.
Тока как бы запуститься под ними из-под недоадмина без вмешательства пользователя.... 
Последний раз редактировалось ErrorNeo; 09.03.2010 в 18:45..
|
|
|

09.03.2010, 22:48
|
|
Познающий
Регистрация: 29.12.2008
Сообщений: 45
Провел на форуме: 83889
Репутация:
1
|
|
Привет античат вопрос в следующем:
Как можно реализовать в Delphi seeders через сайт ?
Делаю некое подобие торрента
|
|
|

10.03.2010, 13:34
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Как очистить куки в IdCookieManager1?
|
|
|

10.03.2010, 13:52
|
|
Новичок
Регистрация: 17.09.2009
Сообщений: 18
Провел на форуме: 884969
Репутация:
11
|
|
Сообщение от TrueBit
Как очистить куки в IdCookieManager1?
Если не ошибаюсь))
IdCookieManager1.CookieCollection.Clear;
|
|
|

10.03.2010, 13:53
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
TIdCookieManager.CookieCollection.Delete();
Скотти, Точнее Delete() 
Последний раз редактировалось fenixelite; 10.03.2010 в 13:57..
|
|
|

10.03.2010, 15:16
|
|
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме: 33126
Репутация:
0
|
|
Народ,помогите плиз, с задачей на паскале.Найти корни квадратного трехчлена с заданными комплексными коэффициентами(при решении использовать тип запись).По идее раз коэффициенты комплексные,значит и решение должно быть комплексным числом,только как сделать тип для работы с ними я понять не могу.
|
|
|

10.03.2010, 21:12
|
|
Участник форума
Регистрация: 21.03.2009
Сообщений: 207
Провел на форуме: 554850
Репутация:
119
|
|
Как так сделать, чтобы:
Если компонент Webbrowser полностью загрузил страничку сайта, то выполняется какое-либо действие.
|
|
|

10.03.2010, 21:20
|
|
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
Провел на форуме: 1605524
Репутация:
523
|
|
Сообщение от Nizhegorodets
Как так сделать, чтобы:
Если компонент Webbrowser полностью загрузил страничку сайта, то выполняется какое-либо действие.
У Webbrowser есть событие OnDocumentComplite, оно тебе и поможет выполнить какое-либо действие когда страницы сайта загрузится полностью=)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|