Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hardware Portansteuerung (https://www.delphipraxis.net/2709-hardware-portansteuerung.html)

jwhm 4. Feb 2003 15:39

also, dieser code funktioniert, bei allen Checkboxen wird OnClick die prozedur ausgeführt.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure port(x:byte);
begin
asm
mov dx,378h
mov al,x
out dx,al
end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
var a:byte;
begin
a:=0;
if CheckBox1.Checked=True then a:=a+1;
if CheckBox2.Checked=True then a:=a+2;
if CheckBox3.Checked=True then a:=a+4;
if CheckBox4.Checked=True then a:=a+8;
if CheckBox5.Checked=True then a:=a+16;
if CheckBox6.Checked=True then a:=a+32;
if CheckBox7.Checked=True then a:=a+64;
if CheckBox8.Checked=True then a:=a+128;
port(a);
end;

end.
Jo[allesmussman(n)selbermachen]hannes

flomei 4. Feb 2003 15:53

Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab dir mal was angehängt. Das funzt! Ich hatte es für Technik in der Schule geschrieben. Du kannst es verändern wie du willst. Ist ganz einfach! Du legst durch umschalten im zweiten Fenster den ersten Datenpin auf "High". Wunder dich nicht über das Design! Als Delphi-Newbie kann man halt noch nicht alles. :wink: Schick mir mal das fertige Ergebnis.
Thx! :D

Daniel B 4. Feb 2003 16:40

Zitat:

Zitat von Luckie
Unter Windows2000 und höher brauchen wir gar nicht weiterreden, da brauchst du einen Treiber,

Dann werde ich mal NT in Schutz nehmen. Es ist nämlich schon möglich direkt durch ASM die Schnittstellen anzusprechen. Wenn aber jemand der Meinung ist, warum dies unter 2k und XP nicht mehr möglich sein sollte, der möge mir dies Bitte erklären. Das würde ich gerne wissen, warum dies nicht mehr möglich ist!

Grüsse, Daniel :hi:

jbg 4. Feb 2003 17:01

Zitat:

Zitat von Daniel B
Das würde ich gerne wissen, warum dies nicht mehr möglich ist!

Es geht schon ohne Probleme, solange man Administratorrechte hat.

Daniel B 4. Feb 2003 17:05

Zitat:

Zitat von jbg
Es geht schon ohne Probleme, solange man Administratorrechte hat.

Das musst Du mir nochmal erklären.
Ich kann mir nicht ganz vorstellen das es was mit der Kompilierzeit zutun hat.
Aus dem einfachen Grund, ich benutze eine solche Software in der Arbeit an verschiedenen Rechnern, alle mit NT, und jedesmal ein anderer Login.

Grüsse, Daniel :hi:

Christian Seehase 4. Feb 2003 17:16

Moin Daniel B,

nur noch einmal zum Verständnis:

Ihr sprecht über in und out Befehle unter NT direkt die Schnittstellen an?

Daniel B 4. Feb 2003 17:22

Moin Christian,
Zitat:

Zitat von Christian Seehase
Ihr sprecht über in und out Befehle unter NT direkt die Schnittstellen an?

Moment, ich benutze nur die Software! Aber ich habe es mir von unserem Softi erklären lassen, das es durch direktes ansprechen der Schnittstellen geht. Vielleicht ist es relevent, es wurde mal in TP geschrieben, jetzt wird das ganze aus einer Windows-WeichWare ausgeführt. Und in TP da gab es doch fertige? Funktionen.
Womit man Adressen direkt ansprechen konnte. Jedenfalls die der Schnittstellen.

Grüsse, Daniel :hi:

Luckie 4. Feb 2003 17:32

Auch als Admin kann man nicht direkt, sondern nur mittels eines Treibers auf die Hardware zugreifen.

Das liegt an der hal.dll (Hardware abstarct layer) diese DLL liegt zwischen den Treiber-Routinen des Kernes und der Hardware und kontrolliert alle Hardwarezugriffe. Und verbiete direkte Zugiffe auf eben diese.

Ein schönes Diagramm findet man hier auf der zweiten Seite:
http://www.vmars.tuwien.ac.at/course...Krizovsky1.pdf
Oder hier ganz unten:
http://tutorials.findtutorials.com/r...gory/97/id/379

Daniel B 4. Feb 2003 17:37

Zitat:

Zitat von Luckie
http://www.vmars.tuwien.ac.at/courses/akti12/journal/01ws/article_01ws_Krizovsky1.pdf
http://tutorials.findtutorials.com/r...gory/97/id/379

Hmm, kann es sein das dies erst bei Win 2k reingekommen ist? Mit NT mein ich noch das alte NT4!

Grüsse, Daniel :hi:

Luckie 4. Feb 2003 17:40

Das kann natürlich sein. Da will ich mich jetzt nicht festlegen.


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

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