@@ -373,7 +373,6 @@ class PyManagerOperationInProgress
373373class DECLSPEC_UUID (CLSID_IDLE_COMMAND) IdleCommand
374374 : public RuntimeClass<RuntimeClassFlags<ClassicCom>, IExplorerCommand, IObjectWithSite>
375375{
376- PyManagerOperationInProgress busy;
377376 std::vector<IdleData> idles;
378377 std::wstring iconPath;
379378 std::wstring title;
@@ -392,21 +391,19 @@ class DECLSPEC_UUID(CLSID_IDLE_COMMAND) IdleCommand
392391 iconPath += L" ,-4" ;
393392 }
394393
395- if (!busy) {
396- hr = ReadAllIdleInstalls (idles, HKEY_LOCAL_MACHINE, L" Software\\ Python" , KEY_WOW64_32KEY);
397- if (SUCCEEDED (hr)) {
398- hr = ReadAllIdleInstalls (idles, HKEY_LOCAL_MACHINE, L" Software\\ Python" , KEY_WOW64_64KEY);
399- }
400- if (SUCCEEDED (hr)) {
401- hr = ReadAllIdleInstalls (idles, HKEY_CURRENT_USER, L" Software\\ Python" , 0 );
402- }
394+ hr = ReadAllIdleInstalls (idles, HKEY_LOCAL_MACHINE, L" Software\\ Python" , KEY_WOW64_32KEY);
395+ if (SUCCEEDED (hr)) {
396+ hr = ReadAllIdleInstalls (idles, HKEY_LOCAL_MACHINE, L" Software\\ Python" , KEY_WOW64_64KEY);
397+ }
398+ if (SUCCEEDED (hr)) {
399+ hr = ReadAllIdleInstalls (idles, HKEY_CURRENT_USER, L" Software\\ Python" , 0 );
400+ }
403401
404- if (FAILED (hr)) {
405- wchar_t buffer[512 ];
406- swprintf_s (buffer, L" IdleCommand error 0x%08X" , (DWORD)hr);
407- OutputDebugStringW (buffer);
408- idles.clear ();
409- }
402+ if (FAILED (hr)) {
403+ wchar_t buffer[512 ];
404+ swprintf_s (buffer, L" IdleCommand error 0x%08X" , (DWORD)hr);
405+ OutputDebugStringW (buffer);
406+ idles.clear ();
410407 }
411408 }
412409
@@ -425,12 +422,10 @@ class DECLSPEC_UUID(CLSID_IDLE_COMMAND) IdleCommand
425422 iconPath += L" ,-4" ;
426423 }
427424
428- if (!busy) {
429- hr = ReadAllIdleInstalls (idles, hive, root, 0 );
425+ hr = ReadAllIdleInstalls (idles, hive, root, 0 );
430426
431- if (FAILED (hr)) {
432- idles.clear ();
433- }
427+ if (FAILED (hr)) {
428+ idles.clear ();
434429 }
435430 }
436431 #endif
@@ -469,6 +464,10 @@ class DECLSPEC_UUID(CLSID_IDLE_COMMAND) IdleCommand
469464
470465 IFACEMETHODIMP GetState (IShellItemArray *psiItemArray, BOOL fOkToBeSlow , EXPCMDSTATE *pCmdState)
471466 {
467+ if (title.empty ()) {
468+ *pCmdState = ECS_HIDDEN;
469+ return S_OK;
470+ }
472471 *pCmdState = idles.size () ? ECS_ENABLED : ECS_DISABLED;
473472 return S_OK;
474473 }
0 commit comments