سلام دوستان میخواستم ببینم چجوری میتونم به برنامه هایی که از طریق استارت آپ لود شدن را در سی شارپ بدست بیارم؟
ممنون میشم راهنماییم کنید.
Printable View
سلام دوستان میخواستم ببینم چجوری میتونم به برنامه هایی که از طریق استارت آپ لود شدن را در سی شارپ بدست بیارم؟
ممنون میشم راهنماییم کنید.
لینک زیر را ببینید
https://stackoverflow.com/q/13181009
سلام ممنون بابت جوابتون.
چک کردم یک سری از برنامه هارو از طریق رجیستری توی آدرسی که توی این لینک بود دیدم .اما تعداد برنامه هایی که استارت آپ میشن خیلی بیشتره .
میخوام برنامه من که بازه برنامه های باز (اسکرین شات و فیلم برداری از دستکات) بسته بشه گفتم شاید لیست نرم افزار های ستارت آپو در بیارم شاید بتونم این کارو کنن.
حالا جدای از بدست آوردن لیست استارت آپ چجوری میتونم تمام برنامه های نصب شده که الان به حالت ران هستنو ببندم؟
سلام نمیدونم چیزی که میخواین اینه ؟ :ضمنا این کد رو میتونی توی یه تایمر بذاری هر مثلا 10 ثانیه یکبار چک کنه.
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
public static bool ___CheckAppTitles()
{
List<string> vs = new List<string>(new string[]
{
"AppTitle3",
"AppTitle2"
});
if (___Is_App_Running(vs) == true)
{
return true;
}
try
{
if (FindWindow("AppClass1" , null) != IntPtr.Zero)
{
return true;
}
if (FindWindow("AppClass2", null) != IntPtr.Zero)
{
return true;
}
}
catch
{
return true;
}
return false;
}
private static bool ___Is_App_Running(List<string> Apps_Window)
{
try
{
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
foreach (string AppTitle in Apps_Window)
{
if (process.MainWindowTitle.ToLower().Contains(AppTit le) == true ||
process.MainWindowTitle.ToUpper().Contains(AppTitl e) == true) return true;
}
}
}
return false;
}
catch
{
return false;
}
}
نکته : برای بدست آوردین اسم کلاس برنامه ها از نرم افزار SPY++ یا چیزی شبیه به اون استفاده کنین.
SPY++
winSpector