delphi4arab منتديات دلفي للعرب
معلمة تعرف البرنامج على حرف cd - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : معلمة تعرف البرنامج على حرف cd (/showthread.php?tid=798)



معلمة تعرف البرنامج على حرف cd - mohjw - 10-04-2009

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

حقيقة أني استفدت من هذا الموقع فوائد كثيرة جدا

ومنها اني أحببت دلفي وتوجهت لتعلمه ومازلت على أول
عتبات التعلم

وعندي سؤال لو تكرمتوا


كيف اجعل أمر تشغيل برنامج خارجي من cd يتم من خلال دلفي

بمعنى تشغيل برنامج من الجهاز سهل
يكون امر الزر هكذا
إقتباس :winexec('c:\windows\calc.exe' ,sw_show) ;

لكن كيف اعطي الزر امر يشغل برنامج من على cd

ولكم دعائي وخالص ثنائي

أخوكم ابو عبدالله



معلمة تعرف البرنامج على حرف cd - I_Tiger - 10-04-2009

السلام عليكم

واصل اخي فلغة دلفاي لغة رائعة وهذا المنتدى يزيدها روعة اما عن سؤالك

فالامر في غاية البساطة فقط ظع المسار الكامل للملف وسيشتغل حتى ولو كان في CD

يعني لو كان الملف في السواقة F تكتب

كود :
winexec('F:\calc.exe' ,sw_show) ;

واليك طريقة اخرى عن طريق الAPI's

اظف

كود :
uses ShellApi;

ثم اكتب في حدث الظغط

كود :
ShellExecute(Handle, 'open', 'c:\Windows\system32\notepad.exe', nil, nil, SW_SHOWNORMAL) ;

ملاحظة:

الكود الذي ادرجته في سؤالك يعمل في 98 و Me

اما في XP و 2000 و اعتقد Vista و Seven ايظا هو كالتالي:

كود :
winexec('c:\windows\system32\calc.exe' ,sw_show) ;



معلمة تعرف البرنامج على حرف cd - mohjw - 11-04-2009

سلام وتحية لك ولأهلنا في الجزائر جميعا

أخي الكريم
ردك رائع ووافي ولكن !!

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

**** البرنامج يكتشف حرف السواقة المضغوطة تلقائي
لأنه ما يخفى عليك تختلف من جهاز لجهاز [ f - h -g] وهكذا
ولك تقديري
محبكم أبو عبدالله



معلمة تعرف البرنامج على حرف cd - Maher Tannous - 11-04-2009

حمل هذا أخي و ستجد فيه طلبك
http://www.delphi4arab.net/forum/attachment.php?attachmentid=645&d=1235953938


معلمة تعرف البرنامج على حرف cd - I_Tiger - 11-04-2009

ان لم يشتغل لديك المثال الذي تفظل به الاخ ماهر بسبب تلك المكونات المجهولة فاليك هذا الكود الذي يعطيك حرف السيديروم

كود :
function GetFirstCdRomDrive: string; var r: LongWord; Drives: array[0..128] of char; pDrive: pchar; begin Result := ''; r := GetLogicalDriveStrings(sizeof(Drives), Drives); if r = 0 then exit; if r > sizeof(Drives) then raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY)); pDrive := Drives; while pDrive^ <> #0 do begin if GetDriveType(pDrive) = DRIVE_CDROM then begin Result := pDrive; exit; end; inc(pDrive, 4); end; end;

وهذا مثال على استدعائه

كود :
ShowMessage(GetFirstCdRomDrive);

ملاحظة:

الدالة ترجع empty string اذا لم يكن هناك سيدي درايف على الجهاز



معلمة تعرف البرنامج على حرف cd - mohjw - 11-04-2009

ألف شكر وتحية

لردودك الوافية والجميلة

أسعدك الله بطاعته ورضاه



معلمة تعرف البرنامج على حرف cd - mohjw - 11-04-2009

شاكر ومقدر ردك أخي ماهر وقد استفدت من ردكما

بورك فيكما


معلمة تعرف البرنامج على حرف cd - I_Tiger - 11-04-2009

على الرحب اخي