PDA

View Full Version : سوال: اجرای یک proccess تحت یک user دیگر ( در ویستا می‌شه، در XP نمی‌شه )



SabaSabouhi
چهارشنبه 16 اردیبهشت 1388, 11:56 صبح
با سلام
به دلیل خاصی مجبورم داخل یک برنامه یک فایل exe را با کاربری دیگر ( دارای دسترسی admin ) اجرا کنم. برای این کار از روش زیر استفاده کردم:



Process proccess = new Process();
SecureString secPassword = new SecureString();
secPassword.Clear();
for ( int i = 0 ; i<password.Length ; i++ )
secPassword.AppendChar( password[i] );
proccess.StartInfo.FileName = myExec;
proccess.StartInfo.UserName = username;
proccess.StartInfo.Password = secPassword;
proccess.StartInfo.UseShellExecute = false;
proccess.StartInfo.Arguments = myArguments;
return proccess.Start();


این کد رو با VS2008 در ویندوز ویستا نوشتم و به خوبی هم کار کرد.
اما وقتی برنامه رو روی XP اجرا می‌کنم. به محض اجرای «myExec» ویندوز خطا می‌ده و برنامه رو قطع می‌کنه. اول گمان کردم اشکال از کد منه و کل کد رو توی try catch گذاشتم، اما مشکل حل نشد. گمان می‌کنم توی ویندوز XP نمی‌شه به این راحتی‌ها یک proccess رو تحت یک کاربر دیگه اجرا کرد.
اگه دوستان راه حلی برای مشکل من دارن، خوش‌حال می‌شم اگه به من هم بگید.

با سپاس
صبا صبوحی

SabaSabouhi
شنبه 19 اردیبهشت 1388, 10:46 صبح
با سلام

هیچ‌کی کمک نمی‌کنه؟

صبا صبوحی

NewFoxStudent
شنبه 19 اردیبهشت 1388, 11:39 صبح
من کد شما رو توی XP تست کردم
کاملا درست و بدون خطا کار میکنه مشکل از جای دیگست

SabaSabouhi
شنبه 19 اردیبهشت 1388, 14:42 عصر
من کد شما رو توی XP تست کردم
کاملا درست و بدون خطا کار میکنه مشکل از جای دیگست

با سلام
با سپاس از توجه شما، این کد خطا نمی‌دهد. برنامه‌ای که توسط این کد اجرا می‌شود، به محض اجرا خطا می‌دهد و از حافظه خارج می‌شود.
هنگام بروز خطا با task manager اجرای کد دوم توسط کاربر دیگر را نیز مشاهده می‌کنم. اما خطایی مشاهده می‌شود که در vista وجود ندارد و کل کد را نیز در try catch قراردادم اما باز خطا رخ داد. آیا دلیلی به ذهن شما می‌رسد؟

صبا صبوحی

NewFoxStudent
شنبه 19 اردیبهشت 1388, 14:46 عصر
من این کد رو توی xp امتحان کردم
با این کد از درون یک برنامه با یک کاربر دیگه یه برنامه دیگه و حتی خود اون برنامه رو برای بار دوم اجرا کردم
در هر دوحالت برنامه ها بخوبی اجرا شدن و مشکلی هم پیش نیومد


به محض اجرا خطا می‌دهد و از حافظه خارج می‌شود.
برای شما برنامه قبل از خارج شد چه خطایی میده

SabaSabouhi
دوشنبه 21 اردیبهشت 1388, 14:43 عصر
با سلام
خطای مشخصی نیست، نه شماره داره و نه توضیح.
فقط می‌گه که یه مشکلی پیش اومده و برنامه رو می‌بنده. اگه شد یه تصویر از خطا می‌گیرم و براتون می‌فرستم. ( همون خطایی که می‌خواد اطلاعات رو به مایکروسافت Send کنه. )
البته برنامه هنوز کامل نیست، اگه بخواهید براتون خود برنامه رو هم می‌فرستم.

صبا صبوحی

SabaSabouhi
چهارشنبه 23 اردیبهشت 1388, 16:32 عصر
با سلام

یه جا خوندم که اگه از UserName, Password استفاده می‌شه. حتماً باید WorkingDirectory مقدار بگیره این کار رو هم کردم اما باز هم فرقی نکرد. چرا تو Vista کار می‌کنه ولی توی XP خطا می‌گیره؟

صبا صبوحی

پانوشت: تصویر خطا رو در تاپیکی با عنوانconime یا همون Console IME ارسال کردم. اجازه نمی‌ده دوباره ارسال کنم.