معلمة تعرف البرنامج على حرف cd
#1
السلام عليكم ورحمة الله وبركاته

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

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

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


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

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

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

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

أخوكم ابو عبدالله
الرد
#2
السلام عليكم

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

فالامر في غاية البساطة فقط ظع المسار الكامل للملف وسيشتغل حتى ولو كان في 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) ;
الرد
#3
سلام وتحية لك ولأهلنا في الجزائر جميعا

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

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

**** البرنامج يكتشف حرف السواقة المضغوطة تلقائي
لأنه ما يخفى عليك تختلف من جهاز لجهاز [ f - h -g] وهكذا
ولك تقديري
محبكم أبو عبدالله
الرد
#4
حمل هذا أخي و ستجد فيه طلبك
http://www.delphi4arab.net/forum/attachm...1235953938
الرد
#5
ان لم يشتغل لديك المثال الذي تفظل به الاخ ماهر بسبب تلك المكونات المجهولة فاليك هذا الكود الذي يعطيك حرف السيديروم

كود :
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 اذا لم يكن هناك سيدي درايف على الجهاز
الرد
#6
ألف شكر وتحية

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

أسعدك الله بطاعته ورضاه
الرد
#7
شاكر ومقدر ردك أخي ماهر وقد استفدت من ردكما

بورك فيكما
الرد
#8
على الرحب اخي
الرد


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


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