ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5711  
Старый 09.03.2010, 18:08
Seravin
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #5712  
Старый 09.03.2010, 18:20
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

А че лучше то? Размер кода огромен, для того что бы всего лизь закрыть варнинг..... Хотя смотря что ТС дальше хочет делать....
 
Ответить с цитированием

  #5713  
Старый 09.03.2010, 18:40
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

ребят - благодарю.
Под виртуалкой не видно, как курсор движется... - он как бы остается на месте. Но нажатие кнопки происходит - там, где нужно.
"При нормальных условиях".

Хотя нажать "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..
 
Ответить с цитированием

  #5714  
Старый 09.03.2010, 22:48
noveek
Познающий
Регистрация: 29.12.2008
Сообщений: 45
Провел на форуме:
83889

Репутация: 1
По умолчанию

Привет античат вопрос в следующем:

Как можно реализовать в Delphi seeders через сайт ?
Делаю некое подобие торрента
 
Ответить с цитированием

  #5715  
Старый 10.03.2010, 13:34
TrueBit
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме:
2482290

Репутация: 29
По умолчанию

Как очистить куки в IdCookieManager1?
 
Ответить с цитированием

  #5716  
Старый 10.03.2010, 13:52
Скотти
Новичок
Регистрация: 17.09.2009
Сообщений: 18
Провел на форуме:
884969

Репутация: 11
Отправить сообщение для Скотти с помощью ICQ
По умолчанию

Цитата:
Сообщение от TrueBit  
Как очистить куки в IdCookieManager1?
Если не ошибаюсь))
IdCookieManager1.CookieCollection.Clear;
 
Ответить с цитированием

  #5717  
Старый 10.03.2010, 13:53
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

TIdCookieManager.CookieCollection.Delete();

Скотти, Точнее Delete()

Последний раз редактировалось fenixelite; 10.03.2010 в 13:57..
 
Ответить с цитированием

  #5718  
Старый 10.03.2010, 15:16
qwert135
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме:
33126

Репутация: 0
По умолчанию

Народ,помогите плиз, с задачей на паскале.Найти корни квадратного трехчлена с заданными комплексными коэффициентами(при решении использовать тип запись).По идее раз коэффициенты комплексные,значит и решение должно быть комплексным числом,только как сделать тип для работы с ними я понять не могу.
 
Ответить с цитированием

  #5719  
Старый 10.03.2010, 21:12
Nizhegorodets
Участник форума
Регистрация: 21.03.2009
Сообщений: 207
Провел на форуме:
554850

Репутация: 119
Отправить сообщение для Nizhegorodets с помощью ICQ
По умолчанию

Как так сделать, чтобы:
Если компонент Webbrowser полностью загрузил страничку сайта, то выполняется какое-либо действие.
 
Ответить с цитированием

  #5720  
Старый 10.03.2010, 21:20
AquaKlaster
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
Провел на форуме:
1605524

Репутация: 523
Отправить сообщение для AquaKlaster с помощью ICQ
По умолчанию

Цитата:
Сообщение от Nizhegorodets  
Как так сделать, чтобы:
Если компонент Webbrowser полностью загрузил страничку сайта, то выполняется какое-либо действие.
У Webbrowser есть событие OnDocumentComplite, оно тебе и поможет выполнить какое-либо действие когда страницы сайта загрузится полностью=)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2565 Вчера 18:18
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ