PDA

View Full Version : کار با درایو سی در سی شارپ



taha11111
یک شنبه 27 مهر 1393, 20:44 عصر
سلام
من ي برنامه نوشتم که اولا از تو رجيستري اتوران ميشه. دوما چند تا فايلو از ي درايو ديگه تو درايو سي کپي ميکنه ولي چون کار با درايو سي هست براي همين ارور ميده اما اگه روي فايل اگزه برنامه راست کليک کنيم و در قسمت پروپرتيز تيک گزينه ران از ادمينيستور رو بزنيم برنامه درست اجرا ميشه ولي ديگه اتوران نميشه . حالا شما راهي رو ميدونين که بشه بدون زدن تيک ران از ادمینیستور برنامه رو به خوبي اجرا کرد؟؟؟

elec60
یک شنبه 27 مهر 1393, 21:09 عصر
سلام

شما بايد UI برنامه رو به صورت Non Admin اجرا کنين، ولی قسمتی که به Admin Permission نياز داره رو به صورت Service بنويسين و با استفاده از تکنولوژی WCF از UI به سرويس دسترسی پيدا کنين و از سرويس بخوايين که کار مورد نظر رو براتون انجام بده.

danialafshari
یک شنبه 27 مهر 1393, 21:12 عصر
http://barnamenevis.org/showthread.php?397557-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-Run-As-Administrator
http://www.30sharp.com/article/4/185/1/%D8%A7%D8%AC%D8%B1%D8%A7-%D9%86%D9%85%D9%88%D8%AF%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%A8%D8%A7-%D9%85%D8%AC%D9%88%D8%B2-%D9%85%D8%AF%DB%8C%D8%B1-run-as-administrator-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D9%88%DB%8C%D8%B3%D8%AA%D8%A7.aspx
http://www.hamcodi.ir/article/116

elec60
یک شنبه 27 مهر 1393, 21:21 عصر
http://barnamenevis.org/showthread.php?397557-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-Run-As-Administrator
http://www.30sharp.com/article/4/185/1/%D8%A7%D8%AC%D8%B1%D8%A7-%D9%86%D9%85%D9%88%D8%AF%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%A8%D8%A7-%D9%85%D8%AC%D9%88%D8%B2-%D9%85%D8%AF%DB%8C%D8%B1-run-as-administrator-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D9%88%DB%8C%D8%B3%D8%AA%D8%A7.aspx
http://www.hamcodi.ir/article/116

روشهایی که اينجا گفته شدن مشکل prompt رو حل نمیکنن وتنها نياز به click راست روی فايل exe و زدن Run As Administrator رو از بين ميبره. البته اگه UAC تو مينيمم حالت مانيتورينگش تنظيم باشه نميدونم باز prompt بخواد یا نه!

NASA's Spaceman
دوشنبه 28 مهر 1393, 01:12 صبح
ویژال استادیو رو run as an admin کن و بعد باهاش این برنامت رو بساز احتمالا مشکل حل میشه
با سپاس Spaceman

elec60
دوشنبه 28 مهر 1393, 06:37 صبح
ویژال استادیو رو run as an admin کن و بعد باهاش این برنامت رو بساز احتمالا مشکل حل میشه
با سپاس Spaceman


?Are you Joking
اگه اينچوری باشه که ديگه گرفتن مجوز از سيستم کشکه!!
چه ربطی به ويژوال استوديو داره؟!!

NASA's Spaceman
دوشنبه 28 مهر 1393, 09:09 صبح
تست کن
خیلی از کارایی که مجوز انجام دادنش رو بهت نمیده، از این روش بهت موزش رو میده و کارت و میکنی
با سپاس Spaceman

ya ali
دوشنبه 28 مهر 1393, 11:07 صبح
من برنامه هایی با بانکهای اکسس و sql درست کردم که بعد از نصب در سیستم مقصد البته تنها در ویندوز های 7 و 8 خطای Read-Only را می دهد باید چیکار کنم و قابلیت های ویرایش و حذف را انجام نمی دهد باید چیکار کنم.نیاز به کمک فوری دارم ممنون

مهرداد صفا
دوشنبه 28 مهر 1393, 15:30 عصر
روشهایی که اينجا گفته شدن مشکل prompt رو حل نمیکنن وتنها نياز به click راست روی فايل exe و زدن Run As Administrator رو از بين ميبره. البته اگه UAC تو مينيمم حالت مانيتورينگش تنظيم باشه نميدونم باز prompt بخواد یا نه!
سلام.
خیر. با کم کردن UAC حل میشه.
برای autoRun شدن تحت admin هم باید برنامه نصب و یا برنامه ای که نرم افزارتون رو در رجستری نصب می کنه تحت admin اجرا بشه.

ya ali
دوشنبه 28 مهر 1393, 15:52 عصر
یکبار این کد را در حالت admin استفاده کن دیگه دفعات بعد بدون سوال اجرا میشه
خدایی پدرم درامد تا این کدا رو پیدا کردم




static bool SetAcl()
{
FileSystemRights Rights = (FileSystemRights)0;
Rights = FileSystemRights.FullControl;

// *** Add Access Rule to the actual directory itself
FileSystemAccessRule AccessRule = new FileSystemAccessRule("Users", Rights,
InheritanceFlags.None,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow);

DirectoryInfo Info = new DirectoryInfo(آدرس پوشه برنامه در درایو ویندوز);
DirectorySecurity Security = Info.GetAccessControl(AccessControlSections.Access );

bool Result = false;
Security.ModifyAccessRule(AccessControlModificatio n.Set, AccessRule, out Result);

if (!Result)
return false;

// *** Always allow objects to inherit on a directory
InheritanceFlags iFlags = InheritanceFlags.ObjectInherit;
iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;

// *** Add Access rule for the inheritance
AccessRule = new FileSystemAccessRule("Users", Rights,
iFlags,
PropagationFlags.InheritOnly,
AccessControlType.Allow);
Result = false;
Security.ModifyAccessRule(AccessControlModificatio n.Add, AccessRule, out Result);

if (!Result)
return false;

Info.SetAccessControl(Security);

return true;
}

taha11111
سه شنبه 29 مهر 1393, 11:53 صبح
سلام

شما بايد UI برنامه رو به صورت Non Admin اجرا کنين، ولی قسمتی که به Admin Permission نياز داره رو به صورت Service بنويسين و با استفاده از تکنولوژی WCF از UI به سرويس دسترسی پيدا کنين و از سرويس بخوايين که کار مورد نظر رو براتون انجام بده.
ببخشید، میشه ی کم بیش تر توضیح بدید.