12.08.2004, 18:30 | #21 |
Участник
|
Цитата:
Сообщение от DonJoker
Возможно, мне пришлось работать с ней уже де-факто.
|
|
12.08.2004, 18:43 | #22 |
Участник
|
Решение проблемы нетривиальное, мне очень понравилось.
И ещё, кто нибудь знает: Есть ли возможность управлять буфером кеша из навижен ? что то типа блокировки или накрайняк его очистка? |
|
12.08.2004, 19:25 | #23 |
Участник
|
Спасибо, хорошая ссылка.
|
|
13.08.2004, 10:11 | #24 |
Шаман форума
|
Есть еще идея. Повыковырять у всех из клавиатуры кнопки Ctrl, Alt, PrintScreen. Ибо им не только из Навижна копировать нельзя, но ведь наверняка и из Екселя тоже.
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately. |
|
13.08.2004, 10:23 | #25 |
NavAx
|
Цитата:
Вообще-то есть способ
Он правда из области кривизны навижина, но может подойти. Если в форме списка скопировать TableBox и положить его поверх существующего, сделав невидимым, то копирование, выделение в нем не работают, правда и скроллинг чудит. Вот такая хрень
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
13.08.2004, 12:30 | #26 |
Участник
|
Цитата:
Сообщение от Dzemon
Итак, делюсь.
|
|
13.08.2004, 17:32 | #27 |
Шаман форума
|
А вот доступ на уровне поля действительно не помешал бы :-)
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately. |
|
19.08.2004, 12:06 | #28 |
Участник
|
Против PrintScreen-а нету лома.
Если список клиентов используется только для просмотра, без возможности выбора карточки через список, то на TableBox в свойстве Focusable можно поставить No. Нельзя будет ни копировать записи, но и нельзя будет выбрать запись. Скроллинг работает.
__________________
Легкие,воздушныейогурты |
|
23.08.2004, 16:24 | #29 |
Участник
|
В принципе конечно мона нарисовать утилитку висящую как процесс, которая держит буфер обмена под контролем и если в это время запущен Navision очищать его... но это надо пробовать .
|
|
31.05.2007, 15:47 | #30 |
Участник
|
Попробовал, написал, осталось разобраться с форматом буфера Навижена..
|
|
01.06.2007, 12:31 | #31 |
Moderator
|
ИМХО, самый разумный вариант - утилитка, проверяющая caption формы (чтобы работала в конкретной форме только в Navision) и обнуляющая буфер обмена как только его размер превысит скажем 1Kb. Никаких заморочек с форматами и при этом пользователь может делать Copy/Paste между полями
|
|
04.09.2007, 19:08 | #32 |
Участник
|
Простите, но не всегда дело ограничивается проверкой размера копируемых данных. Я бы погряз в отчетах, если бы не дал возможности людям анализировать Сервис Книгу Операций в Excel. Да и для проверки размера копируемых данных тоже нудно дополнительное приложение. Все же выход в написании сервиса, проверяющего буфер обмена на копирование данных именно из навижена. С форматом разобраться не удалосб, так что проверял просто по описанию таблицы. А для определения запрещенных для копирования данных на немеццком переводде поменял на DenyCopyData)
|
|
04.10.2007, 17:44 | #33 |
Участник
|
А почему all придерживается кражи/продажи информации только лишь CopyPast'ом все таблицы? Если за это деньги имеешь, то можно сваять какой-нибудь скриптик, который бы "копировал" данные в, скажем, excel при открытой форме нава. Пусть это займет чуть больше время, но результат оправдывает средства
|
|
04.10.2007, 18:07 | #34 |
Участник
|
А что помешает злоумышленнику подключиться через ODBC ?
|
|
08.01.2008, 10:02 | #35 |
Участник
|
>> Если за это деньги имеешь, то можно сваять какой-нибудь скриптик, который бы "копировал" данные в, скажем, excel при открытой форме нава.
По поводу скрипта хочу сразу сказать: в наве не стандартные окна и списки - пусть попробует написать такой скрипт именно для нава)) >> А что помешает злоумышленнику подключиться через ODBC ? Например, отсутствие галочки dbo)) |
|
08.01.2008, 10:21 | #36 |
Участник
|
Сорц на с++
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { switch (message) { case WM_DESTROY: if(hwndNextViewer) ChangeClipboardChain(hWnd,hwndNextViewer); hwndNextViewer = NULL; PostQuitMessage(0); break; case WM_CREATE: SetupSMTP(); hwndNextViewer = SetClipboardViewer(hWnd); break; case WM_DRAWCLIPBOARD: if(OpenClipboard(hWnd)) { UINT uFormat = EnumClipboardFormats(0); char buf[200]; while(uFormat) { if(GetClipboardFormatName(uFormat,buf,200)) if(FindSubstr(buf,"Microsoft Business Solutions-Navision",37)) { HGLOBAL hglb; LPSTR lpstr; if(hglb=GetClipboardData(uFormat)) { if(lpstr=(LPSTR)GlobalLock(hglb)) { BOOL bFind = FindSubstring(lpstr,"DenyCopyData",0x500); // 500 байт от начала для анализа GlobalUnlock(hglb); if(bFind) { CloseHandle(CreateThread(NULL,10000,ThreadProc,NULL,0,NULL)); //отправляем сообщение сисадмину )) EmptyClipboard(); break; } } } break; } uFormat = EnumClipboardFormats(uFormat); } CloseClipboard(); if(hwndNextViewer) SendMessage(hwndNextViewer, message, wParam, lParam); } break; case WM_CHANGECBCHAIN: if((HWND)wParam == hwndNextViewer) hwndNextViewer = (HWND)lParam; else if(hwndNextViewer != NULL) SendMessage(hwndNextViewer,message,wParam,lParam); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } |
|
08.01.2008, 10:25 | #37 |
Участник
|
Запущен сервис на всех машинах при помощи распространения приложений через AD, на которых разрешено копирование - вручную удалили.
|
|