Есть обычный listbox Код (Text): CONTROL "",15,"listbox",WS_VSCROLL | LBS_STANDARD | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | ES_LEFT | ES_AUTOVSCROLL,0,166,211,20 Задача: Передать туда такие данные, которые потом нельзя будет в точности получить. Строки добавляются вот так: Код (Text): invoke SendMessage,hListBox,LB_INSERTSTRING,-1,offset szData Передаю даже szData db "test",13,10,0 а потом с легкостью считываю через Код (Text): invoke SendMessage,hListBox,LB_GETCURSEL,0,0 .if eax != -1 invoke SendMessage,hListBox,LB_GETTEXT,eax,offset buffer .endif И даже 13,10 на месте Реально-ли передавать такие символы, чтобы либо через LB_INSERTSTRING не передавалась, либо через LB_GETTEXT коряво считывалась?
Перепроверил все байты с 1 по 255, все корректно возвращает. Есть идеи? Хотябы в какую сторону копать..
а какая цель? невозможность получить программно или извне вручную? p.s. может пригодится сохранять через LB_SETITEMDATA. хотя опять же зависит от того, какова цель.
Замени оконную процедуру(SetWindowLong,hListBox,GWL_WNDPROC,addr NewProc) и там уже обламывай LB_GETTEXT
Xerx, это чат-клиент. В listbox e хранятся ники. Ник может содержать любой символ кроме " " (это tab). Были мысли вписать такой ник, чтобы нельзя было забанить или кикать )) Повторюсь, проверил все символы от 1 по 255 и все корректно listbox возвращает. Видимо не получиться
в таком случае лучшее решение - подмена оконной функции. либо, что более правильно, проверка на "особенный" ник в самом коде удаления.
Клиент никакую проверку не делает. Получает ник из списка и отправляет серверу Код (Text): invoke SendMessage,hListBox,LB_GETCURSEL,0,0 .if eax != -1 invoke SendMessage,hListBox,LB_GETTEXT,eax,offset buffer invoke wsprintfA,offset buffer2,$CTA0("Serv zaban etogo kozlika %s"),offset buffer invoke send,client,offset buffer2,ebx,0 .endif
Поставить этому окну хук на все сообщения, получающие текст ListBox'а и возвращать всё, что душе угодно.
что за бред пишут ) клиент-серверное приложение Клиент Flasher'a отправляет инфу о нике на сервер. Сервер рассылает инфу о нике остальным клиентам. Другой клиент (админский) получет эту инфу, и решает забанить Flasher'a. Вы собираетесь ставить хуки/подменять WndProc на другом клиенте, который располагается хз где?