Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

закрытие окна [D7, WinXP]


Страницы:   1 2

lehich ©   (2004-06-01 17:50:00) 

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

заранее премного благодарен...


Iraizor   (2004-06-04 17:06:00) [1]

мля , че не ясного я написал ?!
sendmessage(findwindow(nil,'Калькулятор'),wm_close,0,0);


lehich   (2004-06-04 11:35:00) [2]

хм.... бред.... пишу:
postmessage(findwindow(PAnsiChar('Калькулятор'),nil),wm_quit,0,0);
просто программка завершает работу (а не калькулятор)

пишу:
postmessage(findwindow(PAnsiChar('Сапер'),nil),wm_quit,0,0);
сапера прибивает...

пишу:
postmessage(findwindow(PAnsiChar(nameish),nil),wm_quit,0,0);
и ввожу в Edit1 название Сапер, тоже выкидывает... сапер естественно остается жить...)))))) ваще запутался...


lehich   (2004-06-04 11:15:00) [3]

может будет так проще разобраться:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Edit1: TEdit;
   Label2: TLabel;
   Edit2: TEdit;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 nameish, namekon :String;

implementation

{$R *.dfm}
//замена заголовка окна
procedure TForm1.Button1Click(Sender: TObject);
begin
nameish := Edit1.Text;
namekon := Edit2.Text;
if findwindow(nil,PAnsiChar(nameish)) = 0
 then showmessage ('Окно с таким заголовком отсутствует!!!')
 else setwindowtext (findwindow(nil,PAnsiChar(nameish)),PAnsiChar(namekon));
end;
//возвращение к старому заголовку
procedure TForm1.Button2Click(Sender: TObject);
begin
setwindowtext (findwindow(nil,PAnsiChar(namekon)),PAnsiChar(nameish));
end;
//закрытие окна
procedure TForm1.Button3Click(Sender: TObject);
begin
postmessage(findwindow(PAnsiChar(nameish),nil),wm_quit,0,0);
end;

end.


lehich   (2004-06-04 11:10:00) [4]

так... стоп... что я делаю неправильно... почему например:
postmessage(findwindow( 'Калькулятор',nil),wm_quit,0,0);
не пришибает его??? скорее всего я где-то путаю термины... caption "Калькулятор" или я не прав???


Iraizor   (2004-06-04 11:02:00) [5]

lehich ©  
ты проверил что я тебе написал ? вместо 'SuperIgra' caption окна.
Я проверил - калькулятор валит на ура
SciCalc- это тип главного окна калька


lehich   (2004-06-04 10:08:00) [6]

2GanibalLector откуда получить это название 'SciCalc' ???

заранее премного благодарен...


Iraizor   (2004-06-04 07:23:00) [7]

lehich ©
а , да сорри, ошибся вот так :
sendmessage(findwindow(nil,'SuperIgra'), wm_close,0,0);


GanibalLector   (2004-06-03 22:17:00) [8]

2 lehich ©
Ну ты даешь...
Для калькулятора : postmessage(findwindow( 'SciCalc',nil),wm_quit,0,0);
Может проблема в имени класса окна? Тогда ищи IngSoft Windows Scanner!!!Лучше не бывает.
На счет едита: там нужно так findwindowex(findwindow('TForm1',nil),0,'TEdit',nil);


lehich   (2004-06-03 17:33:00) [9]

нифига.... даже какой-то дряной "Калькулятор" прибить не может....((((((

слушайте может я что-то где-то не прописал??? или в мой генетический код вкралась ошибка??? ))))))))


Iraizor   (2004-06-03 17:28:00) [10]

lehich ©

sendmessage(findwindow(nil,'SuperIgra'), wm_destroy,0,0);


lehich   (2004-06-03 17:14:00) [11]

ррррррррррррррррр... ну не закрываются окна.... блин помню же что поднимали эту тему... не могу найти...(((((( и помню что работало закрытие...(((((( подскажите плыз... очень нужно...


Cobalt   (2004-06-03 16:08:00) [12]

А если добавить обработку ошибок?
типа,
hw:=findwindow(PAnsiChar(nameish),nil);
if hw<>0
then postmessage(hw,wm_quit,0,0);


lehich   (2004-06-03 09:05:00) [13]

2Cobalt
nameish := Edit1.Text;


Cobalt   (2004-06-02 21:53:00) [14]

А что у вас в "nameish"?
И как она объявлена/заполняется?


lehich   (2004-06-02 17:26:00) [15]

2GanibalLector конструкция:
postmessage(findwindow(PAnsiChar(nameish),nil),wm_quit,0,0);
//nameish :String

просто выкидывает из проекта...(((( и окно естественно не закрывает...


Cobalt   (2004-06-02 11:41:00) [16]

2 lehich ©   (01.06.04 21:41) [4]
>2Cobalt для того чтобы работники не могли отказаться от закрытия
>окан игр без подтверждения...))))

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


lehich   (2004-06-02 10:55:00) [17]

респект... сенкс...))))


GanibalLector   (2004-06-01 22:39:00) [18]

postmessage(хендл ТОГО окна,wm_quit,0,0);
Пример: postmessage(findwindow( 'Notepad',nil),wm_quit,0,0);


lehich   (2004-06-01 21:41:00) [19]

2Cobalt для того чтобы работники не могли отказаться от закрытия окан игр без подтверждения...))))


Cobalt   (2004-06-01 21:29:00) [20]

Сначала ответь "А зачем?"


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо