تقييم الموضوع :
  • 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 ك ب / التحميلات : 38)
الرد }}}}
تم الشكر بواسطة:
#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] طلب التعديل في كود بسيط rabeh.ram 2 67 29-11-16, 11:10 PM
آخر رد: rabeh.ram
  [VB.NET] DataGridView بطيء جدا ساعدوني لاجد حل dubai.eig 4 145 20-11-16, 09:22 PM
آخر رد: ابو ليلى
  نقل قيمة من تكست بوكس الي تكست بوكس فى نموذج اخر السيد الجوهري 4 113 05-11-16, 07:39 PM
آخر رد: shwehdi4pc
  [VB.NET] تعديل بسيط على المشروع المرفق أبووسم 4 138 29-10-16, 03:42 PM
آخر رد: أبووسم
Rainbow [VB.NET] طلب بسيط: فورم ادخال بيانات خاص بالمطارات | ضرورى يجب تسلميه بعد بضع ساعات مشروع تخرج الماجيك مسعد 17 340 28-10-16, 08:31 AM
آخر رد: الماجيك مسعد
Lightbulb طلب بسيط: فورم إدخال (4) خانات... Arabia 6 139 25-10-16, 04:36 PM
آخر رد: Arabia
  تكست بوكس اذا بها جمل اظهر رسالة هاوي1995 8 134 24-10-16, 04:46 PM
آخر رد: هاوي1995
  [VB.NET] مشكلة فى Dim g As Graphics رسم نص وصور من اداة ريتش تكست بوكس الماجيك مسعد 24 606 24-10-16, 08:06 AM
آخر رد: الماجيك مسعد
  سؤال بسيط في فصل التاريخ عن الوقت فراس صلاح 3 137 19-10-16, 04:17 AM
آخر رد: mhmd_911
  [سؤال] مطلوب كود يقوم بعمل عداد count naden 5 193 13-10-16, 03:43 AM
آخر رد: الماجيك مسعد

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


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