Jump to content
Muxe Inc Forums

Recommended Posts

Guest WAJIM   
Guest WAJIM

Так 99.9% всех вставок именно в редакторе делаются.

И еще я не пойму, зачем нужна настройка Вставка из буфера с StrLen()? Кому её может понадобиться отключить? После отключения при вставке дикий мусор может валиться из памяти.

 

Share this post


Link to post
Share on other sites
Garl    0

тут лучше CandyMan'а мучать - это его инициатива менять буфер и параметры

Share this post


Link to post
Share on other sites
Garl    0
16 minutes ago, Guest Onio said:

не растет кокос!

контрольный пример с 

11
22
33

скопировать 22 и вставить 

вроде работает

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON
Quote

вставку поправили. но в редакторе финальный #00 присутствует.

У меня всё как положено, никаких нулей.

Share this post


Link to post
Share on other sites
Garl    0
3 minutes ago, Guest DRON said:

У меня всё как положено, никаких нулей.

вставляем, сохраняем, открываем в хекс-редакторе

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

Посмотрите снова код той функции где WideCharToMultiByte и CharToOemBuff, там явно есть разница в обработке разных форматов. Код выбирает первый подходящий формат возвращённый EnumClipboardFormats при этом некоторые программы в начале списка ставят Unicode, а некоторые ANSI. Та часть кода что работает с Unicode делает всё правильно и поэтому я ошибку не увидел, а та что с ANSI неправильно, поэтому там действительно пишется лишний ноль.

Вообще подход в корне неверный, нужно просто запрашивать GetClipboardData(CF_OEMTEXT) и не мучиться, потому как:

Quote

The system performs implicit data format conversions between certain clipboard formats when an application calls the GetClipboardData function. For example, if the CF_OEMTEXT format is on the clipboard, a window can retrieve data in the CF_TEXT format. The format on the clipboard is converted to the requested format on demand.

 

Share this post


Link to post
Share on other sites
Garl    0
30 minutes ago, Guest DRON said:

Вообще подход в корне неверный, нужно просто запрашивать GetClipboardData(CF_OEMTEXT) и не мучиться, потому как:

из вордпада тогда русские буквы не вставятся...

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

GetClipboardData(CF_UNICODETEXT)+WideCharToMultiByte точно должен работать, тем более что сейчас только он и работает.

Share this post


Link to post
Share on other sites
Guest Onio   
Guest Onio

где-то тупо добавлен +1 или пропущен -1

StrLen, уж звиняйте, работает железно

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

Скорее пропущен -1, так как считается StrLen+1, чтобы буфер выделить.

Share this post


Link to post
Share on other sites
Guest WAJIM   
Guest WAJIM

Вот мой код либы из 2005, работал в 2K/XP (и вроде даже в 98) железобетонно. :)

 

Clipbrd.bas

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

Я понял почему у меня не работали 32-х битные версии: в системе был включен DEP для всех программ, а DN с DEP-ом не совместим. Это решается или добавлением в исключения или убиранием флажка IMAGE_SCN_MEM_EXECUTE в секции кода (замена в NDN.EXE байта по смещению 0x20F с 0xE0 на 0xC0).

Так же в 64-х битной версии есть проблема отсутствующая в 32-х битной. Если в 64-х битной версии запустить из меню или по Ctrl+Shift+Fx не консольное приложение (notepad.exe например), то до закрытия этого приложения DN "подвисает", а в 32-х битной я могу нажать Ctrl+C и продолжить работу.

Причина следующая: в 32-х битной версии устанавливается (SetConsoleCtrlHandler) хитрый обработчик убивающий (TerminateProcess) cmd.exe при нажатии Ctrl+C, а в 64-х битной версии вместо хитрого обработчика ставится заглушка (Result:=True). Хитрый обработчик присутствует в обоих версиях поэтому ошибку я успешно исправил даже не имея исходников.

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON
23 minutes ago, Guest Onion said:

cmd /c start notepad

Можно просто start "" notepad. Но не все испытывают любовь к подобным костылям и авторы DN решили когда-то заморочиться и решить эту проблему раз и навсегда.

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

В новых версиях больно много ошибок "Плохой архив", раньше ошибка появлялась только при первом заходе в битый архив, а теперь при любых действиях включая выход из этого архива.

Share this post


Link to post
Share on other sites
Garl    0
8 hours ago, Guest DRON said:

Я понял почему у меня не работали 32-х битные версии: в системе был включен DEP для всех программ, а DN с DEP-ом не совместим. Это решается или добавлением в исключения или убиранием флажка IMAGE_SCN_MEM_EXECUTE в секции кода (замена в NDN.EXE байта по смещению 0x20F с 0xE0 на 0xC0).

Так же в 64-х битной версии есть проблема отсутствующая в 32-х битной. Если в 64-х битной версии запустить из меню или по Ctrl+Shift+Fx не консольное приложение (notepad.exe например), то до закрытия этого приложения DN "подвисает", а в 32-х битной я могу нажать Ctrl+C и продолжить работу.

Причина следующая: в 32-х битной версии устанавливается (SetConsoleCtrlHandler) хитрый обработчик убивающий (TerminateProcess) cmd.exe при нажатии Ctrl+C, а в 64-х битной версии вместо хитрого обработчика ставится заглушка (Result:=True). Хитрый обработчик присутствует в обоих версиях поэтому ошибку я успешно исправил даже не имея исходников.

срочно написать Радеку , 

аолучить пароль  от исходников

сделать всё хорошо

залить исходники обратно Радеку 

 

я тоже начинал с активного пользователя NDN

Share this post


Link to post
Share on other sites
Garl    0
6 hours ago, Guest DRON said:

В новых версиях больно много ошибок "Плохой архив", раньше ошибка появлялась только при первом заходе в битый архив, а теперь при любых действиях включая выход из этого архива.

плата за перечитывание файлов ;) - fixed

Share this post


Link to post
Share on other sites
Garl    0

автообновление победил как ночью постараюсь причесать код и выложить 

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

Посмотрите пожалуйста сортировку по "Времени Создания" и "Времени Посл. доступа" в "Ветвь каталога", вряд ли там что-то сложное.

И не подскажите, что всё таки делают опции:

Use old type mask - Use old way to match group indexes for files in file panel
Use tree for mask - use a tree to match the group indexes

Share this post


Link to post
Share on other sites
Guest Onio   
Guest Onio
1 hour ago, Guest DRON said:

И не подскажите, что всё таки делают опции:

Use old type mask - Use old way to match group indexes for files in file panel
Use tree for mask - use a tree to match the group indexes

Должно быть авторы NDN по специальности ближе к инженерам, и задачу повышения стабильности решают понятным для себя образом — дублированием систем.

...Прием, прием, только что отказала третья опция, иду на последней! Прием!!! А-а-а.... †

Share this post


Link to post
Share on other sites
Garl    0
1 hour ago, Guest Onio said:

 понятным для себя образом — дублированием систем.

не! опция для каждого возможного варианта.

в некоторых случаях можно было бы просто сделать по новому, ан нет! надо сделать опцию чтобы можно было вернуть как было...

 

 

Share this post


Link to post
Share on other sites
Garl    0
3 hours ago, Guest Onio said:

Use tree for mask - use a tree to match the group indexes

это всё для hgroups.ini

использовать маску для каталогов  - запретить использовать '<' для обозначения цифр аля 'r<<' = .r00-r99

использовать старый тип маски  =  использовать только ".ext" вместо  например *log.txt

по хорошему у меня обе опции выключены...

 

Share this post


Link to post
Share on other sites
Guest DRON   
Guest DRON

При выборе папки через Alt+Shift+0 или Alt+Цифра она переводится в нижний регистр, причем при выборе того же самого через Alt+F1/F2 такого преобразование не происходит.
Можно было бы и забить, но тут мы приходим ко второму багу: при перемещении файлов диск назначение определяется с учётом регистра, то есть при перемещении с F:\ на f:\ на самом деле происходит копирование+удаление.

 

31 minutes ago, Garl said:

по хорошему у меня обе опции выключены...

Аналогично.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×