Главная страница
    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.007 c
14-39850
VictorT
2002-04-04 11:04
2002.05.13
Задачка


1-39695
Riko
2002-04-29 14:57
2002.05.13
Обработка трех кнопок.


6-39814
Aleksey_K
2002-03-01 16:24
2002.05.13
SMTP


1-39782
Explorer
2002-04-27 15:20
2002.05.13
EhLib


1-39711
HDD
2002-04-25 07: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
Английский Французский Немецкий Итальянский Португальский Русский Испанский