Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

работа с 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.03 c
3-1100713004
_Lucky_
2004-11-17 20:36
2004.12.19
Пользователи, права и т.д.


3-1100752786
Vladik
2004-11-18 07:39
2004.12.19
Настройки соединения для ADO


14-1101561146
asdqwer
2004-11-27 16:12
2004.12.19
Количество отснятых фильмов


4-1099207243
Beginer
2004-10-31 10:20
2004.12.19
Debug API


3-1100762606
Term
2004-11-18 10:23
2004.12.19
Автоинкремент своими руками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский