Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Open/save   Найти похожие ветки 

 
ATLANTIDO   (2002-03-04 15:02) [0]

Может кто знает, как контролировать окна open/save для
ограничения действий пользователя, или вообще их тупо закрывать.


 
Fellomena   (2002-03-06 10:48) [1]

см.
GetTopWindow
WM_CLOSE
WS_HIDE
hooks

Вариантов тьма 8)


 
ted   (2002-03-06 11:43) [2]

>ATLANTIDO
У меня по сути такой же вопрос.......
Найду ответ напишу......


 
ted   (2002-03-06 11:53) [3]

Используй
OFNHookProc


 
ATLANTIDO   (2002-03-07 00:04) [4]


> Используй
> OFNHookProc

А что это такое ?


 
ATLANTIDO   (2002-03-10 15:53) [5]

Придумал 2 варианта:
Вариант1:

procedure TForm1.Timer2Timer(Sender: TObject);
var
H: THandle;
Buffer: array [0..255] of Char;
begin
H := GetForegroundWindow;
GetWindowText(H, Buffer, SizeOf(Buffer));
if (Pos("Открытие", Buffer)<>0) or (Pos("Сохранение",Buffer) >0) or (Buffer="Microsoft Internet Explorer") then
PostMessage(FindWindow(Nil, Buffer), WM_QUIT, 0, 0); //(1)
end;

Диалоговые окна находит, закрывает, + вешает программу, которая их открыла. Как быть ?
Вариант 2:

procedure KillProgram(const AHandle: THandle);
const
PROCESS_TERMINATE = $0001;
var
ProcessHandle: THandle;
ProcessID: Integer;
begin
GetWindowThreadProcessID(AHandle, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, False, ProcessId);
TerminateProcess(ProcessHandle, 4);
end;

В варианте 1 вместо PostMessage делаем KillProgram
(строка выделеная "1"). Теперь вместе с диалоговым окном
убивает и окно "родитель". Тоже непорядок !


 
VuDZ   (2002-03-10 21:58) [6]

есть один извращённый метод, но не уверен, что прокатит под win9x - надо переопределить шаблоноткрытия/сохранения глобально и всё.

для win9x надо подправить ресурсы, а вот под win2k можно просто свою либу зарегистрировать.


 
ATLANTIDO   (2002-03-10 22:20) [7]


> есть один извращённый метод, но не уверен, что прокатит
> под win9x - надо переопределить шаблоноткрытия/сохранения
> глобально и всё.

Ты имееш в виду библиотеки свои подставить ?


 
VuDZ   (2002-03-10 22:30) [8]

нет, под винтукеем можно зарегистрировать свои типы стандыртных окон - EDIT И пр., и перекрыть стандартные.


 
ATLANTIDO   (2002-03-10 22:40) [9]

ого нифигасебе ! В форуме это не обсуждалось ? В каком направлении копать ?


 
VuDZ   (2002-03-10 22:48) [10]

а ты прямо по своей теме ищи, только не обязательно для ХР, по-моему, было для win2k


 
VuDZ   (2002-03-10 22:54) [11]

оп-с, вопросы перепутал :>

RegisterClass()

Windows NT/2000 or later: No window classes registered by a .dll are unregistered when the .dll is unloaded. A .dll must explicitly unregister its classes when it is unloaded.

Так что можно попробовать :>

Но где-то был флажок, не помню в какой ф-ии, который указывает винде, что эта либа содержит классы окон, которые надо загружать автоматически - найду - напишу



Страницы: 1 вся ветка

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
6-39824
zondor
2002-03-01 12:05
2002.05.13
проблемы с Telnet


1-39747
BLiN
2002-04-27 17:53
2002.05.13
Как организовать задержку в Delphi меньше 1 мс


1-39757
Makss
2002-04-27 19:59
2002.05.13
Проблема с загрузкой проги


1-39761
KIG_Soft
2002-04-25 07:09
2002.05.13
ShellListView


4-39901
Hiks1
2002-03-12 06:18
2002.05.13
Alt+F4