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

Вниз

работа с com портами   Найти похожие ветки 

 
огого   (2004-11-05 12:42) [0]

Под win2000 делаю все это, а  DataOut(0,3FC);, DataOut(3,3FC); не работают почему-то?
PortIO.sys находится в каталоге с exe.

function OpenPort():integer; //запускать один раз при инициализации приложения
begin
try
 ser1:= "PortIO"; //ключ реестра
 ser2:= "All port system";//DisplayName
 hSCManager:=OpenSCManager(nil,nil,SC_MANAGER_CREATE_SERVICE);//открываем SC Manager базу данных
 GetFullPathName("PortIO.sys",sizeof(acDriverPath),@acDriverPath,lpfPart); //полный путь
 path:= acDriverPath;
   //hService:= OpenService(hSCManager,PChar(ser1),SERVICE_START+$10000);
 hService:=CreateService(hSCManager,ser1,ser2,SERVICE_START+$10000,
          SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START,SERVICE_ERROR_IGNORE,
          Path, nil, nil, nil, nil, nil);//создаем сервис драйвера
 str3:="SYSTEM\CurrentControlSet\Services\PortIO";//путь в реестре
 openkey:=RegOpenKeyEx(HKEY_LOCAL_MACHINE,str3,0,KEY_CREATE_SUB_KEY + KEY_SET_VALUE,Hkey1);
 dwProcessId:=GetCurrentProcessId;//получаем Id процесса
 str4:= "ProcessId";
 openkey:=RegSetValueEx(Hkey1,str4,0, REG_DWORD,@dwProcessId, sizeof(DWORD));
 lpc:=nil;
 StartService(hService,0, lpc); //запускаем сервис
 RegDeleteValue(hkey1,str4);//удаляем значенпе в реестре
 RegCloseKey(hkey1); //закрываем ключ
 DeleteService(hService); //удаляем сервис
 CloseServiceHandle(hService);
 CloseServiceHandle(hSCManager);//закрываем SC Manager
 result:=0; //всё прошло успешно
except
 result:=1;//что-то не так
end;
end;

procedure DataOut(ByteValue:byte;PortAddress:word); //подпрограмма работы с внешним кодом вывода значений через порт
 asm
    push dx//сохранить значения  dx в стеке
    mov dx,PortAddress//dx=0378h адресс порта данных
    mov al, ByteValue //al=ByteValue данные для вывода в порт
    out dx,al //операция вывода
    pop dx // востановить значения
 end;


 
Reindeer Moss Eater ©   (2004-11-05 12:55) [1]

Целых две статьи есть прямо на этом сайте.


 
-=SS=- ©   (2004-11-05 13:03) [2]


> out dx,al /

А что ты хотел ?  Под Win NT эта команда не покатит. Выдаст ошибку чтото типа "Priveleged Instruction"



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.044 c
6-1097349507
Ralf
2004-10-09 23:18
2004.12.19
Пересылка файлов


14-1101415411
syte_ser78
2004-11-25 23:43
2004.12.19
Как деинсталировать компонент?


14-1101561274
DelphiN!
2004-11-27 16:14
2004.12.19
Плагин для 1С для удаленного просмотра отчетов (через модем)


9-1092551454
ALex123
2004-08-15 10:30
2004.12.19
Wave


8-1095737837
Ктото
2004-09-21 07:37
2004.12.19
Как вывести картинку или 3D-объект на форму на OpenGL ?