Закрытие сторонней программы через определенное время - C#
Формулировка задачи:
Может кто нибудь скинуть рабочий пример таймера, который закрывает стороннее приложение?
Решение задачи: «Закрытие сторонней программы через определенное время»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Drawing.Printing;
using System.Printing;
using PdfSharp.Pdf.Printing;
using System.Threading;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private static string GetDefaultPrinterName()
{
String[] printers = PrinterSettings.InstalledPrinters.Cast<string>().ToArray();
for (int i = 0; i < printers.Length; i++)
if (new PrinterSettings() { PrinterName = printers[i] }.IsDefaultPrinter)
return printers[i];
return null;
}
public void kill()
{
foreach (Process proc in Process.GetProcesses())
{
if (proc.ProcessName.StartsWith("Acro"))
{
string proname = proc.ProcessName.ToString();
if (proc.HasExited == false)
{
proc.WaitForExit(6000);
string title = proc.MainWindowTitle.ToString();
if (title == "Adobe Acrobat Pro" && proname == "Acrobat")
{
proc.Kill();
break;
}
else
{
string title2 = proc.MainWindowTitle.ToString();
if (title2 == "Adobe Reader" && proname == "AcroRd32")
{
proc.Kill();
break;
}
}
}
else
{
try
{
proc.Kill();
break;
}
catch
{
break;
}
}
}
}
}
public void print()
{
PdfFilePrinter.AdobeReaderPath = @"Reader 10.0\Reader\AcroRd32.exe";
PdfFilePrinter printer = new PdfFilePrinter(@"C:\Users\Slonik\Desktop\Binder2.pdf", @"" + GetDefaultPrinterName());
printer.Print(5000);
}
private void button1_Click(object sender, EventArgs e)
{
print();
kill();
}
}
}