![]() |
Schon Wieder Windows2000 Hardwarezugriffprobleme
Hallo erst mal.
Ich versuche nun seit geraumer Zeit zugriff auf meinen Parallelport zu bekommen. Unter Win98 war das kein Problem. Aber mit 2000 wird alles schwerer. Ich will keine Treiber und ich will auch keine Dlls oder irgendwelche free- oder shareware. Auch emulatoren sind ausgeschlossen. letztens habe in der Unit Windows Createfile und Writefile entdeckt. Doch irgendwie tuts nicht. Es kann zwar die schnittstelle geöffnet werden aber beim Senden/ Empfangen von Daten hängt sich das Prog auf (wartet wahrscheinlich auf eine HArdwareseitige Rückmeldung oder spricht nicht einmal meinen Parallelport an :wall: ). kann mir jemand sagen warum mein Versuch fehlschlägt ? :gruebel: Ich habe auch schon ein Hardware-interface mit folgenden Brücken getestet, vergebens: 1 (data strobe) ---> 10 (Ack) 11(busy) , 12(paper end), 17(select inhibit) --> Ground 13(select) --> 15(!error) --Tied together, but floating die Unit mit der Kompo schaut so aus
Delphi-Quellcode:
unit LPT;
interface uses Windows, Messages,SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; Type TLPTPort = Class procedure Open; procedure Close; function Read: Cardinal; procedure Write(alldata: Longword); public port : THandle;// DWord end; implementation procedure TLPTPort.Open; begin port := CreateFile( 'LPT1', //IpFilename : PansiChar GENERIC_READ or GENERIC_WRITE, //dwdesiredAccess : Cardinal 0, //dwSharedMemory : Cardinal nil, //IpSecurityAttributes : PSecurityattributes OPEN_EXISTING, //dwCreationDisposition : Cardinal 0, //dwFlagsAndAttributes : Cardinal 0, //hTempalateFile : Cardinal ); if port = INVALID_HANDLE_VALUE then Showmessage('Es ist ein Fehler beim Öffnen der Schnittstelle aufgetreten.'#13#10'Sie ist schon geöffnet oder belegt.'); end; procedure TLPTPort.Close; begin if not CloseHandle(port) then Showmessage('Es ist ein Fehler beim Schliessen der Schnittstelle aufgetreten.'); end; function TLPTPort.Read: Cardinal; // 4 bytes mit Offset 0, 1, 2 und unbelegt var Success: Boolean; readbuf: Longword; bytestoread: Cardinal; begin bytestoread:= 3; Success := ReadFile( port, //hfile : Cardinal readbuf, //buffer untyped bytestoread, //nNumberOfBytesToRead : Cardinal bytestoread, //var lpNumberOfBytesToRead : Cardinal, nil //lpOverlapped : POverlapped ); Result := readbuf; ShowMessage(booltostr(Success,true)+' '+inttohex(readbuf,8)); end; procedure TLPTPort.Write(alldata: Longword); var Success: Boolean; bytestowrite: Cardinal; begin bytestowrite:= 3; Success := WriteFile( port, //hfile : Cardinal alldata, //buffer untyped bytestowrite, //nNumberOfBytesToWrite : Cardinal bytestowrite, //var lpNumberOfBytesToWrite : Cardinal, nil //lpOverlapped : POverlapped ); ShowMessage(booltostr(Success,true)); end; end. |
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
Unter NT ff. kannst du nicht, wie unter Windows 98, direkt auf die Hardware zugreifen. Die sist alleine Treibern vorbehalten. Und diese kannst du nicht mit Delphi programmieren. Bei Torry sollte es aber entsprechende Komponenten (mit DLL) geben, die das können.
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
Es gibt eine tolle DLL (mit Source Code in C) für IO Port zugriffe, die ohne Probleme läuft.
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
Zitat:
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
*räusper* und was ist mit Writefile. Das wollte ich eigentlich wissen.
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
Wenn du mit WriteFile auf einen Port zugreifst, geht das eben nicht.
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
scheint aber laut
![]() ![]() zu gehen. |
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
Nein. Lesen:
Zitat:
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
ops
|
Re: Schon Wieder Windows2000 Hardwarezugriffprobleme
ach ich gebs langsam auf. Des wird nix. hab mir grad mit gwiopm den totalen frust gegeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz