الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحكم منفذ الطابعة في XP

مغلق
بدأه junior student في 4 أبريل 2007 · 4 رد · 1,146 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخوتي الكرام

بحثت في المنتدى عن نفس الموضوع فوجدت ملفات WINIO,zlportio.input32, ولكني مهما حاولت لم استطيع تطبيقها في برنامجي (اضاءة 8 لدات وصلتها بمنفذ الطابعة) علما ان لدي جهاز اخر نظام WIN ME ولا توجد اي مشكلة ....

اطلب منمن يستطيع اضاءة الموضوع بمثال واضح ولكم جزتل الشكر.

هذه الكود تعمل على Win ME

8 ازرار من button1 ......button8 ل d1 .......... d8

و button9 للكل , button10 لإطفاء الكل.






var
Form1: TForm1;

implementation

{$R *.dfm}
procedure outp(data:byte;add:word);
begin
asm
mov al,data
mov dx,add
out dx,al
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
asm
mov al,1
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
asm
mov al,2
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
asm
mov al,4
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
asm
mov al,8
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
asm
mov al,16
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
asm
mov al,32
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
asm
mov al,64
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
asm
mov al,128
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
asm
mov al,$FF
mov dx,378h
out dx,al
end;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
asm
mov al,0
mov dx,378h
out dx,al
end;
end;
end.



#2

السلام عليكم

بداية طريقتك كانت سليمة. بالبحث عن المكونات WINIO,zlportio.input32 ولكنك لم تستخدمها؟؟؟؟

حقيقة يجب ان تعرفها:

تحت الوندوز 32 مثل XP و2000 او NT : لا تستطيع ان تصل الي ذاكرة او بورت خارج برنامجك. وهذا الشيء لا ينطبق على الوندوز 98 او me فهي وندوز 16 بت فيها تستطيع ان تصل الى اي بورت من الذاكرة.

لحل مشكلتك يجب ان تستخدم device driver.

احد افضل المكونات التى تستعمل device driver وجربتها هو smallport وهذا مجاني مع الكود.

smallport.write(port:Word,value:Word)

وشكرا

وشكرا

#3

شكرا أخي pc.2058

سأرد النتائج بعد تجربتي لsmallport.

#4

السلام عليكم

يمكن استخدام inpout32.dll المشهور

او giveio.sys اقل شهرة

او غيرهما...

او كتابة Driver الخاص بك ان استطعت

ابحث في مواضيع الاخ مراد ikossan تجد ما يفيدك ان شاء الله

تم تعديل هذه المشاركة بواسطة محمدعبد العزيز في 9 أبريل 2007 في 13:01

d4baa0.gif
#5

شكرا لكم جميعا

حليت الموضوع قمت بتنزيل الملف input32.dll الى windows/system32

و الكود اخذتها من موقع اجنبي ......

هذا الموضوع مغلق.

مواضيع مشابهة