PDA

View Full Version : چجوری اپلیکیشن administrator را زمان استارت آپ ویندوز اجرا کنم؟



SajjadKhati
یک شنبه 09 اردیبهشت 1397, 19:20 عصر
سلام
اپلیکیشن ای دارم (win form سی شارپ) که بصورت run as admin اجرا میشه
چجوری میتونم این اپلیکیشن را زمان استارت آپ ویندوز بصورت اتوماتیک اجرا کنم؟

barnamenevisjavan
یک شنبه 09 اردیبهشت 1397, 21:51 عصر
سلام
اپلیکیشن ای دارم (win form سی شارپ) که بصورت run as admin اجرا میشه
چجوری میتونم این اپلیکیشن را زمان استارت آپ ویندوز بصورت اتوماتیک اجرا کنم؟
سلام چندتا راه دارید
استفاده از vbscript
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run """C:\Program.exe""", 0 'Must quote command if it has spaces; must escape quotes
Set WshShell = Nothing
بصورت فایل vbs ذخیره کنید و این فایل vbs رو در پوشه startup قرار بدید.
راه دوم استفاده از task ها هستش
از بخش Scheduled Task یک تسک بصورت یر ایجاد کنید


General (tab) - "Run with highest privileges"
Triggers (tab) - New (button) - Begin the task - "At log on"

SajjadKhati
یک شنبه 09 اردیبهشت 1397, 23:24 عصر
سلام چندتا راه دارید
استفاده از vbscript
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run """C:\Program.exe""", 0 'Must quote command if it has spaces; must escape quotes
Set WshShell = Nothing
بصورت فایل vbs ذخیره کنید و این فایل vbs رو در پوشه startup قرار بدید.
راه دوم استفاده از task ها هستش
از بخش Scheduled Task یک تسک بصورت یر ایجاد کنید


General (tab) - "Run with highest privileges"
Triggers (tab) - New (button) - Begin the task - "At log on"



سلام
ممنون
با این کد آشنا نیستم ولی دقیقا همین کد را با مسیر فایل خودم نوشتم :



Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run """E:\Project\Visual Studio\C#‎‎‎.Net\Saved Project\Windows Update Disabler\Windows Update Disabler\Windows Update Disabler\bin\Debug\Windows Update Disabler.exe""", 0 'Must quote command if it has spaces; must escape quotes
Set WshShell = Nothing


و با پسوند vbs در مسیر پوشه ی استارت آپ :



C:\Users\SomSaj\AppData\Roaming\Microsoft\Windows\ Start Menu\Programs\Startup


ذخیره کردم ولی برنامه ام بالا نیومد

-------------

روش دوم هم میدونم ولی بصورت برنامه نویسی میخوام . بصورت برنامه نویسی هم با Wrapper Task scheduler :

https://www.nuget.org/packages/TaskScheduler/

هم نمیدونم چجوری گزینه ی Run with highest privileges رو میشه فعال کرد

SajjadKhati
دوشنبه 10 اردیبهشت 1397, 00:45 صبح
ممنون دوست عزیز
با همون Wrapper Task scheduler حل شد
کدش اینه :



using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.Principal.RunLevel = TaskRunLevel.Highest;
LogonTrigger trigger = new LogonTrigger();
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction(appFilePath, null, null));
ts.RootFolder.RegisterTaskDefinition("Windows Update Diabler", td);
}



ولی من کد زیر را مینوشتم :



using (TaskService taskScheduler = new TaskService())
{
LogonTrigger winUpDisLogOnTrigger = new LogonTrigger();
winUpDisLogOnTrigger.Enabled = true;
ExecAction winUpDisAction = new ExecAction(appFilePath);


Task winUpDisTask = taskScheduler.AddTask("Windows Update Diabler", winUpDisLogOnTrigger, winUpDisAction);
winUpDisTask.Definition.Principal.RunLevel = TaskRunLevel.Highest;
}



تفاوت اش این بود که در کد من (دومی) ، اول با متد AddTask ، به task scheduler اضافه میکرد و بعد از اضافه کردن ، حالا در خط بعد اون privilage را براش ست میکرد . حواسم نبود که متد AddTask اول میاد ثبت و اضافه میکنه و بعدش از این خط که ثبت کرد ، خط های بعدش میشن نوشدارو و سهراب http://forum.majidonline.com/styles/majidonline/smilies/majidonline_biggestgrin.gif