Форум Gatchina OnLine

Форум Gatchina OnLine (https://forumgol.ru/index.php)
-   Программирование и разработка (https://forumgol.ru/forumdisplay.php?f=4)
-   -   Окна в делфи (https://forumgol.ru/showthread.php?t=5311)

Kostyan 11.05.2007 16:36

Окна в делфи
 
Доброго времени!
Нужна помощь на Delphi. Необходимо составить список дескрипторов всех окон(в том числе и других приложений) и определить какое окно из этого списка активно в данный момент.

Executer 11.05.2007 23:20

Окна какого типа нужны?
просто вот код, который выводит в файл дескрипторы всех окон, и вконце выводит дискриптор активного окна (но это на С++, но вин апи - он и в африке вин апи...):
PHP код:


ofstream fo
;
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
    
fo << (unsigned)hwnd << "\n"
    return 
true;
}

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     
HINSTANCE hPrevInstance,
                     
LPTSTR    lpCmdLine,
                     
int       nCmdShow)
{
    ....
    
fo.open("txt.txt");
    
EnumWindows((WNDENUMPROC)EnumWindowsProcNULL);
    
fo << "Active = "<< (unsigned)GetForegroundWindow() << "\n"
    
fo.close();
    ....



Kostyan 12.05.2007 14:12

Спасибо, буду разбираться...

Kostyan 12.05.2007 19:17

Так, с этим разобрался. А как получить имя процесса, которому принадлежит окно, если нам известен только дескриптор окна?

Executer 12.05.2007 20:18

У тебя есть MSDN?
Если нет, обязатеьно найди и установи. Конечно если еще планируешь использовать вин апи. Вот выписка из него:
PHP код:

The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionallythe identifier of the process that created the window

Syntax

DWORD GetWindowThreadProcessId
(          HWND hWnd,
    
LPDWORD lpdwProcessId
);
Parameters

hWnd
[inHandle to the window
lpdwProcessId
[outPointer to a variable that receives the process identifier. If this parameter is not NULLGetWindowThreadProcessId copies the identifier of the process to the variableotherwiseit does not
Return 
Value

The 
return value is the identifier of the thread that created the window


Executer 12.05.2007 21:08

Кстати , могу выложить кучу полезного кода по Win32. Рихтер его автор.
Только вот куда выложить...
потому как если тебе нужно именно название а не ID, процесса, то придется выкоблучиваться по-разному.... А там все показано и описано. И не только это...

Kostyan 12.05.2007 21:15

Цитата:

Сообщение от Executer (Сообщение 215982)
Кстати , могу выложить кучу полезного кода по Win32. Рихтер его автор.
Только вот куда выложить...
потому как если тебе нужно именно название а не ID, процесса, то придется выкоблучиваться по-разному.... А там все показано и описано. И не только это...

Выкладывай Рихтера куда захочешь, мне всёравно:) Заранее спасибо.

Executer 13.05.2007 16:33

В том то и дело, что выбора у меня не много :). Нужно ткнуть носом - куда скопировать, чтобы у меня права на запись были...
Во внешнюю сеть некуда выкидывать, так что нужно что-то тут - в сети...

Kostyan 13.05.2007 16:41

Цитата:

Сообщение от Executer (Сообщение 216517)
В том то и дело, что выбора у меня не много :). Нужно ткнуть носом - куда скопировать, чтобы у меня права на запись были...
Во внешнюю сеть некуда выкидывать, так что нужно что-то тут - в сети...

ftp://ftp.gatchina.ru:21/Change/Kostyan/

ftp://anime.sz:21/Upload/

Executer 13.05.2007 20:24

Выложил:
ftp://ftp.gatchina.ru/Change/Kostyan/Win32


Текущее время: 17:42. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot