Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Функция 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 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1130915005
Saruwatari
2005-11-02 10:03
2005.11.27
Кто что знает об ипотеке поделитесь мыслями...


14-1131265857
Леший
2005-11-06 11:30
2005.11.27
Прошивка мобильника


14-1130069374
kaif
2005-10-23 16:09
2005.11.27
Может ли исчезать архимедова сила?


14-1130968681
partizan
2005-11-03 00:58
2005.11.27
MAC адресс и IP


2-1131219086
Bkmz
2005-11-05 22:31
2005.11.27
Как отправить почту?