المشاركات : 4
المواضيع 1
:
: 0
الإنتساب : Mar 2008
السلام عليكم ورحمة الله وبركاته
حقيقة أني استفدت من هذا الموقع فوائد كثيرة جدا
ومنها اني أحببت دلفي وتوجهت لتعلمه ومازلت على أول
عتبات التعلم
وعندي سؤال لو تكرمتوا
كيف اجعل أمر تشغيل برنامج خارجي من cd يتم من خلال دلفي
بمعنى تشغيل برنامج من الجهاز سهل
يكون امر الزر هكذا
إقتباس :winexec('c:\windows\calc.exe' ,sw_show) ;
لكن كيف اعطي الزر امر يشغل برنامج من على cd
ولكم دعائي وخالص ثنائي
أخوكم ابو عبدالله
المشاركات : 132
المواضيع 15
:
: 0
الإنتساب : Dec 2008
السلام عليكم
واصل اخي فلغة دلفاي لغة رائعة وهذا المنتدى يزيدها روعة اما عن سؤالك
فالامر في غاية البساطة فقط ظع المسار الكامل للملف وسيشتغل حتى ولو كان في CD
يعني لو كان الملف في السواقة F تكتب
كود :
winexec('F:\calc.exe' ,sw_show) ;
واليك طريقة اخرى عن طريق الAPI's
اظف
ثم اكتب في حدث الظغط
كود :
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) ;
المشاركات : 4
المواضيع 1
:
: 0
الإنتساب : Mar 2008
سلام وتحية لك ولأهلنا في الجزائر جميعا
أخي الكريم
ردك رائع ووافي ولكن !!
وبالنسبة للمثال كما ذكرت هو خاص بالأصدارات القديمة بس انا ابي الفكرة توصل فقط
**** البرنامج يكتشف حرف السواقة المضغوطة تلقائي
لأنه ما يخفى عليك تختلف من جهاز لجهاز [ f - h -g] وهكذا
ولك تقديري
محبكم أبو عبدالله
المشاركات : 37
المواضيع 8
:
: 0
الإنتساب : Mar 2008
المشاركات : 132
المواضيع 15
:
: 0
الإنتساب : Dec 2008
ان لم يشتغل لديك المثال الذي تفظل به الاخ ماهر بسبب تلك المكونات المجهولة فاليك هذا الكود الذي يعطيك حرف السيديروم
كود :
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 اذا لم يكن هناك سيدي درايف على الجهاز
المشاركات : 4
المواضيع 1
:
: 0
الإنتساب : Mar 2008
ألف شكر وتحية
لردودك الوافية والجميلة
أسعدك الله بطاعته ورضاه
المشاركات : 4
المواضيع 1
:
: 0
الإنتساب : Mar 2008
شاكر ومقدر ردك أخي ماهر وقد استفدت من ردكما
بورك فيكما
المشاركات : 132
المواضيع 15
:
: 0
الإنتساب : Dec 2008