Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизФункция CERapiInit Найти похожие ветки
← →
XGarik (2005-09-15 14:08) [0]Помогите!!! Очень срочно!!!
Для синхронизации пк с кпк использую библиотеку RAPI.DLL.
Суть проблемы в проверке состояния подключения кпк к пк. Использую функцию CERapiInit данной библиотеки, которая в случае успеха возвращает 0.if CERapiInit=0 then
showmessage("Устройство подключено")
else
showmessage("Ошибка! Устройство не подключено");
Данный код работает только при подключенном устройстве, а если устройство отсоединить или выключить, то произойдет подвисание программы и происходит ожидание завершения функции... Пробовал использовать try... except (результат тот же)...
Как это обойти? Всю голову поломал, никак не могу с этим справиться (ума не хватает).
Читал MSDN и пробовал разобраться с еще 1-й функцией CERapiInitEX, но безрезультатно. Искал также в Гугле, нашел множество примеров, но не один не работал!
← →
Tonich © (2005-09-15 15:16) [1]а ты на чем пишешь для кпк?
← →
Tonich © (2005-09-15 15:20) [2]или не пишешь для него, а лишь хочешь слить данные ?
← →
XGarik (2005-09-27 09:28) [3]Народ! Все оказалось просто я использовал кривопереведенную с Си версию модуля RAPI.pas. Вот окончательная версия рабочего модуля, который проверяет подключение КПК к компу:
var
ri : TRapiInit;
hRes : HRESULT;
dwRet : DWORD;
flag: boolean;
begin
flag:=true;
repeat
ri.cbSize := sizeof(ri);
hRes := CeRapiInitEx(ri);
dwRet := WaitForSingleObject(ri.heRapiInit, 5000);
if (dwRet <> WAIT_OBJECT_0) OR (SUCCEEDED(ri.hrRapiInit) = FALSE) then
begin
CeRapiUninit;
if Application.MessageBox("КПК не подключен!!!" + Chr(13) + "Установите КПК в USB-кредл и нажмите " + Chr(34) + "Да" + Chr(34) + " для продолжения работы или " + Chr(34) + "Нет" + Chr(34) + " для отмены загрузки/выгрузки данных.","Внимание",mb_IconWarning + MB_YESNO)=IDNO then
begin
flag:=false;
Exit;
end;
end;
until ((dwRet <> WAIT_OBJECT_0) OR (SUCCEEDED(ri.hrRapiInit) = FALSE))=false;
Обновленная (точнее версия в которой все запохало) версия модуля RAPI.PAS:
http://www.modaco.com/index.php?act=Attach&type=post&id=8173
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c