Вопрос № 71978: здрасти вам!!! вот такой вопросик хочу написать прогу с использованием ручного сканера штрих кодов! что бы снимая штрих код выполнялось! ну не важно какое нибудь действие!!!
у кого есть какая инфа скиньте будьте любезны!!!...Вопрос № 72047: Уважаемые эксперты, скажите, как можно реализовать в программе нажатие клавиши Delete. Заранее благодарен....Вопрос № 72056: Добрый день, уважаемые эксперты
Помогите разобраться с багом. Создал dll, подключаю ее к приложению работает все нормально, только при выгрузке выдает кучу ошибок типа "прочитан неверный адрес" и Runtime error 216. В dll использую ...Вопрос № 72066: как узнать путь к системной директории Windows (C:\WINDOWS\system32\) без копания в реестре
Буду признателен за пример...Вопрос № 72079: Добрый день
Вопрос таков: есть dll, которая работает с COM-портом, а в ней метод Connect который подключается к порту. если библиотека привязана статически к приложению, подключение происходит нормально. а когда динамически пытаюсь подключит...Вопрос № 72094: Доброго времени суток. Скажите, как можно сделать в программе переход в Word'е на несколько символов вперёд или назад от курсора. Заранее благодарен....
Вопрос № 71.978
здрасти вам!!! вот такой вопросик хочу написать прогу с использованием ручного сканера штрих кодов! что бы снимая штрих код выполнялось! ну не важно какое нибудь действие!!!
у кого есть какая инфа скиньте будьте любезны!!!
Отправлен: 21.01.2007, 21:54
Вопрос задал: Shnuroid (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Volhit
Здравствуйте, Shnuroid!
Инфы нет. Могу поделиться своим опытом. Данные обычно передаются через ком-порт. Возвращается строка символов, которые распознал сканер. Проще некуда.
Ответ отправил: Volhit (статус: 2-ой класс)
Ответ отправлен: 24.01.2007, 12:50
Отвечает: Morgen_krsk
Здравствуйте, Shnuroid!
Инфы у меня уже не осталость, просто поделюсь опытом работы со сканером штрих-кода. Есть два вида сканеров: одни пишут данные в com-порт, другие ставятся как виртуальная клавиатура и пишут данные "от имени" клавиатуры.
Формат данных - набор символов, которые сканер распознает, плюс символ перевода строки (по умолчанию). Есть возможность программировать на сканере преамбулу и постамбулу.
Никакого предварительного сообщения, что далее пойдут данные со сканера нет. В случае с com-портом сканер при чтении кэширует в себе последовательность кодов (во внутренюю память) и при чтении данных через com-порт выдает их все одним потоком .. код, перевод строки, код, перевод строки и т.д. Пришите программу, которая открывает порт, раз в секунду читает данные из com-порта и парсит.
В случае с виртуальной клавиатурой, если находитесь на активном элементе, можно ничего не делать, только правильно обработать enter. Если же охота независимо от элемента обрабатывать, то я делал так: программировал на сканере преамбулу (какой-нибудь редко используемый символ), перехватывал все сообщения с клавиатуры и как встречал преамбулу, писал во внтуренний буфер, как встречал постамбулу (перевод строки), то выкидывал сообщение ...
Надеюсь, что мой опыт вам поможет.
Ответ отправил: Morgen_krsk (статус: 2-ой класс)
Ответ отправлен: 24.01.2007, 19:10 Оценка за ответ: 5 Комментарий оценки: большое спасибо за ответ!!! я только начал кавырять эту тему ваша информация надеюсь мне очень пригодится в дальнейшим!!!
Вопрос № 72.047
Уважаемые эксперты, скажите, как можно реализовать в программе нажатие клавиши Delete. Заранее благодарен.
Ответ отправил: Bob Johnson (статус: Академик) Россия, Калуга WWW:Программирование ---- Ответ отправлен: 22.01.2007, 11:40 Оценка за ответ: 5 Комментарий оценки: Спасибо огромное.
Отвечает: Volhit
Здравствуйте, Фёдоров, Иван, Сергеевич!
2 способа есть. 1-й - с помощью сообщений Windows (SendMessage)
2-й - с помощью функции SendInput WinAPI.
Ответ отправил: Volhit (статус: 2-ой класс)
Ответ отправлен: 24.01.2007, 12:03 Оценка за ответ: 4 Комментарий оценки: Большое спасибо. Учту.
Вопрос № 72.056
Добрый день, уважаемые эксперты
Помогите разобраться с багом. Создал dll, подключаю ее к приложению работает все нормально, только при выгрузке выдает кучу ошибок типа "прочитан неверный адрес" и Runtime error 216. В dll использую WideString, OleVariant, несколько форм. ShareMem подключал, но не дает результата( что с ним что без него - картина одинаковая)
Отправлен: 22.01.2007, 11:25
Вопрос задал: Leshka (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Маренич Владимир
Здравствуйте, Leshka!
ShareMem должен быть объявлен первым в секции USES как в DLL так и в файле проекта, который его использует.
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 22.01.2007, 11:39 Оценка за ответ: 3 Комментарий оценки: не помогло. при выгрузке все равно ошибка EInvalidPointerException
Вопрос № 72.066
как узнать путь к системной директории Windows (C:\WINDOWS\system32\) без копания в реестре
Буду признателен за пример
Отправлен: 22.01.2007, 12:14
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, source!
var
Dir: String;
begin
setlength(Dir, MaxPath);
GetWindowsDirectory(PChar(Dir), MaxPath);
Dir := String(PChar(Dir));
...
end;
Отвечает: Rusland
Здравствуйте, source!
Есть функция GetSystemDirectory.
UINT GetSystemDirectory(
LPTSTR lpBuffer, // address of buffer for system directory
UINT uSize // size of directory buffer
);
Ответ отправил: Rusland (статус: Профессионал) Россия, Казань Адрес: Мой адрес не дом и не улица, мой адрес советский союз WWW:Логотипы для сотовых телефонов ---- Ответ отправлен: 22.01.2007, 12:25
Отвечает: Mexes
Здравствуйте, source!
Поправлю предыдущий пост в том плане, что там получаем путь к папке Windows (она же WinNT), а для system32 надо использовать GetSystemDirectory:
{$APPTYPE CONSOLE}
uses Windows;
const MaxPath=65000;
var Dir: array [0..MaxPath] of char;
begin
GetSystemDirectory(Dir,MaxPath);
WriteLn(Dir);
ReadLn;
end.
У меня выдало c:Windowssystem32
Ответ отправил: Mexes (статус: 6-ой класс)
Ответ отправлен: 22.01.2007, 12:34
Отвечает: Shizuku Tsukishima
Здравствуйте, source!
Можно использовать вмсето прямых путей переменные среды. Например путь к system32 будет выглядеть так:
%windir%system32
Подробнее о переменных среды можно прочитать здесь: http://oszone.net/3673
Ответ отправила: Shizuku Tsukishima (статус: 3-ий класс)
Ответ отправлен: 22.01.2007, 12:36
Отвечает: Volhit
Здравствуйте, source!
Сегодня уже отвечал на похожий вопрос. Можно например так:
function GetHomePath: string;
var ps : PChar;
begin
Result := '';
ps := AllocMem(256);
If GetEnvironmentVariable('SystemRoot', ps, 256) > 0 then
Result := ps + 'system32';
// После использования освобождаем занятую память
FreeMem(ps);
end;
Ответ отправил: Volhit (статус: 2-ой класс)
Ответ отправлен: 24.01.2007, 10:57
Вопрос № 72.079
Добрый день
Вопрос таков: есть dll, которая работает с COM-портом, а в ней метод Connect который подключается к порту. если библиотека привязана статически к приложению, подключение происходит нормально. а когда динамически пытаюсь подключится говорит что порт недоступен. а хотелось бы подключать ее динамически. как быть?
Отправлен: 22.01.2007, 13:22
Вопрос задал: Leshka (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Volhit
Здравствуйте, Leshka!
А не могли бы вы привести код, как библиотеку динамически подключаете? Есть подозрение, что не совсем правильно. Как объявляете прототип функции Connect?
Ответ отправил: Volhit (статус: 2-ой класс)
Ответ отправлен: 24.01.2007, 10:39 Оценка за ответ: 5 Комментарий оценки: Извините за беспокойство, я такой же начинающий и забыл указать в прототипе stdcall. Ваше предположение оправдалось
Вопрос № 72.094
Доброго времени суток. Скажите, как можно сделать в программе переход в Word'е на несколько символов вперёд или назад от курсора. Заранее благодарен.
Отвечает: Bob Johnson
Здравствуйте, Пастарнаков Роман Олегович!
сделать из своей программы, которая работает отдельно от ворда?
вариант 1 - послать ворду WM_KEYDOWN + WM_KEYUP на клавиши курсора (это вызовет его перемещение)
вариант 2 - работать с вордом через OLE. второй вариант предпочтительнее.
Ответ отправил: Bob Johnson (статус: Академик) Россия, Калуга WWW:Программирование ---- Ответ отправлен: 22.01.2007, 15:59 Оценка за ответ: 5 Комментарий оценки: Спасибо за совет.