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

رفع ملفات لتطبيق سطح مكتب بسي شارب

بدأه ابتسامة في 28 يوليو 2010 · 25 رد · 1,864 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أخواني الكرام

أريد أن أقوم بعمل برنامج عند الضغط على زر يقوم بفتح ملف pdf

وزر أخر لفتح ملف صوتي وأخر لملف فيديوا real

وأخر لفتح عرض بور بوينت وأخر لفتح صورة وأخر لفتح تحميل برامج

أريد أن أقوم بعمل البرنامج c#

فما طريقة المثلى لرفع هذه الملفات بحيث لا يصبح حجم البرنامج كبير

وهل يشترط أن أقوم بعمل مشغل صوتي في البرنامج ؟أو مشغل فيدوا؟

جزاكم الله خيرا

#2

مش فاهم معنى "رفع الملفات" لكن لو مجرد تشغيل الملفات دى اطلع على Process

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

أقصد برفع الملفات أن داخل البرنامج نفسه مثلا بضع مجلد ليكن book وبضع كتب pdf بداخله

الأن عند الضغط على زر كتاب معين مثلا

فكيف أجعله يفتح الكتاب المحدد من داخل المجلد المضمن داخل المشروع ؟؟؟

جزاك الله خيرا

#4

همممممم تقدر توصل لمسار الملف التنفيذى عن طريق http://msdn.microsoft.com/en-us/library/system.windows.forms.application.executablepath.aspx

ومنها تقدر تحصل على المجلد الموجود فيه

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

السلام عليكم ورحمة الله وبركاته

مشكوور أخي الفاضل جزاك الله خيرا

صراحة لم افهم أين استخدم هذا الكود public static string ExecutablePath { get; }

فالمسار لم يحدد بالضبط شي معين من مجلد

ألا يوجد توجيه مباشر لشي معين داخل المجلد

معذرة أخي الفاضل هل يمكنك أن تعطيني مثال

جزاك الله خيرا

#6

Application.ExecutablePath عبارة عن خاصية property بتعيد string بمسار الملف التنفيذى

على سبيل المثال

ناتج

			Console.WriteLine(Application.ExecutablePath);

/home/striky/Projects/readsimple/readsimple/bin/Debug/readsimple.exe

وممكن بردو استخدام ال Assembly class

احصل على الأسمبلى من خلال http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getexecutingassembly.aspx

http://msdn.microsoft.com/en-us/library/system.reflection.assembly_properties.aspx

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#7

مشكوور أخوي جزاك الله خيرا

معذرة بس مازال الموضوع غامض بالنسبة لي

طيب كيف حيعرف يحدد نوع الملف

هل هناك خاصية أن أحفظ الملف بالامتداد الخاص به لكي يبحث عنه

؟؟

#8

استخدم Process.Start

http://msdn.microsoft.com/en-us/library/e8zac0ca.aspx

على المسار الكامل للملف اللى عايز تشغله

مثلا

			Process.Start("/home/striky/Desktop/Screenshot-CIki - Google Chrome.png");
			Process.Start("/home/striky/Documents/lcv.pdf");

هنا هيشغل صورة فى اول سطر وفى التانى هيفتح ملف PDF

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 2 أغسطس 2010 في 01:46

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9

المعذرة أخي الفاضل

لدي مشكلة يتعذر الحصول على الملف

هل لها طريقة معينة بالتطبيق

أنا ضمنت المكتبة فقط

using System.Diagnostics;

واستخدمت في حدث الزر

Process.Start("ramadan.pdf");

هو لا يستطيع التعرف على الملف أو فتحه يعلق عنده عند الرن

هل هناك هيكلية معينة في وضع الملفات بسي شارب

أتعبتك كثيرا جزاك الله خيرا

#10
Process.Start("ramadan.pdf");

المطلوب هو المسار الكامل عشان كدا

1- احصل على مسار المجلد بأى من الطرق المذكورة هنا

http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx

2- تنفيذ الملف "مسار الملف الكامل مش مجرد اسمه" بإستخدام Process.Start

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#11
ahmed_youssef كتب:

Process.Start("ramadan.pdf");

المطلوب هو المسار الكامل عشان كدا

1- احصل على مسار المجلد بأى من الطرق المذكورة هنا

http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx

2- تنفيذ الملف "مسار الملف الكامل مش مجرد اسمه" بإستخدام Process.Start

مشكور اخوي جزاك الله خيرا

مازال الموضوع غامض بالنسبة إلي أرجوا أن تصتبر علي

استخدمت Process.Start(Application.StartupPath + "\\ela_salaty_setup.exe");

وحفظت الملفela_salaty_setup.exe بداخل نفس مجلد البرنامج مع ذلك لا يفتح ويعطيني تنبيه win32

جربت طريقة أخرى

System.Diagnostics.Process proc = new System.Diagnostics.Process();

proc.StartInfo.FileName = "notepad";

proc.StartInfo.Arguments = "aaa.txt";

proc.Start();

هنا يفتح النوتباد ولكن يخبرني أنه لم يستطيع الحصول على الملف

بالرغم أني حفظت الملف بداخل نفس مجلد البرنامج بجوار الملف bin

جزاك الله خيرا وبارك الله في علمك

#12

جرب كدا وياريت تقلنا لو ظهرت اي اخطاء

Process.Start(Path.GetDirectoryName(Application.StartupPath) +  Path.DirectorySeparatorChar +"ela_salaty_setup.exe");
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#13

يطلع لي خطأ

windows 32 Exception was unhandled

مالحل

؟؟

رفعت لك الصورة

08nyfaq5.png

جزاك الله خيرا بارك الله في علمك

#14

طب جميل كدا الخطأ دا معناه ان الملف مش موجود

الجزئية دى

Path.GetDirectoryName(Application.StartupPath) +  Path.DirectorySeparatorChar

المسار الكامل لمجلد bin

هل ملف الى صلاتى موجود فى مجلد جواه ولا لوحده ؟ لو موجود جوا مجلد كمان يبقة هتحتاج تحدد اسم المجلد

ممكن تورينا هيكلية الملفات الموجودة جوا التطبيق خصوصا مجلد bin ?

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#15

أخيرا ضبط

جزاك الله خيرا وفقك الله لكل خير وزادك من علمه

#16

السلام عليك ورحمة الله وبركاته

الاستاذ الفاضل

طريقتك مضبوطة وطبقتها على جميع الأمتدادات التي أحتاجها

وبالفعل تفتح الكتاب أو التطبيق أو الصور ...

لكن عند نشر البرنامج أي عمل publish

تواجهني مشكلة حيث أنه يمنع فتح هذه الملفات ؟؟؟

فمالحل لهذه المشكلة

وتظهر هذه الصورة

08qlmvg7.png

وهذه عند الضغط على التفاصيل

راجع نهاية هذه الرسالة للحصول على تفاصيل حول استدعاء

التصحيح اللحظي (JIT) بدلاً من مربع الحوار الحالي.

************** نص الاستثناء **************

System.ComponentModel.Win32Exception: ‏‏يتعذر على النظام العثور على الملف المحدد

عند System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)

عند System.Diagnostics.Process.Start()

عند System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

عند System.Diagnostics.Process.Start(String fileName)

عند ramadanlaalproject.Form3.button4_Click(Object sender, EventArgs e)

عند System.Windows.Forms.Control.OnClick(EventArgs e)

عند System.Windows.Forms.Button.OnClick(EventArgs e)

عند System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

عند System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

عند System.Windows.Forms.Control.WndProc(Message& m)

عند System.Windows.Forms.ButtonBase.WndProc(Message& m)

عند System.Windows.Forms.Button.WndProc(Message& m)

عند System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

عند System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

عند System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** التجميعات المحملة **************

mscorlib

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

ramadanlaalproject

إصدار التجميع: 1.0.0.0

إصدار Win32: 1.0.0.0

مصدر البرنامج: file:///C:/Users/Toshiba/AppData/Local/Apps/2.0/18HE77BL.ROY/PJM315CK.Q25/rama..tion_e4ebff3580e69876_0001.0000_f0671f8529bd0fcd/ramadanlaalproject.exe

----------------------------------------

System.Windows.Forms

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Drawing

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System.Configuration

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

System.Xml

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

mscorlib.resources

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.3053 (netfxsp.050727-3000)

مصدر البرنامج: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

System.Windows.Forms.resources

إصدار التجميع: 2.0.0.0

إصدار Win32: 2.0.50727.312 (rtmLHS.050727-3100)

مصدر البرنامج: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ar_b77a5c561934e089/System.Windows.Forms.resources.dll

----------------------------------------

************** تصحيح JIT **************

لتمكين التصحيح اللحظي (JIT)، يجب تعيين قيمة

jitDebugging في القسم system.windows.forms

في ملف التكوين لهذا التطبيق أو الكمبيوتر (machine.config).

يجب أيضًا تحويل التطبيق برمجيًا مع تمكين

التصحيح.

على سبيل المثال:

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

عند تمكين تصحيح JIT، سيتم إرسال أي استثناء لم تتم معالجته

إلى مصحح JIT المسجل على الكمبيوتر

بدلاً من معالجته بواسطة مربع الحوار هذا

فمالحل لذلك جزاك الله خيرا

#17

انا مش فاهم حاجه خالص من الكلام ده كله

انا عايز كود يعمل الاتى

يفتح ملف باوربوينت مع العلم انى مش عارف مكانه ولا عارف اسمه عايز اليوزر يعمل بروز عليه ولما يجده البرنامج يفتحه له

ممكن الكود لعمل زالك؟؟؟؟؟

#18

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي


OpenFileDialog1.ShowDialog();
Process.Start(OpenFileDialog1.FileName);

1

.:: Wish to become better and better ::.

#19

اريد مثلا ان اختار ملف ويفتحه البرنامج ليا بعد مده زمنيه احددها انا له من خلال تكست بوكس كيف زلك وشكرا اخى فجول

دى محاولتى

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication5
{
	public partial class Form1 : Form
	{
    	public Form1()
    	{
        	InitializeComponent();
    	}

    	public void button1_Click(object sender, EventArgs e)
    	{
        	openFileDialog1.ShowDialog();//  عشان يظهر لينا المربع اللى هنختار الملفات منه



    	}
    	public void start()
    	{
        	Process.Start(openFileDialog1.FileName);// هيشغل الملفات اللى تم اختيارها
    	}

    	public void timer1_Tick(object sender, EventArgs e)
    	{
        	start();
    	}
	}
}
#20

السلام عليكم ورحمه الله وبركاته

اخي قم بوضع الكود التالي في الاداة المؤقت


Process.Start(OpenFileDialog1.FileName);
Timer1.Enabled=False;

وبالنسبه للسطر الاول في الكود السابق سيقوم بالاختيار فقط, ولاتنسى ضبط الفتره الزمنيه التي سوف يتنفذ فيها الكود

تم تعديل هذه المشاركة بواسطة VB Helper في 13 يونيو 2011 في 23:16

.:: Wish to become better and better ::.

#21

لم تحل المشكله حتى برده جربت كمان التايمر ب ترو ومره اخرى بفلص لم تحل

لما ضغطت اف 11 وجدت ان الكومبيلر مش بينفز السطر بتاع الكليك الاول مع العلم انى بضغط كليك ياريت جد يفيدنى بالموضوع ده

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication5
{
	public partial class Form1 : Form
	{
    	public Form1()
    	{
        	InitializeComponent();

    	}


   	private void button1_Click(object sender, EventArgs e)
    	{



        	openFileDialog1.ShowDialog();

    	}
   	private void timer1_Tick(object sender, EventArgs e)
    	{


        	Process.Start(openFileDialog1.FileName);
        	timer1.Enabled = false;
    	}
	}
}
#22

السلام عليكم ورحمه الله وبركاته

اخي اضبط خاصيه ال Enabled للمؤقت الى False وبعد النقر على الزر واختيار الملف قم بتفعيلها ..

.:: Wish to become better and better ::.

#23
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي اضبط خاصيه ال Enabled للمؤقت الى False وبعد النقر على الزر واختيار الملف قم بتفعيلها ..

ما زالت المشكله لم تحل ياريت اخى الكريم ان ترفق البرنامج لو اشتغل معك وشكرا على المساعده

#24

السلام عليكم ورحمه الله وبركاته

اخي جرب المشروع المرفق

WindowsFormsApplication1.zip

.:: Wish to become better and better ::.

#25

اشتغل تمام كده هو ينفع انى افتح بعد اكتر من حاجه ورا بعض يعنى اول 10 دقايق صوره وال10 دقايق الاخرى افتح قران مثلا ولا مينفعش

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…