Я использую проект класса globalhook из кода для управления слайд-шоу PowerPoint с помощью пользовательских клавиш (приложение Windows Form). Я хочу, чтобы объект PowerPoint закрывался при нажатии любой клавиши, но обработчик событий игнорирует эту функцию и отказывается выполнять какие-либо действия, если она не находится вобласть применения основной формы.вот мой код:
public partial class Form1 : Form
{
PowerPoint.Application objApp;
PowerPoint.Presentations objPresSet;
PowerPoint._Presentation objPres;
PowerPoint.Slides objSlides;
PowerPoint._Slide objSlide;
public Form1()
{
InitializeComponent();
UserActivityHook actHook;
objApp = new PowerPoint.Application();
actHook = new UserActivityHook(); // crate an instance with global hooks
// hang on events
actHook.KeyPress += new KeyPressEventHandler(MyKeyPress);
objPresSet = objApp.Presentations;
objPres = objPresSet.Add(MsoTriState.msoTrue);
objSlides = objPres.Slides;
}
[STAThread]
public static void Main(string[] args)
{
Application.Run(new Form1());
}
// UserActivityHook actHook;
public void MyKeyPress(object sender, KeyPressEventArgs e)
{
Form2 Form2 = new Form2();
button1.Hide(); //executes normally
Form2.Show(); //no action
objApp.Quit(); // no action
}
private void button1_Click(object sender, EventArgs e)
{
Form2 Form2 = new Form2();
Form2.Show();
}
}