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

مشكلة بمفذ الطابعة

مغلق
بدأه elgoeg في 5 مارس 2006 · 7 رد · 1,553 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

قمت بكتابة برنامج يقوم بارسال بيتات الى منفذ الطابعة عند الضغط على الزر

procedure TForm1.Button1Click(Sender: TObject);
begin
asm
mov DX,$378;
mov AL,$1;
out DX,AL;
end;
end;

فبعد تنفيذ البرنامج وعند الضغط على الزر ظهر لي الاغتراض كما هو في الصورة

علما ان لغة البرمجة هي Delphi اما نظام التشغيل فهو Windows XP

ارجو الرد باسرع ما يمكن لانني بامس الحاجة الى حل هذه المشكلة

وشكرا

untitled1.bmp

تم تعديل هذه المشاركة بواسطة romanof في 9 مارس 2006 في 20:33

#2

السلام عليكم.

موضوع الوصول إلى منافذ الحاسب ( المنفذ التسلسلي أو منفذ الطابعة أو منافذ ISA, أو منافذ PCI....إلخ) يحتاج إلى ترخيص من نظام التشغيل WindowsNT( ك windows 2000, windows XP, windowsNT, windows 2003) :rolleyes: .

يعني أنه ليس لك الحق في لإرسال أو استقبل أي شيء من مثل هذه المنافذ إذا لم تستعمل Device Drivers كوسيط, فنظم التشغيل من عائلة windowsNT تراقب كل تطبيق, وتوقف كل تعليمة من نحو تعليمات الإدخال والخرج IN و Out او المقاطعات Int...

يعني للأسف أن برنامجك لن يستطيع التحكم بالطابعة بدون َAccess Privilage ..

يعني لديك حلين:

* إما أن تغير نطام التشغيل ب نطام غير NT. كويندوز 95 أو 98 أو Windows Me, وحتى نظام الدوس...

* إما ، تعتمد على Device driver ( ملفات من قبيل DLL, أو ملفات Sys...).

أنظر هذه الوصلات قد تفيدك إذا أردت البرمجة في WindowsXP/windows2000/windows2003 :

مكتبة Inpout32.dll للبرمجة في WIN NT/2000/XP

Various ways for applications to access the parallel port and other I/O ports in PCs

الإعتماد على طريقة kernel-mode device driver غير مجانية

وصلة أخرى غير مجانية

حظ سعيد وقراءة موفقة إن شاء الله B)

access_lpt_in_winNT_with_ioutput32.dll_in_delphi.zip

تم تعديل هذه المشاركة بواسطة ikossan في 6 مارس 2006 في 01:25

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#3

السلام عليكم

ما قاله الأخ ikossan صحيح, حيث أنك بحاجة إلى سماحية للوصول إلى المنفذ.

على كل يمكنك أن تستمر بكتابة الكود السابق في XP واستخدم الملف المرفق

عبارة عن عنصر تستطيع استعماله لفتح منفذ الطابعة في أي نظام تشغيل واسمه ZLPORTIO

ليس عليك سوى اضافة الوحدة ZLPORTIO إلى قسم الـ USES

ومن ثم ضع قبل تعليمات الـ ASM التي تقوم بفتح المنفذ وإرسال القيم الإجراء التالي:

ZlIOStarted

وسيقوم بفتح المنفذ لك وستعمل بإذن الله.

لاتنسى وضع الملف ZLPORTIO.SYS في مكتبة برنامجك.

وبالتوفيق ;)

ZLPORTIO.zip

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#4
Like Delphi كتب:
ومن ثم ضع قبل تعليمات الـ ASM التي تقوم بفتح المنفذ وإرسال القيم الإجراء التالي:

ZlIOStarted

وسيقوم بفتح المنفذ لك وستعمل بإذن الله.

.

يعطيك العافية اخ Like delphi بس حاولت اكتب الكود الذي يقوم بارسال القيمة $1 الى منفذ الطابعة بالاستفادة من هذه الوحدة لكنه اظهر لى نفس الرسالة علما انني قمت بوضع اسم الوحدة ضمن ال USES ونقلت ملفات ال unit الى جانب البرنامج فهل تستطيع ان تكتب لي التعليمات التى تقوم بفتح منفذ الطابعة ومن ثم ارسال القيمة $1 عند الضغط على الزر

وشكرا

#5

السلام عليكم

أولاً يجب أن تضيف هذا العنصر إلى الدلفي, يوجد عدة طرق وأسهلها ضع ملفات العنصر في مكتبة الـ LIB ضمن مجلد الدلفي

بعد ذلك كما تحدثنا ضع اسم العنصر في قسم الـ USES

بعد ذلك ضع فقط الملف zlportio.sys فقط ضمن مجلد برنامجك

الآن أصبحت جاهزاً لاستعمال العنصر

لكي تفتح المنفذ وتأخذ السماحية استخدم إجراء وحيد وهو

ZlIOStarted;

ومن ثم تضع التعليمات التي تريدها, مثلاً لتفعيل جميع نقاط الخرج لمنفذ الطابعة:

        asm
        mov dx,$378
        mov al,$FF
        out dx,al
        end

هذه هي الخطوات اللازمة لاستعمال العنصر وهو يعمل معي تماماً, وبأية حال الملف الذي قمت بتحميله يحتوي على مثال جاهز أيضاً

وأنا معك ليشتغل المنفذ لاتاكل هم

وبالتوفيق ;)

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

#6

يعطيك العافية اخ like delphi

لكن نفذت مثل ما نصحتني بس ظهر لي نفس الرسالة وهذا الملف المرفق للبرنامج الذي كتبته

New_Folder__4_.rar

#7

TVicPort is now FREE for personal (non-commercial) use!:

TVicPort is a toolkit for direct port I/O from Win32 applications. TVicPort includes transparent support for Windows 95/98/Me and Windows NT/2000/XP/XP 64-bit, providing programmers with standard methods for real-time direct access to port and memory mapped I/O - without requiring you to write a custom virtual device driver for Windows 9x/Me or a kernel-mode driver for NT/2000/XP/XP 64-bit. Brand new 64-bit offers intelligent support for 64-bit solutions.
TVicPort's main capabilities are:
    * direct port I/O access
    * (new!) obtains pointers to the physical memory by directly mapping it to the user process's address space;
    * advanced LPT support including access to any pin on any LPT port
    * access to IDE HDDs hardware manufacturer information (HD serial number, geometry, etc.)
    * (new!) Windows XP 64-bit support


TVicPort provides an interface to drivers for the following programming languages:
    * Microsoft Visual C/C++
    * Borland Delphi (versions 2-7)
    * Borland C++ Builder (versions 1, 3 - 6)
    * Microsoft Visual Basic 6.0
    * Microsoft Visual Basic.NET
    * Microsoft Visual C#
    * Other programming systems that access functions in DLL's

your have to share with your project 2 files only:
"C:\WINDOWS\system32\drivers\TVicPort.sys"
"C:\WINDOWS\system\TVicPort.dll".

to download the TVicPort:

TVicPort (fully-functional freeware)]

File size: 356 Kb
Updated: 12/09/2005

This package includes many test examples showing how to use TVicPort with each of the programming languages listed above. Is is fully functional so you can write and debug your application before you buy one of the following licenses to use or distribute the driver.

B)

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#8

السلام عليكم

صديقي ikossan جيد أن هذا العنصر أصبح مجاني فقد كان يسبب الكثير من المشاكل من قبل, والتعامل مع المنفذ يتم عن طريقه فقط حتى عند ارسال الأوامر إلى المنفذ, ولا تستطيع كتابة تعليمات الأسيمبلي عن طريقه.

أخي elgoeg لقد حملت الملف ووجدت المشكلة, والخطأ مني حيث أن التابع الذي أخبرتك به في البدابة هو للاستعلام عن وضع المنفذ

وقد قمت بتصحيح الخطأ في الملف وها هو يعمل على جهازي

التعليمة هي:

zliosetiopm(true);

وبالتوفيق ;)

New_Folder__4_.rar

قال تعالى: ((وَمَا أَصَابََكُمْ مِنْ مُصِيبَةٍ فَبمَا كَسَبَتْ أَيْدِيكُمْ وَ يَعْفُو عَنْ كَثِيرٍ)) :.:.: الشورى: الآية 30.

IN ALLAH WE TRUST

:.:.:.:.:.:.:.:.:.:.:.:.:.:

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

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