タブファイラー開発ブログ

Tablacus ExplorerやX-Finderの作者のブログ

続・カスペルスキーの問題

カスペルスキーに調査用データを送って調べてもらったのですが、動作の遅延やエラーなどの発生もなく正常とのこと。 こちらでは問題が出るので今度は簡単なテストプログラムと結果とトレースログを送ってみました。 あちらでも問題が出ればバグをサクッと発見できるのでしょうが、発生しない不具合の発見は難しいですから… カスペルスキーを使っていて右クリックが遅くなる方はカスペルスキーに連絡お願いします。やっぱり、情報が多いほうが対策しやすいと思います。 今回、送ったのは以下のようなプログラムのexeとVC++ 2008のソース テストした環境ではシステムウォッチャーoff時は120 msですが、onにすると13720 ms掛かってしまいました。さすがに13秒は長すぎる… もし、テストプログラムが欲しい方が居られましたら連絡ください。

::CoInitialize(NULL); WCHAR szFile[MAX_PATH]; WCHAR szTime[MAX_PATH]; LPWSTR pszExt; GetModuleFileName(NULL, (LPWSTR)szFile, MAX_PATH); pszExt = PathFindExtension(szFile); lstrcpy(pszExt, L".txt"); HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); CloseHandle(hFile); LPITEMIDLIST pidlFull = ::ILCreateFromPath(szFile); IShellFolder *pSF = NULL; LPCITEMIDLIST pidlChild = NULL; SHBindToParent(pidlFull, IID_PPV_ARGS(&pSF), &pidlChild); IContextMenu *pCM = NULL; pSF->GetUIObjectOf(NULL, 1, &pidlChild, IID_IContextMenu, NULL, (LPVOID*)&pCM); HMENU hMenu = CreatePopupMenu(); DWORD dwStart = GetTickCount(); pCM->QueryContextMenu(hMenu, 0, 1, 0x7fff, CMF_DEFAULTONLY); DWORD dwEnd = GetTickCount(); DestroyMenu(hMenu); pCM->Release(); pSF->Release(); ::CoTaskMemFree(pidlFull); ::OleUninitialize(); swprintf_s(szTime, MAX_PATH, L"%d ms", dwEnd - dwStart); MessageBox(NULL, szFile, szTime, MB_ICONINFORMATION | MB_OK);

※このプログラムでは赤の部分に掛かる時間を調べて表示します。