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

Вниз

Переопределение процедур меню другой программы   Найти похожие ветки 

 
Elen ©   (2006-05-19 15:52) [0]

Этот вопрос уже был задан на ветке НАЧИНАЮЩИХ, но думаю уместнее сюда его задать

Господа! Задача следующая : Есть стороннее приложение (AutoCAD, Word... иже с ними). В их меню присутствуют пункты СОХРАНИТЬ и СОХРАНИТЬ КАК. При их вызове выполняется стандартная процедура сохранения файла, но наши юзеры дают при сохранении имена какие угодно. Это мне не нравится, т.к. затрудняет поиск файлов
Например файл "ПРОРАБОТКИ.doc" называют скажем "046екорв.doc" (лишь бы сохранило). В дальнейшем чтобы найти файл с нужным содержимим приходится просматривать горы мусора.

Возникла идея, нельзя ли переопределить процедуры менюшек, дабы заставить пользователя своей программой правильно сформировать имя файла (Скажем с помощью карточки нарисованной мной в делфи).

Например документ содержит деталь из узла 123000, обозначение детали 123987, наименование - ПЛАНКА.
Надо сформировать имя - 123000_123987_ПЛАНКА.doc и сохранить уже с этим именем.

Заранее спасибо

P.S. Или подскажите другие методы


 
Сергей М. ©   (2006-05-19 16:08) [1]

Теоретически можно.

Практически - даже и не берись за эту задачу, ибо решается она совершенно с другой стороны - административным способом.


 
Elen ©   (2006-05-19 16:19) [2]

Сергей Админспособы уже рассматривались, и есть трудности организационного характера.
А даже ради интереса все-таки как?


 
Сергей М. ©   (2006-05-19 16:27) [3]


> все-таки как?


В принципе возможно, но стоит это немало.

Понимаешь о чем я ?


 
Elen ©   (2006-05-19 16:36) [4]

Ну что-ж приятно было пообщаться


 
GrayFace ©   (2006-05-19 17:00) [5]

Надо проверять правильность названия или генерировать его?


 
n0name   (2006-05-19 18:39) [6]

Переопределить можно.


 
Elen ©   (2006-05-22 07:59) [7]


> Переопределить можно.

Как?


 
Elen ©   (2006-05-22 08:20) [8]


>GrayFace ©  (19.05.06 17:00) [5]

Надо проверять правильность названия или генерировать его?


Генерировать


 
n0name   (2006-05-22 11:42) [9]


> Как?

Изменяешь адрес оконной процедуры для нужного окна на свой с помощью SetWindowLong.
Причём твоя WndProc должна быть в адресном пространстве целевого процесса.


 
Elen ©   (2006-05-22 12:22) [10]

Это для окна, а для менюшки?


 
n0name   (2006-05-22 13:42) [11]

Ну а в обработчике отлавливай сообщении о нажатии правой клавиши мышки.


 
GrayFace ©   (2006-05-22 18:02) [12]

А можно вообще не выводить диалог сохранения. Но лучше просто вставить нужный текст в Edit. А дальше пока и не надо идти - если изначально будет предлагаться правильное имя, да еще под страхом страшной расплаты, уж не будут наверное выдумывать свое.
Пока что самое сложное - сгенерировать имя.
Дальше:
Поставить хук на GetMessage
Дальше действовать по обстановке: если приходит WM_CREATE, то все делать при его получении, иначе, например, при WM_SHOWWINDOW.
Еще возможна проблема с наличием дргих диалогов сохранения, например, Export.


 
Elen ©   (2006-05-23 08:39) [13]


> GrayFace ©
Пока что самое сложное - сгенерировать имя.

Сгенерировать как раз несложно. Дело в том, что на предприятии имеется база данных спецификаций документов (чертежей), в которой очень строго по ГОСТ заполняются поля ОБОЗНАЧЕНИЕ, НАИМЕНОВАНИЕ и т.д., которые и составляют требуемое имя. Т.о. сделав клиентское приложения для связи БД и чертежа можно легко сформировать требуемое имя. Кроме того, в штампе чертежа (AutoCAD, Компас ) имется таже штамповая информация. и мы ее легко выдираем, занося в текстовые поля и БД. Но даже при этом подьзователь может сохранить файл где угодно и как угодно. 100% согласны, что нужен комбинированный подход, использование БД+Административные меры, но хотелось бы узнать, нет ли дополнительных возможностей ужесточить контроль.


 
balepa ©   (2006-05-23 08:56) [14]


> Elen ©   (23.05.06 08:39) [13]

"Административные меры" надо принимать тем более если есть ГОСТы по которым составляются "имена", а то потом и чертить будут не то и не так.


 
Elen ©   (2006-05-23 09:03) [15]

Благодарим всех за посильную помощь в решении вопроса. Согласны,как сказано выше, что требуется комбинированный подход, использование БД+Административные меры Буде биться дальше.
Тема закрыта



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
15-1157559096
BFG9k
2006-09-06 20:11
2006.09.24
Перевод XML в HTML


2-1157437863
worldmen
2006-09-05 10:31
2006.09.24
Программное изменение языков.


2-1157620454
Павлуха
2006-09-07 13:14
2006.09.24
не могу разобраться


15-1157028147
Ega23
2006-08-31 16:42
2006.09.24
Это всё ваши армейские ветки виноваты!


15-1157468245
tesseract
2006-09-05 18:57
2006.09.24
firebird - выдержит ли птичка мощный загруз ?





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