Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi LPT-Port steuern (https://www.delphipraxis.net/45023-lpt-port-steuern.html)

Mephistopheles 28. Apr 2005 20:03

Re: LPT-Port steuern
 
Zitat:

Zitat von mika
und bei NT-basierten Systemen den Treiber zu laden und
bei 9x Systemen einfach nicht.

Das will ich sehen, bei einem Benutzer ohne Adminrechte!

@xstream: Es geht um einen kleinen generischen oder spezifischen Porttreiber um obige (ASM)Anweisungen zum Laufen zu bekommen.

Ansonsten schau dir mal DeviceIoControl() an. Damit sollte es auch ohne extra Treiber möglich sein. Dazu gibt es aber einen anderen Thread irgendwo hier.

SvB 28. Apr 2005 20:16

Re: LPT-Port steuern
 
Die genaue URL ist www.winsoft.sk, ich habs gerade noch mal probiert und die Seite funktioniert. Die Komponente findest Du unter der Delphi Sektion.
Hast Du das gemeint, was nicht geht.

Grüße
Sven

SvB 28. Apr 2005 20:22

Re: LPT-Port steuern
 
Ich habe auch gerade mal meine Festplatte etwas durchforstet und habe da noch was gefunden. Nennt sich "TDLPortIO", darunter in Google suchen und Du findest dann was, was auch mit Delphi funktioniert. Eventuell muss da was nachgearbeitet werden damit es mit D7 funktioniert, dürfte aber nicht so schwer sein.

Grüße
Sven

Blutiger Anfänger 29. Apr 2005 03:47

Re: LPT-Port steuern
 
Hi,
vielleicht ist auch diese Seite interessant,IO.dll,
auf dieser Seite sind u.a. die Funktionen und Prozeduren, für Delphi aufgeführt.

Viel Spass

supermuckl 29. Apr 2005 03:59

Re: LPT-Port steuern
 
wieso nutzt ihr net die DP suche ? ich hab gewiss schon in mindestens 5 beiträgen auf genau diese fragen eine antwort gegeben

stichwort zlportio

runger 29. Apr 2005 06:36

Re: LPT-Port steuern
 
Hallo,

hier ein kleines beispiel mit IO.DLL (Link von Blutiger Anfänger):

Delphi-Quellcode:
implementation

{$R *.dfm}
procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
procedure PortWordOut(Port : Word; Data : Word); stdcall; external 'io.dll';
procedure PortDWordOut(Port : Word; Data : DWord); stdcall; external 'io.dll';
function PortIn(Port : Word) : Byte; stdcall; external 'io.dll';
function PortWordIn(Port : Word) : Word; stdcall; external 'io.dll';
function PortDWordIn(Port : Word) : DWord; stdcall; external 'io.dll';
procedure SetPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
procedure ClrPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
procedure NotPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
function GetPortBit(Port : Word; Bit : Byte) : WordBool; stdcall; external 'io.dll';
function RightPortShift(Port : Word; Val : WordBool) : WordBool; stdcall; external 'io.dll';
function LeftPortShift(Port : Word; Val : WordBool) : WordBool; stdcall; external 'io.dll';
function IsDriverInstalled : Boolean; stdcall; external 'io.dll';

procedure TForm1.Button1Click(Sender: TObject);
var b:byte;
begin
   If IsDriverInstalled then
      begin
        //die 0 ausgeben
        PortOut($378,$0);
        //Wert vom Port holen
        b:=PortIn($378);
      end;
end;
Beim ersten Start meckert Delphi. Ignoriere das, dort wird nur der Treiber installiert.
Ich hoffe ich habe dir geholfen.

Warum man bei WIN98 direkt zugreifen kann und warum bei W2k, Winnt oder WinXP nicht, darüber lass ich mich hier zu einem späteren Zeitpunkt aus.

Rainer

xstream 29. Apr 2005 07:27

Re: LPT-Port steuern
 
super vielen dank an alle

der tip von runger funktioniert ohne probleme,..... vielen dank....

Mephistopheles 29. Apr 2005 09:33

Re: LPT-Port steuern
 
Zitat:

Zitat von xstream
super vielen dank an alle

der tip von runger funktioniert ohne probleme,..... vielen dank....

Klasse, dann haben wir ja wiedermal mindestens 1 Rechner (+ die auf denen die Software dann regulär laufen wird) unsicher gemacht.
Ich denke vollen Portzugriff sollte jeder haben! :wall:

Vielleicht sollte endlich mal ein VXer einen Virus schreiben, der dank einem generischen Portzugriff lustige Muster auf die CRT-Innenseite brennt (genügend leicht benutzbare Treiber/DLL-Kombos zum Thema gibt es ja), oder anders Hardware beschädigt. Dann ginge vielleicht auch hier den Leuten auf, daß es so nicht sein darf.

runger 29. Apr 2005 11:04

Re: LPT-Port steuern
 
Hallo Mephistopheles,

Das von mir gelieferte Codebeispiel benutzt einen Treiber. ( Hatte ich beschrieben ).
Es wird also der ganz normale Weg durch Windows genommen, so wie das der Printer und alle anderen Geräte auch tun. Der Treiber wird beim ersten Versuch die IO.dll zu benutzen installiert.

Das hier ist kein Peek oder Poke wie du es vielleicht von Basic gewohnt bist.

Rainer

NicoDE 29. Apr 2005 11:12

Re: LPT-Port steuern
 
Zitat:

Zitat von runger
Das von mir gelieferte Codebeispiel benutzt einen Treiber. ( Hatte ich beschrieben ).

Es spricht nichts gegen die Verwendung eines Treibers. Es gibt erst dadurch ein 'Problem', wenn die Nutzung des Treiber keiner Einschränkung unterliegt. In diesem Falle wird es sich wohl um einen generischen Treiber handeln, der Zugriff auf alle Ports erlaubt. Zwar wird dadurch sein Problem auf eine sehr allgemeine Weise gelöst, aber andere Software wird nicht daran gehindert unbeabsichtigte Dinge mit dem System anzustellen.
Sicherheit ist eine Frage des Vertrauens. Wenn er damit leben kann, dass jede Software auf seinem System potentiell alle Ports verwenden kann, dann ist dies seine Entscheidung. Ich persönlich würde dieses Risiko auf Dauer nicht eingehen (und schon gar nicht für Produktionssysteme).


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz