نمایش نتایج 1 تا 8 از 8

نام تاپیک: شناسایی ProgramFile در درایوهای دیگر

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    30

    شناسایی ProgramFile در درایوهای دیگر

    با عرض سلام و ادب حضور اساتید محترم
    جستجوی زیادی انجام دادم اما به نتیجه نرسیده ام..
    بنده تغییرات نرم افزاری ام را در قالب Patch ارائه میدهم.
    مشتریانم به من گفته اند Patch عمل نمیکند یا به عبارتی نرم افزار تغییراتی نکرده است.
    مشکل آنها این است که نرم افزار را هر جا دلشون خواسته نصب کردند...
    من در Patch گفته ام که تعداد فایل موجود را به ProgramFiles و مقصد اصلی برنامه ام کپی کن اما Programfile در درایوی غیر از ویندوز ممکن است وجود داشته باشد
    برای زمانی که در ProgramFile در SystemROot وجود نداشته باشد دستور جستجوی Programfile در درایوهای دیگر را داده ام، و پس از یافتن کپی انجام میشود
    اما این جستجو و شناسایی فایلها به کندی انجام میشود .
    آیا من این موارد را درست انجام داده ام؟
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Rec: TSearchRec;
    begin
    if FindFirst('C:\Program Files\test\' + 'test1.exe', faDirectory, Rec) = 0 then
    CopyFile('test1.exe','C:\Program Files\test\',false);
    end;
    end.

  2. #2

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    آقا این کار رو نکن من هم قبلا این کار رو میکردم به مشگل میخوری یه کار دیگه کن.
    مثلا موقع نصب به برنامت بگو تویه کلید تو ریجستری محلی رو که کاربر برای نصب انتخاب کرده ذخیره کنه و بعدا که خاستی Patch بدی به Patch هات بگو اون کلید رو بخونن و آدرس رو ازش درارن و خودشونو اونجا کپی کنن.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    30

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    سلام دوست عزیز
    برنامه ام رو از قبل نصب شده دارم
    الان فقط باید با یک Patch اینکار انجام بشه

  4. #4

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    با سلام.

    برای پیدا کردن فولدر های خاصی مثل فولدرهای سیستم بهتر است از روشهای دیگر استفاده کنید. یکی از این راهها پیدا کردن مسیر فولدر از طریق رجیستری است. برای یافتن مسیر پوشه programfiles که مدنظر شما است میتوانید از این تابع استفاده کرده و از رجیستری مسیر را بیابید :

    function GetProgramFilesDir: string;
    var
    reg: TRegistry;
    begin
    reg := TRegistry.Create;
    try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVer sion', False);
    Result := reg.ReadString('ProgramFilesDir');
    finally
    reg.Free;
    end;
    end;


    خروجی این تابع مسیر مورد نظر خواهد بود :

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Edit1.Text := GetProgramFilesDir;
    end;


    در ضمن اضافه کردن یونیت Registry در لیست uses فرم خود را فراموش نکنید.
    موفق باشید...

  5. #5

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    برای مقصودی که داری بهتره محل نصب برنامتو تو رجیستری یا یه فایل ini ذخیره کنی. شاخه program files مربوط به windows فقط یکیه و اونم تو درایو نصب ویندوزه، وقتی کسی جایی غیر program files انتخاب میکنه نمیتونی از ویندوز جاشو بپرسی. (اگه از installer برای نصب برنامت استفاده کردی، خودش تو رجیستری یک شاخه به نام برنامت درست کرده و محل نصب رو نگه داشته.)

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    30

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    سلام
    چطوری میتونم پروگرام فایل رو توی دستور کپی بنویسم
    CopyFile(c:\test.exe, پروگرم فایل شناسایی شده test.exe, True);

    مثلا مقصد که D:\program files شناسایی شده چطوری توی دستور کپی واردش کنم؟

  7. #7
    کاربر دائمی آواتار delphi5
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    پست
    350

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    از

    dir1:=dir2+'\*.*';
    dir2:='';
    dir2:=('َآدرس');
    ShellFileOperation(dir1,dir2,FO_copy);


    یا


    Action:=CopyFile(pchar(dir1),pchar(dir2),true);

    استفاده کنید

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    30

    نقل قول: شناسایی ProgramFile در درایوهای دیگر

    ShellFileOperation(dir1,dir2,FO_copy);

    با سلام و احترام،، بنده با کد بالا کپی رو انجام میدم اما اگه فایلی از قبل وجود داشته باشه پیغام اینکه آیا میخواهید جایگزین شود ظاهر میشود
    بعد از انجام کپی میخوام فایل بدون اینکه سئوالی پرسیده بشه کپی انجام بشه و دیگه سئوالی نپرسه
    آخرین ویرایش به وسیله Graphical : چهارشنبه 05 تیر 1387 در 16:54 عصر دلیل: نامفهوم بودن سئوال

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •