hamide_kh
جمعه 17 خرداد 1387, 13:43 عصر
سلام
چطور می توانم نام درایو سی دی رامم را بدست آورم(سرچ هم کردم)
hamide_kh
جمعه 17 خرداد 1387, 14:37 عصر
سلام
ببخشید من جواب سوال اولم را تا حدودی بدست آوردم،اصلا هدف کلی من اینه که میخوام کل یک درایو مثلا d را در درایو c کپی کنم به نظر شما راهش چیست؟
Felony
جمعه 17 خرداد 1387, 14:51 عصر
سلام
ببخشید من جواب سوال اولم را تا حدودی بدست آوردم،اصلا هدف کلی من اینه که میخوام کل یک درایو مثلا d را در درایو c کپی کنم به نظر شما راهش چیست؟
برای پیدا کردن درایو CD-Rom میتونید از این دستور استفاده کنید :
Function GetDriveT(Drv:char):integer;
Begin
Result:=GetDriveType(Pchar(Drv+':\'));
end;
Function GetCdDrives:Tstringlist;
const
Drv:array[0..23]of char=('c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w','x','y','z ');
var
Drives:Set of 0..25;
n:Byte;
begin
Result:=Tstringlist.Create;
Result.Clear;
Integer(Drives):= getLOgicalDrives;
For n:=0 to 23 do
If n in Drives then
begin
If GetDriveT(Drv[n])=5{Cd} then
begin
Result.Add(Drv[n]);
end;
end;
end;
و برای کپی یک درایو میتونید از دستور زیر استفاده کنید و یم فانکشن به نام CopyDIr با محتوای زیر بنویسید :
function CopyDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
و درایو مبدا رو خروجی دستور CD-Rom در نظر بگیرید و درایو مقصد رو هم که C :
CopyDir('Mabda','Maghsad');
hamide_kh
شنبه 18 خرداد 1387, 19:18 عصر
سلام
دوست عزیز تشکر از توجه شما،من اون تابع برای کپی دیرایو را در برنامه ام کپی کردم ولی یک مشکلی هست که اون متغیر (fos: TSHFileOpStruct) را نمی شناسه من فکر می کنم باید یک uses اضافه کنیم
به نظر شما مشکل چیست؟
Felony
شنبه 18 خرداد 1387, 22:08 عصر
بله ببخشید من زود این دستور رو براتون نوشتم یادم رفت این رو بگم باید به Uses این رو اضافه کنی:
shellapi
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.