Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
1-39756
Demon Ltd
2002-04-28 00:44
2002.05.13
Работа с фильтрацией


7-39880
Polard
2002-02-14 12:49
2002.05.13
Версия Win


4-39903
Devid
2002-03-10 18:40
2002.05.13
Как сделать чтобы image не мигала когда я рисую???


1-39774
VCL
2002-04-11 15:40
2002.05.13
RichEdit моргает!!


1-39684
hooky-mars
2002-04-23 22:05
2002.05.13
Путь к файлу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский