تقييم الموضوع :
  • 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 ك ب / التحميلات : 39)
الرد }}}}
تم الشكر بواسطة:
#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 لم يعمل البرنامج !!
و ذلك بسبب أن كل نسخة من نظام التشغيل تختلف عن الأخرى ...
فما هو المسار الذي يمكن أن نضعه في برنامجنا لكي يعمل مع كل الإصدارات الحديثة من الويندوز ؟
أو ما هو الأمر الذي يمكن أن نضعه في برنامجنا لكي يعمل مع كل الإصدارات الحديثة من الويندوز ؟

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] طلب كود بسيط MOSTAFA.KAMEL 1 57 19-05-17, 10:57 PM
آخر رد: alma2
  يظهر خطاء بعد تنصيب البرنامج ساعدوني samawi 5 119 15-05-17, 04:08 AM
آخر رد: samawi
  [VB.NET] مشكلة بسيطة في برنامج بسيط يعتمد على( Multi-Threading) أبو نقطة 5 140 13-05-17, 07:41 AM
آخر رد: أبو نقطة
  [VB.NET] استفسار بسيط جدا بخصوص الطباعه !!! CoderMM 1 57 03-05-17, 04:34 PM
آخر رد: mansoor
  [سؤال] هل يمكن جمع قيمة من تكست مع حقل في قاعدة البيانات كود برمجي 6 126 29-04-17, 11:44 PM
آخر رد: rmlq
  [VB.NET] سؤال بسيط لو سمحتم ali abd alhadi 3 92 29-04-17, 01:27 AM
آخر رد: bidaya
  [VB.NET] عايز كود بسيط خاص بال list box MOSTAFA.KAMEL 1 74 24-04-17, 04:26 AM
آخر رد: silverlight
  ,اضافة تكست للريبورت alma_fandi 6 175 22-04-17, 05:59 PM
آخر رد: alma_fandi
  طلب صغير جمع عامود من جدول واضهار النتيجة في تكست بوكس nmst70 3 154 21-04-17, 02:35 AM
آخر رد: momiana1
  استفسار بسيط عن الداتا جريد فيو و عملية البيع CoderMM 2 106 18-04-17, 06:01 PM
آخر رد: CoderMM

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


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