PDA

View Full Version : سوال: ساختن فایل Setup بصورت صحیح و علمی



sara.mahdavi
سه شنبه 26 شهریور 1392, 22:41 عصر
با سلام:لبخندساده:

توی ویندوز 7 و 8 بعد از نصب برنامه ، زمانی که برنامه میخواد اجرا بشه و با بانک اطلاعاتی ارتباط برقرار کنه بخاطر محدودیت UAC به مشکل میخوره
برای این مشکل باید چیکار کنم؟

ممنون میشم اگه روش صحیح ساخت فایل Setup یا هر موردی که این مشکل رو حل کنه بفرمایید

با تشکر فراوان:قلب:

Delphi 2010
سه شنبه 26 شهریور 1392, 22:45 عصر
به نظر بنده Run as administrator رو تست کن
کدش هم هست تو سایت

sara.mahdavi
سه شنبه 26 شهریور 1392, 23:04 عصر
جستجو کردم ولی چیز بدرد بخوری پیدا نکردم:ناراحت:
من فکر میکنم برای نصب برنامه باید اون رو توی فولدر Program Data ریخت چون وقتی توی این فولدر کپی میکنم دیگه مشکلی نداره

1- ولی نمیدونم چطوری برنامه رو توی این فولدر نصب کنم
2- این فولدر فقط توی ویندوز 7 و 8 هست و توی ویندوز XP این فولدر رو نداره و برای XP باید داخل همون فولدر Program File بریزه

برای همین مورد میخوام روش صحیحش رو بدونم
ممنون:قلب:

بهروز عباسی
سه شنبه 26 شهریور 1392, 23:22 عصر
جستجو کردم ولی چیز بدرد بخوری پیدا نکردم:ناراحت:منظور Delphi 2010 (http://barnamenevis.org/member.php?184542-Delphi-2010) استفاده از Mainfast مخصوص این کار بود با اضافه کردن این فایل به فایل اجرایی برنامه ،برنامه موقع اجرا دسترسی Admin رو از کاربر می خواد .

persia_hrn
سه شنبه 26 شهریور 1392, 23:36 عصر
استفاده از Mainfst خیلی راحته

اینم پستش
http://barnamenevis.org/showthread.php?196245-Create-Manifest-for-Win7-amp-Vista-UAC-if-Not-Running-Under-Administrative-Rights


در ضمن برای استفاده از فایل REC دلفی رو هم باید در حالت RunAsAdministrator باز کنید

persia_hrn
سه شنبه 26 شهریور 1392, 23:41 عصر
البته استفاده از Mainfast حالت های مختلفی داره که اگه توی گوگل یه سرچی بزنید حالتهای مختلفش رو پیدا میکنید .

موفق باشید .

sara.mahdavi
چهارشنبه 27 شهریور 1392, 00:07 صبح
خیلی ممنون از راهنماییتون ولی من از Mainfast چیزی نفهمیدم
طبق لینکی که گذاشتید Mainfast ساختم ولی عمل نکرد و موقع اجرای برنامه از من اجازه دسترسی نخاست
اصلا این Mainfast روی فایل exe باید ساخته بشه یا توی فایل اصلی برنامه (سورس)؟؟؟

persia_hrn
چهارشنبه 27 شهریور 1392, 00:30 صبح
شما فایل REC رو که ساختید کنار فایل اجرایی برنامتون میذارید و توی سورس برنامه به صورت زیر استفاده میکنید ، البته اول خود دلفی رو RunAsAdmin کنید تا درست جواب بده .

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, registry, shlobj;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
{$R Project1.REC} اینجا اسم فایلی که ساختید میذارید .
...

persia_hrn
چهارشنبه 27 شهریور 1392, 00:33 صبح
در ضمن زمانی که برنامه رو توی دلفی کامپایل میکنید اجازه دسترسی نمیخواد .

sara.mahdavi
چهارشنبه 27 شهریور 1392, 01:45 صبح
این مراحلی که فرمودید رو رفتم
حالا از کجا بفهمم که درست انجام دادم؟؟؟

persia_hrn
چهارشنبه 27 شهریور 1392, 01:58 صبح
فایل اصلی برنامتون رو از توی ویندوز اجرا کنید ببینید پیغام دسترسی UAC میاد ؟
از آیکون فایلتون هم مشخصه :چشمک:

Felony
چهارشنبه 27 شهریور 1392, 06:03 صبح
احتمالا بانک اطلاعاتی شما File Based هست ( مثل SQLite یا Access ) و این فایل کنار برنامه قرار داره و برنامه هم در Program Files نصب میشه ، بنابراین این موارد طبیعی هست ، قبلا هم در موردش چند بار همینجا توضیح دادم .

طبق راهبرد تعیین شده مایکروسافت Program Files صرفا مکانی برای نصب برنامه هست نه ذخیره اطلاعات مربوط به برنامه ها ، برنامه ها وظیفه دارن اطلاعات خودشون رو تو پوشه Application Data بنویسن / بخونن ، در ویندوز XP هم این راهبرد توسط مایکروسافت تعیین شده بود ولی اجباری بهش نبود و خیلی ها رعایتش نمیکردن ، در ویندوز ویستا این روند تغییر کرد و Program Files جزء پوشه هایی قرار گرفت که برنامه ها برای نوشتن اطلاعات در اون باید Token خاصی رو در Privilage خودشون داشته باشن تا به نوعی برنامه نویسان رو ملزم به رعایت قوانین بکنه و امنیت سیستم عامل به این شیوه بالاتر بره .

در هر صورت اون Application Data که میگی تو ویندوز XP نیست ، چرا هست ، تو این آدرس :


C:\Documents and Settings\Username\Local Settings\Application Data

در ضمن راه درست این هست که برنامتون رو در Program Files نصب کنید و بانک اطلاعاتی File Based تون رو در Application Data قرار بدید ، در برنامه هم با کافیه با تابع SHGetSpecialFolderLocation آدرس پوشه Application Data رو به دست بیارید و به بانکتون وصل شید .

در مورد ساخت Setup هم تو همه نرم افزارهای Setup ساز میتونید برای هر فایل به صورت جداگانه آدرس نصب بدید ، برای فایل های ثابت برنامه و فایل اجرایی برنامتون آدرس Program Files و برای فایل های تنظیمات و بانک و ... برنامه که ممکنه در حین اجرای برنامه تغییر کنن پوشه Application Data ( Program Data ) رو انتخاب کنید .