3 Replies Latest reply: Aug 22, 2013 6:16 PM by pwillener RSS

    AcroRd32 process hangs when launched from admin application; Win8, v11.0.03, Protected mode

    ee_gary

      AcroRd32 is called via Process.Start(ReleaseNotes) in the code snippet below.  On Windows 8, using Acrobat Reader v11.0.03, with Protected Mode enabled, and running as administrator (right click -> Run as Administrator), this spawns two AcroRd32 processes (sandbox + broker) that hang.  No PDF is displayed, no error dialog is shown, and subsequent attempts to display PDFs fail until the aforementioned processes are killed.  This is 100% repeatable.  Please note that it works as expected if using Windows 7 OR Acrobat Reader v10.1.4 OR Protected Mode disabled OR not running as administrator.

       

      The pertinent portion of the Protected Mode log file is below:

      [08:20/07:32:20] CreateProcessWAction: STATUS_ACCESS_DENIED

      [08:20/07:32:20] app name: C:\Windows\system32\ctfmon.exe

      [08:20/07:32:20] command line: ctfmon.exe

      [08:20/07:32:20] Consider modifying policy using these policy rules: PROCESS_ALL_EXEC

      [08:20/07:32:20] CreateProcessWAction: STATUS_ACCESS_DENIED

      [08:20/07:32:20] exe name: C:\Windows\system32\ctfmon.exe

      [08:20/07:32:20] command line: ctfmon.exe

      [08:20/07:32:20] Consider modifying policy using these policy rules: PROCESS_ALL_EXEC

       

      Code snippet:

                  // The name of the key must include a valid root.

                  const string AdobeXI_ProtectedModeRegkey = "HKEY_CURRENT_USER\\Software\\Adobe\\Acrobat Reader\\11.0\\Privileged";

                  const string ReleaseNotes = "C:\\Program Files (x86)\\Cypress\\PSoC Creator\\3.0\\PSoC Creator\\documentation\\release_notes.pdf";

       

                  int IsAdobeProtectedMode = -1;

       

                  try

                  {

      IsAdobeProtectedMode = (int)Registry.GetValue(AdobeXI_ProtectedModeRegkey, "bProtectedMode", -1);

       

                      if (IsAdobeProtectedMode == 1)

      label2.Text = "ON";

      else

                      {

      // No protected mode

      // Do nothing

      label2.Text = "OFF";

                      }

                  }

                  catch

                  {

                      // No registry key exist

                      // Do nothing

      label2.Text = "No registry detected";

                  }

       

                  if (bOpenRN == true)

                  {

      Process.Start(ReleaseNotes);

                  }

              }