PortLPT w Win XP

0

Witam wszystkich.
Od jakiegos czasu probuje znaleŹĆ cos o sterowaniu portami
w win XP z poziomu Delphi.
Jezeli chodzi o port com to sa dwie mozliwosci:

  1. z WinApi
  2. zainstalowac sobie jakis komponent obslugujacy port com (np. CPort)

Ja jednak potrzebuje sterowac sygnalami rownoleglymi
do tego potrzebny jest port LPT
Mozliwosci sterowania tego portu sa niewielkie a mianowicie tylko
z poziomu assemblera poleceniami in i out
jednak w XP (ogolnie pod systemami NT) dostep do tych polecen jest
zabroniony

Czy istnieje jakas alternatywa dla polecen asemblera dla LPT
dla systemow NT ??
Czy jest moze np. jakis komponent lub plik *.pas umozliwiajacy taka transmisje ??

Pozdrawiam

Zuk ;)

Jeszcze zapomnialem.
Jakby ktos mial cos na ten temat to prosze o wiadomosc na maila:
[email protected]

dzieki ;)

0

Komponentów do obsługi LPT jeszcze nie widziałem (inna sprawa, że tez ich nie szukałem), ale w internecie mozna znaleźć biblioteki dll eksportujące funkcje zastepujące assemblerowe in i out.
Kilka przykładów :
InpOut32, WinIO, ZlPortIo.

Chyba najmniej kłopotliwa w zasosowaniu jest ta pierwsza. Ma wbudowany sterownik sys, więc nie trzeba się troszczyć, by znalazł się w jednym katalogu z programem i inicjować go, ale ze wszystkimi trzema programuje się podobnie.
Do sterowania na pewno Ci się przydadzą, natomiast nie nadają się do transmisji danych (no chyba że masz duuuuuużo czasu)

0

Witam,
po jakimś czasie odświeżam temat :D
co do sterowania LPTkiem pod WinXP to ja użyłem funkcjii WinApi:
najpierw ustawiamy zmienną globalną najlepiej

hLPT:HWND //uchwyt portu

następnie

hLPT:=CreateFile('LPT1',GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);

a później w odpowiedniej procedurze:

WriteFile(hLPT,data,1,ret,nil); * data to dane do wysłania o ret to dane odbierane.ret praktycznie nie *używam więc o tym parametrze duzo nie powiem.

no i na końcu:

CloseHandle(hLPT);

Tylko teraz mój problem: Jeśli pod port LPT nie jest nic podpięte i próbuje wykonać jakąś operacje na nim to program sie wiesza. Jak sprawdzić czy można wykonywać operacje na porcie LPT?

Chodzi mi o to żeby przyciski były dostępne tylko wtedy kiedy ich nacisnięcie nie spowoduje błędu(dostępne kiedy coś podpięte pod LPT)

0

No tak komponenty...
Ale osobiscie wolałbym to zrobić nie używając komponentów ale właśnie WinApi. Więc dalej czekam na odpowiedź bardziej doświadczonych programistów jak sprawdzić czy coś jest podpięte pod LPT.

Mam nadzieje, że któś odpowie na to konkretne pytanie a nie będzie dawał mi linki do komponentów;)
No za te komponenty też dziękuje... może sie kiedyś przydadzą, jednak na chwile obecną chcę to zrobić osobiscie:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1