ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 08.05.2010, 20:27
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

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

омг! *censored*! человек просил на чем? на инди?!
 

  #2  
Старый 09.05.2010, 10:11
Uname-A
Познающий
Регистрация: 19.08.2008
Сообщений: 69
Провел на форуме:
458484

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

Здравствуйте.

Каким способом вы бы посоветовали получить список окон определённого приложения?

Процесс запускаю через CreateProcess
То есть, в наличии есть pid процесса.

Хотелось бы получить список из handle окна и его названия(ну будет handle, название я и сам найду)
 

  #3  
Старый 09.05.2010, 10:21
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

EnumChildWindow
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 

  #4  
Старый 09.05.2010, 10:58
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


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

Здравствуйте.

Какой функцией WinApi можно получить список элементов чужого приложения, имея его HANDLE. Под "элементами" я имею ввиду Edit, ComboBox, Memo etc...

Заранее спасибо.
 

  #5  
Старый 09.05.2010, 13:24
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

через FindWindowEx попробуй или как вариант EnumChildWindows

Последний раз редактировалось slesh; 09.05.2010 в 13:27..
 

  #6  
Старый 09.05.2010, 14:10
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

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

mailbrush, вот небольной пример, если я правильно понял вопрос. Положи 2 Листбокса на форму (для наглядности).

Код:
procedure TForm1.Button1Click(Sender: TObject);
var h: HWND;
    i: byte;
begin
ListBox1.Clear;
ListBox2.Clear;
h:=FindWindow(nil, PChar(Заголовок окна));
GetSubChild(h);
for i:=0 to ListBox1.Items.Count-1 do
  EnumProc(StrToInt(ListBox1.Items[i]), 0);
end;
Следующие процедуры взяты с delphikingdom.ru и чуть переделаны.
Код:
Procedure TForm1.GetSubChild(wd:HWnD); // 
Передаем  в процедуру описатель окна 
верхнего уровня
Var Cw:HWnd;			 // 
Описываем еще один описатель
Begin
// Очищать список в процедуре нельзя !!!
If WD=0 then Exit;	  	      // Если 
родительское окно не определено то уходим
Cw := FindWindowEx(Wd, 0, nil, nil); // Находим 
первый элемент произвольного класса
 while (Cw <> 0) do		     // Есть еще 
что искать ?
    begin
       ListBox1.Items.Add(IntToStr(Cw)); 	        // 
Добавим описатель в виде текста в список
       Application.ProcessMessages;                        
 // Дадим поработать другим
       GetSubChild(Cw);			
         //Вызываем себя, но родительское 
окно уже Cw
       Cw := FindWindowEx(Wd, Cw, nil, nil);       // 
Ищем следующие дочернее окно
     End;
End;

function TForm1.EnumProc (WD: HWnd; Param: 
LongInt): Boolean; stdcall;
var Nm:Array[0..255] of Char; // буфер для 
имени
    Cs: Array[0..255] of Char; // буфер для 
класса
Begin 
GetWindowText(Wd,Nm,255); // считываем 
текст заголовка окна
GetClassName(Wd,Cs,255); // считываем 
название класса окна 
ListBox2.Items.Add(String(Nm)+'/'+String(Cs));  
//Запихнули в список название и класс
EnumProc:=True;
End;
 

  #7  
Старый 09.05.2010, 17:25
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


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

=Zeus=, именно это! Спасибо!
 

  #8  
Старый 11.05.2010, 09:39
Syntaxys
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме:
521298

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

Код:
for i:=1 to x do
  for j:=i to x do
   if StrToIntDef(form1.StringGrid1.Cells[j,i],-1)>0 then
    begin
        n:=n+1;
        m[n,1]:=StrToInt(form1.StringGrid1.Cells[0,i]);
        m[n,2]:=StrToInt(form1.StringGrid1.Cells[j,0]);
        m[n,3]:=StrToIntDef(form1.StringGrid1.Cells[j,i],-1);
    end;
Объясните пожалуйста выделенную функцию. понятно, что функция StrToIntDef конвертирует строку из ячейки, но "-1" что означает?
 

  #9  
Старый 11.05.2010, 10:54
h(f)ucker
Участник форума
Регистрация: 11.07.2009
Сообщений: 175
Провел на форуме:
2835808

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

Функция StrToIntDef конвертирует строку с целым IntegerString, такую как '123', в целое Integer, возвращая Default, если преобразование не удалось.

Код:
 function StrToIntDef ( const IntegerString : string; Default : Integer ) : Integer;
По сути, просто число которое будет присвоено при ошибке конвертирования.
 

  #10  
Старый 11.05.2010, 18:45
denjf
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
Провел на форуме:
592199

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

как заставить idhttp работать через соксы?
как правельно привязать idsocksinfo к idhttp?
 
 





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


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




ANTICHAT.XYZ