vishalkumar_86 Ответов: 0

Eventwatcher для открытия нескольких файлов excel.


Мы создали функциональность eventwatcher, которая отслеживает событие открытия окна его работы при открытии любого первого файла с тем же приложением, но когда я открываю его второй файл, то в этот раз он не будет срабатывать. например у меня есть два файла excel A.xls и еще B.xls когда я открою A.xls он прекрасно работает и после того, как я открою B.xls то это была не работа.

<pre lang="c#">public void WatchForProcessStart()
        {
            string queryString =
                "SELECT TargetInstance" +
                "  FROM __InstanceCreationEvent " +
                "WITHIN  .025 " +
                " WHERE TargetInstance ISA 'Win32_Process' "
                + "   AND TargetInstance.Name like '%'";

            // The dot in the scope means use the current machine
            string scope = @"\\.\root\CIMV2";

            // Create a watcher and listen for events
            startProcWatcher = new ManagementEventWatcher(scope, queryString);
            startProcWatcher.EventArrived += ProcessStarted;
            startProcWatcher.Start();            
        }


startProcWatcher.EventArrived += ProcessStarted;

private void ProcessStarted(object sender, EventArrivedEventArgs e)
{
      string eventType = e.NewEvent.ClassPath.ClassName;
      if(eventType=="__InstanceCreationEvent")
      {
         Console.WriteLine("Event arrived");
      }

}


The above code is working when i open first excel file but when i open another excel file then that time this code is not working. 

Thanks in Advance.


Что я уже пробовал:

i have tried with __ModifiedCreationEvent but it will occur continues. please suggest what to do for it.

Richard MacCutchan

Вы открываете оба файла в одном и том же процессе? Если это так, то он не будет срабатывать при второй загрузке, так как это не новый процесс.

Gerry Schmitz

Если это "ваши" файлы Excel, это может помочь. (Событие workbook "open") например, создайте запись файла для SystemFileWatcher и т. д.

https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.open

0 Ответов