![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
закрытие окна [D7, WinXP]
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]Сначала ответь "А зачем?"