Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с портами [D7, WinXP]


Светлана ©   (2007-02-26 15:01:00) 

Контроллер параллельного ввода-вывода нестандартный, работает с внешними устройствами через порт  компьютера (порт выбран с адресом для подключения внешних устройств и работал контроллер еще под DOC). Также  успешно работал под Windows 98, программирвался в Delphi 4 с помощью ассемблерных вставок.  При смене системы на Windows XP не работает. Поняла, что нужен драйвер или можно использовать WinAPI, но опыта нет. Посоветуйте, пожалуйста, что делать, где и что почитать, как реанимировать контроллер. Спасибо.


tesseract   (2007-02-27 10:37:00) [1]

Используй WinIO - отличная халявная обёртка.


Belorus   (2007-02-26 22:34:00) [2]


function ZwSetInformationProcess (h : Cardinal; l : cardinal; P : Pointer; l2: cardinal):cardinal;stdcall;external 'NTDLL.dll';

procedure EnablePrivilege;
var  hToken: dword;
    tkp: TOKEN_PRIVILEGES;
    ReturnLength: dword;
begin
 tkp.PrivilegeCount:=1;
 OpenProcessToken(INVALID_HANDLE_VALUE, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
 LookupPrivilegeValue(nil,'SeTcbPrivilege', tkp.Privileges[0].Luid);
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, false, tkp, SizeOf(TOKEN_PRIVILEGES), tkp, ReturnLength);
 CloseHandle(hToken);
 ZwSetInformationProcess(GetCurrentProcess, $10, nil, 0 );
end;


И где то в политиках безопасности нужно добавить пользователю права системы. Пользователю который будет запускать процесс.


tipman   (2007-02-26 20:21:00) [3]

я когда то сталкивался с этим - программатор отказался работать. Поскольку управляющая программа работала напрямую с портами. Ессно исходников не было.
использовал программу AllowIo.exe (porttalk22), там вродь всё просто.


Сергей М.   (2007-02-26 15:23:00) [4]

В большинстве случаев достаточно использовать WinAPI, но твой ли это случай - это напрямую зависит от того, как используется порт.


Наверх

Титульная страница Поиск, карта сайта Написать письмо