Как использовать .net System.Diagnostics :: Process OnExited C ++? - PullRequest
0 голосов
/ 16 июня 2011

Может ли кто-нибудь привести пример использования события OnExited в C ++, см. Форму ссылки msdn, на которую я ссылаюсь. http://msdn.microsoft.com/en-us/library/system.diagnostics.process.onexited.aspx. Я действительно запутался с этим C ++ / CLI. Я пытаюсь удалить файл после завершения процесса. У меня это работает в C #, но я предпочитаю C ++, чтобы легче было переносить его на JNI.

1 Ответ

0 голосов
/ 16 июня 2011

Я не на самом деле уверен, что вы хотите, так что вот буквальный перевод кода на странице, на которую вы ссылались из C # в C ++ / CLI:

using namespace System;
using namespace System::Diagnostics;

ref class MyProcess : public Process
{
public:
    void Stop()
    {
        this->CloseMainWindow();
        this->Close();
        OnExited();
    } 
};

void myProcess_HasExited(Object^ sender, EventArgs^ e)
{
    Console::WriteLine(L"Process has exited.");
}

int main(array<String^>^ args)
{
    MyProcess^ p = gcnew MyProcess();
    p->StartInfo->FileName = L"notepad.exe";
    p->EnableRaisingEvents = true;
    p->Exited += gcnew EventHandler(myProcess_HasExited);
    p->Start();
    p->WaitForInputIdle();
    p->Stop();
}
...