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

نام تاپیک: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    قم
    پست
    531

    اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    سلام.
    یکی از مسائلی که برنامه نویسها در ویندوز ویستا بهش برخورد می کنند مسأله UAC یا همون User Account Control است که بطور پیش فرض فعاله. به بیان ساده مفهومش اینه که اگه برنامه ما در پوشه ProgramFiles یا پوشه Windows باشه و بخوایم در این پوشه کارهایی مثل نوشتن در دیتا بیس، تغییر یک فایل و ... انجام بدیم، ویندوز ویستا این اجازه رو به ما نمیده؛ دلیلش هم اینه که برنامه ها در حالت پیش فرض، با مجوز کاربر استاندارد «Standard User» اجرا میشن و از طرفی برای تغییر یک فایل در این پوشه ها باید برنامه ما با مجوز Admin اجرا بشه. ( البته مجوز استاندارد محدودیتهای دیگه هم داره؛ مثلا اجازه تغییر بعضی از قسمتهای رجیستری رو نداره و ...)
    و اما راه برطرف کردن این مشکل:
    - بصورت دستی: در این حالت برای اجرای برنامه ها با مجوز Admin، روی فایل اجرایی برنامه کلیک راست می کنیم و Run As Administrator رو انتخاب می کنیم.
    - از طریق برنامه نویسی (که برنامه ما خود به خود با مجوز Admin اجرا بشه): باید یک سری کارها رو انجام بدیم که همه ی این کارها رو این برنامه که آپلود کردم انجام میده؛ فقط کافیه فایل پروژه رو - که با پسوند dpr هستش- درگ کنیم روی فایل اجرایی این برنامه. بعدش هم باید پروژه رو یک بار کامپایل کنیم.
    امیدوارم به درد دوستان بخوره.
    راستی منبع این مطلب سایت delphi.about.com هست.
    موفق باشید
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    نقل قول نوشته شده توسط جواد ملاولی مشاهده تاپیک
    سلام.
    یکی از مسائلی که برنامه نویسها در ویندوز ویستا بهش برخورد می کنند مسأله UAC یا همون User Account Control است که بطور پیش فرض فعاله. به بیان ساده مفهومش اینه که اگه برنامه ........- از طریق برنامه نویسی (که برنامه ما خود به خود با مجوز Admin اجرا بشه): باید یک سری کارها رو انجام بدیم که همه ی این کارها رو این برنامه که آپلود کردم انجام میده؛ فقط کافیه فایل پروژه رو - که با پسوند dpr هستش- درگ کنیم روی فایل اجرایی این برنامه. بعدش هم باید پروژه رو یک بار کامپایل کنیم.
    امیدوارم به درد دوستان بخوره.
    راستی منبع این مطلب سایت delphi.about.com هست.
    موفق باشید
    سلام
    من همه این کارها رو انجام دادم ولی مشکلم حل نشد.
    dpr رو درگ کردم روی project1.exe و بعد project1.manifest رو گذاشتم کنار برنامه خودم(project1) برنامه رو یه بار دیگه کامپایل کردم. ولی درست نشد.

    لطفا بگید کجای کارم ایراد داره.

  3. #3

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    ظاهرا این برنامه فقط یک Manifest به پروژه اضافه میکنه. اتفاقا اگر برنامه شما Manifest نداشته باشه، شانس کار کردنش بیشتر هست، چون برنامه بدون Manifest از نظر ویستا یک برنامه قدیمی محسوب میشه، و ویندوز امکاناتی برای اجرای اینگونه برنامه های قدیمی در نظر میگیره؛ فرضا اگر یک برنامه قدیمی بخواد در Program Files چیزی بنویسه، ویندوز ویستا و ویندوز 7 بجای نوشتن در این پوشه، داده ها را در یک Virtual Store ذخیره می کنند. برنامه خودش فکر میکنه که در این پوشه داره مینویسه، ولی عملا داده ها جای دیگه ایی داره ذخیره میشه. همین کار را اگر یک برنامه بدون مجوز مدیر ولی دارای Manifest انجام بده، بلافاصله با پیام خطا مواجه میشه.

    یک برنامه خوب باید تا حد امکان از انجام اموری که مربوط به حوزه های مدیریتی میشه، اجتناب کنه (غیر از بعضی از نرم افزارهای سیستمی که اصولا برای کارهای مدیریتی طراحی شدند). اگر هم فرضا جایی نیاز به انجام اموری با مجوز مدیر داشت، باید در همان مرحله تقاضای Elevation بکنه، نه اینکه یک برنامه ساده اداری بخاطر اینکه برنامه نویسش بلد نیست، یا حوصله نداره خودش را با اصول برنامه نویسی تحت ویندوز هماهنگ کنه، از همون لحظه اول که اجرا میشه، بیخودی تقاضای مجوز مدیر بکنه!

    بجای این کارها باید شیوه برنامه نویسی تان را تغییر بدید، پوشه Program Files پوشه ایی برای نگهداری تنظیمات برنامه یا فایل های داده نیست، در ویندوز پوشه AppData برای این کار در نظر گرفته شده. برنامه نویسانی که قبلا در Program Files داده های خودشان را می نوشتند، به مستندات و توصیه های مایکروسافت توجه نمی کردند.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  4. #4

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    ظاهرا این برنامه فقط یک Manifest به پروژه اضافه میکنه. اتفاقا اگر برنامه شما Manifest نداشته باشه، شانس کار کردنش بیشتر هست، چون برنامه بدون Manifest از نظر ویستا یک برنامه قدیمی محسوب میشه، و ویندوز امکاناتی برای اجرای اینگونه برنامه های قدیمی در نظر میگیره؛ فرضا اگر یک برنامه قدیمی بخواد در Program Files چیزی بنویسه، ویندوز ویستا و ویندوز 7 بجای نوشتن در این پوشه، داده ها را در یک Virtual Store ذخیره می کنند. برنامه خودش فکر میکنه که در این پوشه داره مینویسه، ولی عملا داده ها جای دیگه ایی داره ذخیره میشه. همین کار را اگر یک برنامه بدون مجوز مدیر ولی دارای Manifest انجام بده، بلافاصله با پیام خطا مواجه میشه.

    یک برنامه خوب باید تا حد امکان از انجام اموری که مربوط به حوزه های مدیریتی میشه، اجتناب کنه (غیر از بعضی از نرم افزارهای سیستمی که اصولا برای کارهای مدیریتی طراحی شدند). اگر هم فرضا جایی نیاز به انجام اموری با مجوز مدیر داشت، باید در همان مرحله تقاضای Elevation بکنه، نه اینکه یک برنامه ساده اداری بخاطر اینکه برنامه نویسش بلد نیست، یا حوصله نداره خودش را با اصول برنامه نویسی تحت ویندوز هماهنگ کنه، از همون لحظه اول که اجرا میشه، بیخودی تقاضای مجوز مدیر بکنه!

    بجای این کارها باید شیوه برنامه نویسی تان را تغییر بدید، پوشه Program Files پوشه ایی برای نگهداری تنظیمات برنامه یا فایل های داده نیست، در ویندوز پوشه AppData برای این کار در نظر گرفته شده. برنامه نویسانی که قبلا در Program Files داده های خودشان را می نوشتند، به مستندات و توصیه های مایکروسافت توجه نمی کردند.
    من در program files نمی خوام چیزی بنویسم. فقط سریال هارد رو می خوام بخونم که در administrator می خونه ولی در یوزری مثل Ali نمی تونه بخونه.
    سریال هارد رو برای قفل می خوام

  5. #5

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    من در program files نمی خوام چیزی بنویسم. فقط سریال هارد رو می خوام بخونم که در administrator می خونه ولی در یوزری مثل Ali نمی تونه بخونه.
    فرقی در بحث نمیکنه، شما باید فقط زمانی که نیاز به خواندن سریال هارد دارید، درخواست Elevation کنید، نه اینکه برنامه در تمام مدت اجرا خود دارای مجوزهای Admin باشه!


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  6. #6

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    فرقی در بحث نمیکنه، شما باید فقط زمانی که نیاز به خواندن سریال هارد دارید، درخواست Elevation کنید، نه اینکه برنامه در تمام مدت اجرا خود دارای مجوزهای Admin باشه!
    من هم همان بار اول که برنامه اجرا می شود می خوام سریال هارد رو بخونم یعنی یه بار سریال هارد خونده می شه و دیگه کاری به admin ندارم.
    در ضمن نمی خوام به کاربر بگم که برنامه رو تحت admin اجرا کنه. می خوام برنامه این کارو انجام بده.

  7. #7

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    در ضمن نمی خوام به کاربر بگم که برنامه رو تحت admin اجرا کنه. می خوام برنامه این کارو انجام بده.
    در صورت فعال بودن UAC، برنامه برای خودش دسترسی Admin به دست نمیاره، بلکه درخواست Elevation میکنه، ویندوز هم به کاربر اطلاع میده که این برنامه میخواد به چیزی در سطح Admin دسترسی داشته باشه، و اگر کاربر موافقت کرد، ویندوز اجازه ارتقاء دسترسی Process رو میده.
    اگر قرار بود برنامه همینطوری برای خودش دسترسی Admin بدست بیاره که وجود UAC بی معنی میشد!


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  8. #8

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    در صورت فعال بودن UAC، برنامه برای خودش دسترسی Admin به دست نمیاره، بلکه درخواست Elevation میکنه، ویندوز هم به کاربر اطلاع میده که این برنامه میخواد به چیزی در سطح Admin دسترسی داشته باشه، و اگر کاربر موافقت کرد، ویندوز اجازه ارتقاء دسترسی Process رو میده.
    اگر قرار بود برنامه همینطوری برای خودش دسترسی Admin بدست بیاره که وجود UAC بی معنی میشد!
    من که شماره سریال هارد رو request می دم هیچ پیغامی نمیده که بخواد اجازه دسترسی بگیره و مثلا edit1.text رو خالی نشون می ده. تو یوزر administrator نشون می ده ولی تو یوزر ali نه.
    در این صورت باید چه کار کنم؟

  9. #9

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    من که شماره سریال هارد رو request می دم هیچ پیغامی نمیده که بخواد اجازه دسترسی بگیره و مثلا edit1.text رو خالی نشون می ده.
    خودش خود به خود اجازه نمیگیره، شما باید خودتان بدانید که چه کارهایی نیاز به دسترسی مدیریتی دارد و قبل از انجام آن، از ویندوز درخواست مجوز کنید. اگر بدون درخواست، عمل مربوطه را انجام بدید، ویندوز آن عمل را با موفقیت انجام نمیده.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  10. #10

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    خودش خود به خود اجازه نمیگیره، شما باید خودتان بدانید که چه کارهایی نیاز به دسترسی مدیریتی دارد و قبل از انجام آن، از ویندوز درخواست مجوز کنید. اگر بدون درخواست، عمل مربوطه را انجام بدید، ویندوز آن عمل را با موفقیت انجام نمیده.
    جناب کشاورز من تا به حال تو ویندوز ویستا برنامه نویسی نکردم ، فقط جهت کنجکاوی میخوام بدونم که برای این کار API خاصی در نظر گفته شده ؟ باید پیغام خاصی برای گرفتن دسترسی ارسال کرد ؟
    ممنون میشم توضیح بدید یا منبعی معرفی کنید .

  11. #11

    نقل قول: اگه برنامه شما در پوشه ProgramFiles ویستا درست کار نمی کنه، این پست رو ببینید.

    جناب کشاورز من تا به حال تو ویندوز ویستا برنامه نویسی نکردم ، فقط جهت کنجکاوی میخوام بدونم که برای این کار API خاصی در نظر گفته شده ؟ باید پیغام خاصی برای گرفتن دسترسی ارسال کرد ؟
    ممنون میشم توضیح بدید یا منبعی معرفی کنید .
    http://www.delphi.org.nz/file.php/1/...CandDelphi.pdf
    http://delphi.wikia.com/wiki/Delphi_and_Vista


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

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

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