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

مساعدة فى برنامج المؤذن

بدأه elwaly في 25 أغسطس 2010 · 25 رد · 1,231 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قد صنعت برنامج المؤذن وهذا البرنامج يتم ضبط الخمس صلوات فيه عندما اقوم بتشغيله يضع icon فى System tray

هذا البرنامج بهذا الشكل لا يعمل ولا يوضع فى System tray الا اذا شغلته

وهذه مشكلة فأنا يلزمنى كمستخدم للبرنامج ان افتح البرنامج فى كل مرة افتح فيها الويندوز او نظام التشغيل

هل لهذه المشكلة حل فى الكود

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

#3

اخى شاكرك على الرد ولكن ليس هذا ما أقصده أنا عند تشغيل البرنامج يظهر ويضع بنجاح الIcon in System Tray

ليست هذه المشكلة

المشكلة فى أنى أريد أن يعمل البرنامج أوتوماتيكيا عند فتح نظام التشغيل (الويندوز) هذه هى المشكلة

#4

مرحبا اخى

بالنسبة لنظام التشغيل ويندوز يمكنك حل المشكلة بسهولة

لو استطعت وضع برنامجك فى المسار التالى C:\Documents and Settings\Sharkia\Start Menu\Programs\Startup

فسيعمل برنامجك عند بدأ اقلاع الويندوز

او الافضل ان تصنع ملف باتش .bat بالدوس لتشغيل برنامجك

مع حفظ البرنامج فى مسار اخر وليكن على القرص d:

وليكن كود الباتش كما يلى

javaw D:/myprogram Folder/myprogram

وقم بوضع هذا الباتش فى startup كما فى المسار السابق

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

هذا مالدى وتقبل تحياتى

سلام

تم تعديل هذه المشاركة بواسطة Oracle_Java في 25 أغسطس 2010 في 16:38

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#5

أخى والله اشكرك على الرد الجميل معلومة ممتازة ما كنت أعرفها حلت فعلا المشكلة ولكن هناك

مشكلتان بسيطتان وهما 1- كيف أصل من خلال الكود لمجلد startup لأنسخ فيه ملف الباتش لأن نسختى اسمها gamal_pc وتختلف أسماء النسخ

أفهمت قصدى .

2- من فضلك فى أمر الدوس ما كلمة folder أى هل يشغل هذا الباتش مجلد أم ملف

اكتب لى أمر دوس يشغل ملف .jar بدون اظهار شاشة الدوس.

#6

لكي لا تظهر ال console

start javaw yourApp

يمكنك معرفة مسار مجلد المستخدم من خلال الخاصية user.home

String userDir = System.getProperty("user.home");
#7

أليس من المفترض تسجيل البرنامج في الرجيستري الخاص بالجهاز ???

اضن الاجابة هو تسجيله في الريجستري (وجاري البحث عنها)

ربما هذا الرابط ينفعك

والاجابة للخبراء

تحياتي

تم تعديل هذه المشاركة بواسطة EMNALI في 25 أغسطس 2010 في 22:24

وَعَبْدٌ قَدْ يَنامُ عَلَى حَرِيرٍ ××× وَذُو نَسَبٍ مَفَارِشُهُ التُّرَابُ

#9

جزاك الله خيرا نفعت ولكن هناك مشكلة أخرى

انا استخدم الصوت فى البرنامج عن طريق JMF أو JLayer أو ِaudiostream

كلهم فى نتبينز يشغلوا الصوت ولكن فى ملف ال.jar لايعمل الصوت ألا بطريقة واحدة وهى audioclip

وأنا لا اريد استخدامها فما تفسيركم لذلك وما الحل.

#10
elwaly كتب:

جزاك الله خيرا نفعت ولكن هناك مشكلة أخرى

انا استخدم الصوت فى البرنامج عن طريق JMF أو JLayer أو ِaudiostream

كلهم فى نتبينز يشغلوا الصوت ولكن فى ملف ال.jar لايعمل الصوت ألا بطريقة واحدة وهى audioclip

وأنا لا اريد استخدامها فما تفسيركم لذلك وما الحل.

يجب عليك طرح هذا السؤال في مشاركة جديدة :)

شكرا لتعاونك

1
#11

السلام عليكم

اخوانى ما أحد رد على فى سؤالى

السؤال هو عند تشغيل ملفات الصوت فى الnetbeans تشتغل ولكن فى ملف ال .jar يعطى خطأ وهو

(Problem playing file file:/J:/JAVA/project/MoazenProject/build/classes/res/azanfajr.mp3

java.io.FileNotFoundException: file:\J:\JAVA\project\MoazenProject\build\classes\res\azanfajr.mp3 (The filename, directory name, or volume label syntax is incorrect)

java.lang.NullPointerException)

مع انه بداخل ملف الجار توجد الحزمة res وبداخلها ملف الصوت ارجوكم اجيبونى.

#12

ما هو الكود الذي تحمل به الملف mp3؟؟

عادة، أي resource تكون داخل أرشيف jar يتم تحميلها باستعمال.getResource أو getResourceAsStream الموجودة في الفئة Class

#13

يبدو انك تحمل الملف بطريقة خاطئة

عند وضعه في مجلد ال Res

يكون ال path له هو

"/azanfajr.mp3"

فقط

دون تمرير كل العنوان الذي انت تضعه

تم تعديل هذه المشاركة بواسطة محمد عرسان في 27 أغسطس 2010 في 03:11

#14

أخى انا استخدم هذا الكود

MP3 mp3 = new MP3(getClass().getResource("/res/azanfajr.mp3").getFile());
             mp3.play();

فهل فيه خطأ مع العلم أن هذا الكود يشتغل فى النتبينز ولا يشتغل فى الجار

أى لا يشغل ملف الصوت ويعطى الخطأ فى ملف الجار أى أنه غير موجود

تم تعديل هذه المشاركة بواسطة elwaly في 27 أغسطس 2010 في 14:55

#15

هل res مجلد عادي أم أنه أرشيف jar هو أيضا؟؟

#16

res مجلد بداخل المجلد src للمشروع بتاعى

#17

res مجلد بداخل الأرشيف jar ويوجد به الملفات الصوتية

#18

هذا الرابط انا مسحت الجار للمساحة

رابط المشروع

وهذا رابط لقاعدة البيانات نسيت اضعها مع المشروع

ضع قاعدة البيانات فى D

قاعدة البيانات

تم تعديل هذه المشاركة بواسطة elwaly في 27 أغسطس 2010 في 22:54

#19

آسف، لا أدري ما المشكل.

جرب عمل Clean and Build من القائمة Run ثم شغل الملف jar الموجود في الملف dist.

أو انتظر باقي الأعضاء

#20

أخى مشكلة الpath حلت بفضل الله لأنى غيرت كود تشغيل الصوت جعلت كلاس MP3 يأخذ parameter inputstream

هذا الكود الجديد

import javazoom.jl.player.*;
import java.io.InputStream;

public class MP3 {

	private Player player;
        InputStream in;
        // constructor that takes the name of an MP3 file

        MP3(InputStream in)
        {
            this.in=in;
        }

	public void close()
	{ if (player != null) 
		player.close(); }// play the MP3 file to the sound card
	public boolean isComplete()
        {
            return player.isComplete();
        }

        public void play() {
		try {    
			//FileInputStream fis     = new FileInputStream(file.getPath());
		//BufferedInputStream bis = new BufferedInputStream(in);
		player = new Player(in);    }
		catch (Exception e) {  
			e.printStackTrace();  }// run in new thread to play in background
		new Thread() {    
			public void run()
			{        try { player.play();
			}        catch (Exception e) 
			{ System.out.println(e); }    }}.start();		
	}
public static void main(String[] args)
{    //String filename = "D:/Alheweny.mp3";
        try{
            MP3 mp3 = new MP3(MP3.class.getResource("/res/azan.mp3").openStream());
            mp3.play();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
}
}

والكود القديم هذا

import javazoom.jl.player.*;
import java.io.BufferedInputStream;
import java.io.FileInputStream;

public class MP3 {
	private String filename;
	private Player player; // constructor that takes the name of an MP3 file
	public MP3(String filename) {    this.filename = filename;
	}
	public void close()
	{ if (player != null) 
		player.close(); }// play the MP3 file to the sound card
	public void play() {    
		try {    
			FileInputStream fis     = new FileInputStream(filename);
		BufferedInputStream bis = new BufferedInputStream(fis);
                        player = new Player(bis);    }
		catch (Exception e) {  
			System.out.println("Problem playing file " + filename);     
			System.out.println(e);    }
                // run in new thread to play in background
		new Thread() {    
			public void run()
			{        try { player.play();
			}        catch (Exception e) 
			{ System.out.println(e); }    }}.start();

	}
public static void main(String[] args)
{    String filename = "D:/azan.mp3"; 
MP3 mp3 = new MP3(filename);  
mp3.play();}
}

ولكن الآن عندى مشكلة وهى أن عند تسطيب البرنامج يأخذ مسار افتراضى فى program files وأنا اعتمد على هذا المسار فى تشغيل ال.jar file فعند تغيير هذا المسار

عند التسطيب لن يستطيع الbatch file أن يشغل البرنامج عند قيام الويندوز

أنا عندى حل لهذه المشكلة أرجوكم أن تساعدونى فيه وهو أن أنسخ عند فتح البرنامج shortcut to jar file فى مجلد startup كيف يكون ذلك من خلال الكود .

تم تعديل هذه المشاركة بواسطة elwaly في 29 أغسطس 2010 في 12:44

#21

أظن أنه من الأفضل استعمال أحد ال install wizards

innosetup

izpack

#22

أخى طيب كيف اعمل شرط بحيث فى حين عمل البرنامج لو حاولت فتحه مرة أخرى لا يظهر مرتين أو على الأقل لا تظهر System tray Icon مرة أخرى

هل عندك حل

#23

ممكن مثلا عند تشغيل البرنامج أن تتحقق أن ملفا في مسار محدد مسبقا موجود،.إذا كان موجودا تعطي رسالة للمستخدم بأن هناك instance أخرى من البرنامج تشتغل، إذا لم يكن موجودا فإنك تنشئ الملف.

#24

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

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

ولكن طبقت فكرتك جزاك الله خيرا

#25

لا تنس مسح الملف عند إغلاق البرنامج

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