programmer_of_fortune |
Отправлено: 17.09.2003, 12:29 |
|
Не зарегистрирован
|
Как в билдере получить дескриптор окна программуі, а потом свернуть эту программу???, если можно, присылайте исходники....Заранее спасибо |
|
Admin |
Отправлено: 17.09.2003, 14:21 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
EnumWindows()
CloseWindow()
Получаем список всех главных окон приложений
и сворачиваем их.
CODE |
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <winbase.h>
bool __stdcall EnumProc(HWND hWnd,long k);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
EnumWindows((WNDENUMPROC)EnumProc,0);
}
//---------------------------------------------------------------------------
bool __stdcall EnumProc(HWND hWnd,long k)
{
char buffer[100];
if(hWnd==NULL) return false;
GetWindowText(hWnd,buffer,sizeof(buffer));
if (buffer[0] && IsWindowVisible(hWnd) &&
GetWindowLong(hWnd,GWL_HWNDPARENT)==0) {
CloseWindow(hWnd);
}
return true;
}
//---------------------------------------------------------------------------
|
|
|
Иван |
Отправлено: 17.09.2003, 14:26 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
см. ф-ию FindWindow для получения дескриптора окна
|
|
Гость_programmer_of_fortune |
Отправлено: 18.09.2003, 15:53 |
|
Не зарегистрирован
|
Спасибо большое Admin за исходники....Работает как часы....Даже не ожидал что все так просто...еще раз спасибо.... |
|
Гость_programmer_of_fortune |
Отправлено: 19.09.2003, 12:41 |
|
Не зарегистрирован
|
Еще вопрос к Admin: данный код прекрасно работает в Application, но при попытке создать службу, не дает никакого эффекта.....Как быть? |
|
Иван |
Отправлено: 19.09.2003, 17:41 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
И у меня вопрос такой:
Можно ли как нибудь получить дескриптор окна,над которым в данный момент находится указатель мыши.
Имеется ввиду всех открытых окон,а не только моей программы.
Спасибо!
|
|