تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
بريمج بسيط للغاية يقوم بطباعة ملف تكست ... ساعدوني من فضلكم
#1
السلام عليكم

أريد أن أعمل بريمج صغير يقوم بمهمة واحدة فقط وهي :
إذا ضغطت على البرنامج دبل كليك فإنه يقوم بتنفيذ أمر طباعة لـ ملف تكست .... مثلاً : c:\file.txt

أتمنى مساعدتكم بارك الله فيكم إخواني ،،،

الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم

لديك طريقتين

الأولى أن تقوم بالطباعة برمجياً بنفسك يعني ترسم النص وترسله إلى الطابعة

والثاني وهو الأقصر وهو أن تقوم بالاستعانة ببرنامج الNotepad فكما تلاحظ أمر الطباعة متوفر عندما تضغط بالزر الأيمن في القائمة يظهر أمر الطباعة print

أستخدم هذا الاجراء لطباعة أي ملف نصي باستخدام النوتباد

PHP كود :
Sub PrintTextFile(ByVal filePath As String)
        
Dim psi As New ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.System) & "\Notepad.exe")
        
psi.Arguments "/p " filePath
        Process
.Start(psi)
    
End Sub 
الرد }}}
تم الشكر بواسطة:
#3
طبعا لو كنت مكانك سأقوم بالطباعة برمجياً

هذه أداة طباعة بإمكانها طباعة النصوص
http://vb4arb.com/vb/showthread.php?3785...8%C7%DA%C9
الرد }}}
تم الشكر بواسطة:
#4
أبو يعقوب كتب :السلام عليكم

لديك طريقتين

الأولى أن تقوم بالطباعة برمجياً بنفسك يعني ترسم النص وترسله إلى الطابعة

والثاني وهو الأقصر وهو أن تقوم بالاستعانة ببرنامج الNotepad فكما تلاحظ أمر الطباعة متوفر عندما تضغط بالزر الأيمن في القائمة يظهر أمر الطباعة print

أستخدم هذا الاجراء لطباعة أي ملف نصي باستخدام النوتباد

PHP كود :
Sub PrintTextFile(ByVal filePath As String)
        
Dim psi As New ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.System) & "\Notepad.exe")
        
psi.Arguments "/p " filePath
        Process
.Start(psi)
    
End Sub 



أخي الحبيب / أبو يعقوب
أشكرك جداً على إجابتك ... وفقنا الله وإياك

سأخبرك بسر : ) هههه
أنا لدي معرفة قديمة بلغات أخرى ... لكن لم يسبق أن تعاملت مع الفيجوال بيسك إلا الشيء البسيط ...
و لذلك أتمنى منك التوضيح بشيء من التبسيط

بالنسبة للطريقة الأولى ... تقول : (أن تقوم بالطباعة برمجياً بنفسك يعني ترسم النص وترسله إلى الطابعة)
لكني - يا أستاذي العزيز - أنا لا أبحث عن طريقة يدوية أضع فيها النص و أرسله إلى الطابعة !!
أنا أريد أن أصنع برنامج صغير ، و ليكن اسمه مثلاً (Printing.exe) بحيث عندما أضغط عليه (دبل كليك) يقوم تلقائياً بطباعة ملف c:\file.txt


بالنسبة للطريقة الثانية ، اللي هي استعمال الـ Notepad ماذا أفعل بالنص البرمجي الذي أدرجته في ردك أعلاه ؟
بعد أن أنسخه و ألصقه ... ماذا أفعل بعد ذلك ؟
الرد }}}
تم الشكر بواسطة:
#5
الطريقة الأولى أقصد رسم برمجي وليس يدوي


مثال على الطريقة الثانيى مرفق ، يقوم بطباعة c:\file.txt


الملفات المرفقة
.rar   Printing.rar (الحجم : 101.44 ك ب / التحميلات : 59)
الرد }}}
تم الشكر بواسطة:
#6
أبو يعقوب كتب :الطريقة الأولى أقصد رسم برمجي وليس يدوي


مثال على الطريقة الثانيى مرفق ، يقوم بطباعة c:\file.txt


و الله أنا عاجز عن شكرك يا غالي :o
أدعو الله تعالى أن يبارك لك في عمرك و سائر عملك ، و أن يضاعف لك الأجر ، و أن يرزقك من حيث لا تحتسب
البرنامج يعمل كما تمنيت 100%


الحقيقة أنا اليوم حاولت أن أقوم بتغيير بسيط في البرنامج و لكني لم أفلح !
أردت أن يكون النص المطبوع بالألوان ، و كما هو معروف بأن ملف التكست file.txt ليس فيه ألوان ،
فجربت أن أجعل البرنامج يطبع ملف صفحة ويب من نوع html
أنشأت ملف صفحة ويب html في المسار c:\file.html بدلاً من [b][SIZE=4]c:\file.txt [b][SIZE=4]وغيرت ذلك في كود البرنامج بطبيعة الحال
[/SIZE][/b]
ثم كتبت iexplore.exe بدلاً من Notepad.exe
و قمت بتشغيل البرنامج لكنه لم يعمل !!


و لأن هذه المحاولة لم تنجح فقد جربت - أيضاً - محاولة ثانية لعل و عسى أن تنجح ( و هي أن أجعل البرنامج يطبع ملف صورة من نوع png ) :
فوضعت ملف صورة png في المسار c:\file.png بدلاً من c:\file.txt
ثم كتبت في كود البرنامج paint.exe بدلاً من [b]Notepad.exe[/b]
لكن لم تنجح المحاولة أيضاً !!

كيف أصحح هذا الإجراء ؟

و أعتذر منك بشدة على كثرة أسئلتي :o و جزاك الله خيرا

[/SIZE]

[/b]
الرد }}}
تم الشكر بواسطة:
#7
سأخبرك من أين علمت أنا أن طباعة ملف(نصي) باستخدام النوتباد بهذه الطريقة

لو كتبنا في Run هذا الأمر

Notepad.exe /p C:\File.txt

سيعلم النوتباد بأننا نريد طباعته، بسبب الباراميتر /p

عندما تضغط بالزر الأيمن على أي ملف نصي ستلاحظ أمر الطباعة Print لو تتبعت هذا الأمر في الرجستري سترى أنه بهذه الصورة %SystemRoot%\system32\NOTEPAD.EXE /p %1

فمن هنا علمت أنا أنه لطباعة أي ملف نصي باستخدام النوتباد نستخدم الباراميتر /p

هل هناك أمر طباعة مشابه لبرنامج iexplore.exe ؟ أو أي برنامج آخر نستخدم نفس الطريقة إن كان هناك أكر في قائمة الزر الأيمن فالأمر سهل


ابحث عن المفتاح htmlfile في الرجستري (تحت أول مفتاح رئيسي) وسترى المفتاح shell وهو الذي يحتوي على الأوامر
الرد }}}
تم الشكر بواسطة:
#8


بحثت عن المفتاح htmlfile في الرجستري (تحت أول مفتاح رئيسي) ثم المفتاح shell فوجدت ما يلي :


"C:\Program Files (x86)\Microsoft Office\Office14\msohtmed.exe" /p %1


مما يعني أن الباراميتر لـ طباعة ملفات html هو نفسه p/ الذي استعملناه لـ طباعة file.txt بالـ Notepad
و فيما يخص البرنامج الذي يقوم بطباعة ملفات html حسبما يقول الرجستري الموضح أعلاه فهو msohtmed.exe

و بناءً على ذلك قمت بتحرير الكود كما يلي :
مسحت Notepad.exe وكتبت مكانها msohtmed.exe و أبقيت على p/ دون تغيير
فأصبح كما يلي :


PHP كود :
[align=left]Public Class Form1
    Sub PrintTextFile
(ByVal filePath As String)
        
Dim psi As New ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.System) & "\msohtmed.exe")
        
psi.Arguments "/p " filePath
        Process
.Start(psi)
    
End Sub

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        PrintTextFile
("c:\file.txt")
    
End Sub
End 
Class[/align


و لكن ظهرت لي رسالة خطأ تقول :
Win32Exception was unhandled
The system cannot find the file specified

كما بالصورة التوضيحية التالية :
http://s21.postimg.org/lcj9bgh5z/image.png


فقمت بتغيير السطر :
PHP كود :
Dim psi As New ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.System) & "\msohtmed.exe"
و جعلته كما يلي :


PHP كود :
Dim psi As New ProcessStartInfo("C:\Program Files (x86)\Microsoft Office\Office14\msohtmed.exe"

فاشتغل البرنامج بنجااااح 100% Big Grin

يا ترى ما الخطأ في السطر المذكور ؟



الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#9
بارك الله فيك، نفس الذي توصلت إليه

الخطأ طبعا هو مسار البرنامج وتصحيحك له هو الخيار الوحيد
الرد }}}
تم الشكر بواسطة:
#10
أبو يعقوب كتب :بارك الله فيك، نفس الذي توصلت إليه
الخطأ طبعا هو مسار البرنامج وتصحيحك له هو الخيار الوحيد

أشكرك أستاذي العزيز أبويعقوب ...

بالنسبة لـ مسار البرنامج الذي وضعته أنا .... هو فعلاً صحيح ... و يشتغل على جهاز الكمبيوتر الخاص بي بنظام Windows8
لكن عندما نقلت البرنامج إلى كمبيوتر آخر لديه نظام Windows7 لم يعمل البرنامج !!
و ذلك بسبب أن كل نسخة من نظام التشغيل تختلف عن الأخرى ...
فما هو المسار الذي يمكن أن نضعه في برنامجنا لكي يعمل مع كل الإصدارات الحديثة من الويندوز ؟
أو ما هو الأمر الذي يمكن أن نضعه في برنامجنا لكي يعمل مع كل الإصدارات الحديثة من الويندوز ؟

الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال بسيط يا احبتى فى الله خالد كامل1 4 314 07-01-24, 12:55 AM
آخر رد: Mujahef
  كيف ارسل مجموع 3 تكست بوكس إلى واحد بالترتيب ؟ أبووسم 3 330 18-12-23, 05:17 PM
آخر رد: أبووسم
Tongue استفسار بسيط عن كريستال ريبورت waataanys 1 311 30-11-23, 04:44 PM
آخر رد: Taha Okla
  [سؤال] توزيع الارقام على أكثر من تكست بوكس أبووسم 11 692 17-11-23, 12:04 AM
آخر رد: أبووسم
  كود تغيير قيمة تكست بوكس فى تاريخ معين Ahmed.vb 2 909 11-10-23, 10:35 PM
آخر رد: aljzazy
  مشكلة عجيبة و غريبة ! عندما اقوم بطباعة فاتورة من Reportveiwer ينطبع التاريخ هجري moh61 2 327 09-09-23, 11:15 AM
آخر رد: alfaiz678
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 350 05-08-23, 02:29 PM
آخر رد: moh61
  مثال بسيط لربط قواعد mySql مع Vb.net atefkhalf2004 2 396 17-04-23, 01:03 AM
آخر رد: atefkhalf2004
  [سؤال] كيفية إنشاء برنامج يقوم بدوره بإنشاء برامج exe Necro 0 318 10-04-23, 02:15 PM
آخر رد: Necro
  [سؤال] كود جمع داخل تكست بوكس vba wael dwidar 3 668 17-01-23, 05:01 PM
آخر رد: ابو روضة

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم