Главная страница
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.023 c
8-1095743439
DelphiN!
2004-09-21 09:10
2004.12.19
Компонент для перетикания изображения


14-1102017055
AYU
2004-12-02 22:50
2004.12.19
Дайте ссылки на что-нить интересное


14-1100500058
Cobalt
2004-11-15 09:27
2004.12.19
Больные депутаты


1-1101913844
Суслик
2004-12-01 18:10
2004.12.19
Руссификация MessageDlg


14-1101512945
e-mike
2004-11-27 02:49
2004.12.19
каталог m3