Skip to main content
Known Participant
November 25, 2009
Question

AccessViolationException fatal error, Acrobat 9, AxAcroPDFLib, .NET, Win7

  • November 25, 2009
  • 12 replies
  • 42899 views

How do I work around the following fatal error:  AccessViolationException

Steps to reproduce the error:

1.  In MS VisualStudio 2008, Create a Windows Form Application, add a Panel and a Button components to the form.

2.  Add a Reference to the Acrobat COM component for AxAcroPDFLib

3.  Add the following code to the main form:

    private AxAcroPDFLib.AxAcroPDF ax = new AxAcroPDFLib.AxAcroPDF();

    private void button1_Click(object sender, EventArgs e)
    {
      panel1.Controls.Add(ax);

      ax.LoadFile(@"c:\temp\myfile.pdf");
      ax.setView("Fit");     
    }

4.  Run the application

5.  Click the Button

6.  Press the TAB key on the keyboard.

Result:  The application crashes with an AccessViolationException:  Memory Corrupted error.

Note:  I had been working on an application for about a month now, but had Never pressed the Tab key while the application was running until today!!

Although I did not yet test EVERY key, all other keys and activities inside and outside of the Acrobat component, application, and OS seem to work ok.  I can't deploy an application to production if it will crash on Tab keypress.

Platform:

Windows 7, 32bit, all current updates

Acrobat 9 Standard, all current updates

Microsoft Visual Studio 2008 Professional, all current updates

I'm not an Acrobat SDK developer expert, so this may be some simple configuration setting.

Any assistance is greatly appreciated.

Arnold

This topic has been closed for replies.

12 replies

New Participant
May 27, 2013

PROBLEM FIXED IN ACROBAT READER XI !!


Hello Everybody. I tried the AxAcroPDFLib in a windows form app and with Acrobat reader XI.

The problem with this ocx/dll is not present with this version of acrobat reader. I think the problem is definitively solved.

Peace.

June 21, 2012

For any that need a fix for this in Access/VBA the solution for me was to use a low level keyboard hook. Sub classing the window proc causes all sorts of gimpy behvior in access, even a window proc that does nothing more than call the default window proc. Instead you can install a WH_KEYBOARD_LL hook and supress the tab key on the form housing the acrobat control. For some folks this will be a problem (tabbing through controls) however we personally use the pdf control on its own dialog outside the main access window so it works fine for us. I'm not sure how it affects pdf forms either, again a non-issue for us. Any how, here's the code, adapt it for your needs:

' Win32 Module
Public Const WH_KEYBOARD_LL = 13

Public Type KBDLLHOOKSTRUCT
    vkCode As Long
    scanCode As Long
    flags As Long
    Time As Long
    dwExtraInfo As Long
End Type

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, wParam As Any, lParam As Any) As Long
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As Any) As Long
Public Declare Function GetActiveWindow Lib "user32.dll" () As Long
' Some other module
' Please note the keyboard hook procedure HAS to be in a module, AddressOf will not work 
' for a function inside a form module.

Public Property Get KeyboardHookHandle As Long
     KeyboardHookHandle = ' where ever the handle of the hook is stored
End Property

Public Property Let KeyboardHookHandle(val as Long)
     ' store the hook handle in global variable, in a control on a form, wherever you like....
End Property

' Form_PdfViewer is the form that holds the adobe pdf viewer control
Public Function KeyboardHook(ByVal nCode As Integer, wParam As Long, lParam As Win32.KBDLLHOOKSTRUCT) As Long
    If nCode >= 0 Then
        If lParam.vkCode = vbKeyTab And Win32.GetActiveWindow() = Form_PdfViewer.hwnd Then
            Debug.Print "Aborted tab key press!"
            DoEvents
            KeyboardHook = 1
            Exit Function
        End If
    End If
    
    DoEvents
    KeyboardHook = Win32.CallNextHookEx(KeyboardHookHandle, nCode, wParam, lParam)
End Function
' The form housing the adobe pdf viewer control
Private Sub Form_Load()
     KeyboardHookHandle = Win32.SetWindowsHookEx(Win32.WH_KEYBOARD_LL, AddressOf KeyboardHook, Win32.GetModuleHandle(vbNullString), 0)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Win32.UnhookWindowsHookEx KeyboardHookHandle
End Sub

Another alternative is to use the web browser control which works fine in access 2003 on windows 7 with ie9 however you can't resize the control on windows xp with access 2002 and ie8 and unfortunately we still have users with that configuration so it's not an option for us.

June 21, 2012

Thanks hugely jptros, this (ignored by Adobe) bug has been annoying me for quite a while. I'd implemented a kludge to handle the tab but your solution is much better.

I had to fiddle with it a bit to get it to work for me - in case anyone else needs it, my adjusted version is pasted below.

' Until Adobe get around to fixing the bug with the Tab key, have this in a stand alone module

' When (if) it's fixed, delete the module and remove the references in the Form_Load and Form_Unload on any forms that are referencing this code

Option Compare Database

Option Explicit

' This lot are used to hook the [TAB] key on forms showing the Acrobat PDF viewer control

' because of the bug in their code that causes Access to lock up.

' http://forums.adobe.com/thread/530591?tstart=0

Public Const WH_KEYBOARD_LL = 13

Public Type KBDLLHOOKSTRUCT

    vkCode As Long

    scanCode As Long

    flags As Long

    Time As Long

    dwExtraInfo As Long

End Type

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, wParam As Any, lParam As Any) As Long

Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As Any) As Long

Public Declare Function GetActiveWindow Lib "user32.dll" () As Long

Dim gKeyboardHookHandle As Long

Public Property Get KeyboardHookHandle() As Long

     KeyboardHookHandle = gKeyboardHookHandle

End Property

Public Property Let KeyboardHookHandle(val As Long)

     ' store the hook handle in global variable, in a control on a form, wherever you like....

End Property

Public Function KeyboardHook(ByVal nCode As Integer, wParam As Long, lParam As KBDLLHOOKSTRUCT) As Long

Dim hwnd_Form_PDFViewer As Long

   

    ' I'm only using the PDF viewer on a single form so only care about a single hwnd

    If Screen.ActiveForm.Name = "frmDocumentArchive" Then hwnd_Form_PDFViewer = Screen.ActiveForm.hwnd

    If nCode >= 0 Then

        If lParam.vkCode = vbKeyTab And GetActiveWindow() = hwnd_Form_PDFViewer Then

            Debug.Print "Aborted tab key press!"

            DoEvents

            KeyboardHook = 1

            Exit Function

        End If

    End If

   

    DoEvents

    KeyboardHook = CallNextHookEx(KeyboardHookHandle, nCode, wParam, lParam)

End Function

'---- From here on, these are in the form which needs the [TAB] presses to be consumed to prevent the crash.

Private Sub Form_Load()

    ' Handle the Acrobat bug

    KeyboardHookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeyboardHook, GetModuleHandle(vbNullString), 0)

End Sub

Private Sub Form_Unload(Cancel As Integer)

    ' Clean up after handling the Acrobat bug

    UnhookWindowsHookEx KeyboardHookHandle

End Sub

June 21, 2012

I spoke to soon.

Maybe it's the changes I made - but this code consumes all TAB presses in all windows, not just the ones in Access... and then Access crashes when you exit the application.

Looks like the same crash that would have occurred without this hook consuming the key presses.

Improvement over crashing any time that Tab is pressed when the form with the reader control is open and the control is populated, but still doesn't resolve the problem.

Ah well, rolling back to my bodgy fix.

kaozci
New Participant
March 7, 2012

Microsoft Web Browser control instead of the Adobe Read Control and  loaded the exact same interface alose tab not use it crashed

[links removed]

New Participant
March 7, 2012

Sorry Kaozci but this workaround is not so helpful. This workaround is known. This is an old problem that has no solution even with the newest release of acrobat.

New Participant
December 22, 2011

Here is a workaround for WPF with .NEt 3.5 and Reader X :

add In "Window_Loaded" :

ComponentDispatcher.ThreadFilterMessage += new ThreadMessageEventHandler(ComponentDispatcher_ThreadFilterMessage);

private void ComponentDispatcher_ThreadFilterMessage(ref MSG msg, ref bool handled)

{

    if (msg.message == 0x1450)

        handled = true;

}

Regards,

H.M

New Participant
November 10, 2011

I'm working on a legacy vb6 application that experiences the same issue with Reader 10.1.

Has anyone come up with a work around that can be applied in vb6?

Thanks ahead of time.

JT

lrosenth
Adobe Employee
Adobe Employee
November 10, 2011

VB6 is not supported with Reader X.

[autoresponse info removed by moderator]

November 10, 2011

And Adobe continues to fail and/or refuse to resolve this issue even for those of us using .NET which IS supposedly supported.

-- Edited to remove email sig.

New Participant
July 6, 2011

Hi,

can anybody explain how to do this in this code-snippets I got from the page vb-power.net?

Imports System.ComponentModel

Public Enum PDFLayoutMode
   DontCare             ' Layout laut Dokumentvorgabe
   SinglePage           ' einzelne Seite
   OneColumn            ' fortlaufende Seite
   TwoColumnLeft        ' fortlaufende Doppelseiten , ungerade Seiten links
   TwoColumnRight       ' fortlaufende Doppelseiten , ungerade Seiten rechts
End Enum

Public Enum PDFPageMode
   none                 ' Default-Ansicht
   bookmarks            ' Ansicht Lesezeichen
   thumbs               ' Ansicht Miniaturansicht
End Enum

Public Enum PDFViewMode
   Fit                  ' Komplette Seite passt vollständig ins bereitgestellte Objekt
   FitV                 ' Seitenhöhe (Vertikale) passt vollständig ins Objekt
   FitH                 ' Seitenbreite (Horizontale) passt vollständig ins Objekt
   FitB                 ' Dokumentrahmen ("Bounding Box") passt vollständig ins Objekt
   FitBV                ' Dokumentrahmenhöhe (Vertikale) passt vollständig ins Objekt
   FITBH                ' Dokumentrahmenbreite (Horizontale) passt vollständig ins Objekt
End Enum



Public Class PDFView
   Inherits UserControl

   Private m_PDFHost As PDFHost
   Private m_isInitialized As Boolean = False
   Private m_ShowToolBar As Boolean = True
   Private m_ShowScrollBars As Boolean = True
   Private m_LayoutMode As PDFLayoutMode = PDFLayoutMode.DontCare
   Private m_PageMode As PDFPageMode = PDFPageMode.none
   Private m_ViewMode As PDFViewMode = PDFViewMode.Fit


#Region "Host Helper Class"
   ''' <summary>
   ''' Helper Class
   ''' </summary>
   ''' <remarks>
   ''' Diese private Klasse hostet das Acrobat ActiveX Control,
   ''' so dass es in das UserControl eingefügt werden kann.
   ''' </remarks>
   Private Class PDFHost
      Inherits AxHost

      ''' <summary>
      ''' Initialisiert den Host
      ''' </summary>
      Public Sub New(ByVal sCLSID As String)
         MyBase.New(sCLSID)
      End Sub

      ''' <summary>
      ''' Gibt ein Objekt-Verweis auf das ActiveX Control zurück
      ''' </summary>
      Public ReadOnly Property Viewer() As Object
         Get
            Try
               Return Me.GetOcx
            Catch ex As Exception
               Return Nothing
            End Try
         End Get
      End Property

      ''' <summary>
      ''' Gibt sämtliche von der Componente verwendeten Ressourcen frei.
      ''' </summary>
      Protected Overrides Sub Dispose(ByVal disposing As Boolean)
         If Me.Viewer IsNot Nothing Then
            Me.Viewer.Dipose()
         End If
         MyBase.Dispose(disposing)
      End Sub
   End Class
#End Region


#Region "Initialisierungen"
   ''' <summary>
   ''' Initialisiert das UserControl
   ''' </summary>
   Public Sub New()
      MyBase.New()
      Me.InitializeComponent()
   End Sub

   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
      If m_isInitialized Then
         m_PDFHost.Dispose()
      End If
      MyBase.Dispose(disposing)
   End Sub

   ''' <summary>
   ''' Initialisiert die Komponente.
   ''' </summary>
   ''' <remarks>
   ''' Über Late Binding wird versucht, eine Instanz des Acrobat Readers
   ''' zu erzeugen. Auf dem Zielsystem muss der Reader in der Version 7
   ''' oder höher installiert sein. Ist dies nicht der Fall, wird eine
   ''' Fehlermeldung ausgegeben.
   ''' </remarks>
   Private Sub InitializeComponent()
      Dim t As Type = Type.GetTypeFromProgID("AcroPDF.PDF")
      If t IsNot Nothing Then
         m_PDFHost = New PDFHost(t.GUID.ToString)
         DirectCast((m_PDFHost), ISupportInitialize).BeginInit()
         SuspendLayout()
         m_PDFHost.TabIndex = 0
         m_PDFHost.Visible = True
         m_PDFHost.Name = "PDFHost"
         m_PDFHost.Dock = DockStyle.Fill
         Controls.Add(m_PDFHost)
         DirectCast((m_PDFHost), ISupportInitialize).EndInit()
         ResumeLayout(False)
         PerformLayout()
         m_isInitialized = True
      Else
         m_isInitialized = False
         MessageBox.Show("Der Acrobat Reader Version 7 oder höher konnte nicht initialisiert werden." _
            & vbCrLf & "Bitte installieren Sie den Acrobat Reader in der Version 7 oder höher." _
            , "Überprüfung Acrobat Reader", MessageBoxButtons.OK, MessageBoxIcon.Error)
      End If
   End Sub
#End Region


#Region "Properties"
   ''' <summary>
   ''' Die Eigenschaft liefert True zurück, wenn der Acrobat Reader
   ''' initialisiert wurde, anderenfalls False.
   ''' </summary>
   <Browsable(False)> _
   Public ReadOnly Property isInitialized() As Boolean
      Get
         Return m_isInitialized
      End Get
   End Property

   ''' <summary>
   ''' Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus.
   ''' </summary>
   <Description("Legt den Layout Modus für das PDF-Dokument fest, oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFLayoutMode), "DontCare")> _
   Public Property LayoutMode() As PDFLayoutMode
      Get
         Return m_LayoutMode
      End Get
      Set(ByVal value As PDFLayoutMode)
         m_LayoutMode = value
         Try
            m_PDFHost.Viewer.setLayoutMode(m_LayoutMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Legt den Modus für die Seitendarstellung fest,oder liest diese aus.
   ''' </summary>
   <Description("Legt den Modus für die Seitendarstellung fest,oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFPageMode), "none")> _
   Public Property PageMode() As PDFPageMode
      Get
         Return m_PageMode
      End Get
      Set(ByVal value As PDFPageMode)
         m_PageMode = value
         Try
            m_PDFHost.Viewer.setPageMode(m_PageMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Bestimmt, ob die ToolBar angezeigt werden soll.
   ''' </summary>
   <Description("Bestimmt, ob die ToolBar angezeigt werden soll."), _
   Category("Layout"), _
   DefaultValue(True)> _
   Public Property ShowToolBar() As Boolean
      Get
         Return m_ShowToolBar
      End Get
      Set(ByVal value As Boolean)
         m_ShowToolBar = value
         Try
            m_PDFHost.Viewer.setShowToolbar(value)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Bestimmt, ob die ScrollBars angezeigt werden sollen.
   ''' </summary>
   <Description("Bestimmt, ob die ScrollBars angezeigt werden sollen."), _
   Category("Layout"), _
   DefaultValue(True)> _
   Public Property ShowScrollBars() As Boolean
      Get
         Return m_ShowScrollBars
      End Get
      Set(ByVal value As Boolean)
         m_ShowScrollBars = value
         Try
            m_PDFHost.Viewer.setShowScrollbars(value)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property

   ''' <summary>
   ''' Legt den Modus für die Seiteneinpassung fest, oder liest diese aus.
   ''' </summary>
   <Description("Legt den Modus für die Seiteneinpassung fest, oder liest diese aus."), _
   Category("Darstellung"), _
   DefaultValue(GetType(PDFViewMode), "Fit")> _
   Public Property ViewMode() As PDFViewMode
      Get
         Return m_ViewMode
      End Get
      Set(ByVal value As PDFViewMode)
         m_ViewMode = value
         Try
            m_PDFHost.Viewer.setView(m_ViewMode.ToString)
         Catch ex As Exception
            Throw ex
         End Try
      End Set
   End Property
#End Region


#Region "Methoden"
   ''' <summary>
   ''' Geht im Undo-Buffer zur vorherigen Ansicht.
   ''' </summary>
   Public Sub GoBackward()
      Try
         m_PDFHost.Viewer.GoBackwardStack()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GoForward()
      Try
         m_PDFHost.Viewer.GoForwardStack()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoPage(ByVal PageNumber As Integer)
      Try
         m_PDFHost.Viewer.setCurrentPage(PageNumber)
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoFirstPage()
      Try
         m_PDFHost.Viewer.GotoFirstPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoLastPage()
      Try
         m_PDFHost.Viewer.GotoLastPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoNextPage()
      Try
         m_PDFHost.Viewer.GotoNextPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub GotoPreviousPage()
      Try
         m_PDFHost.Viewer.GotoPreviousPage()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Function LoadFile(ByVal FileName As String) As Boolean
      Try
         Dim b As Boolean = m_PDFHost.Viewer.LoadFile(FileName)
         If b Then
            Me.ShowToolBar = m_ShowToolBar
            Me.ShowScrollBars = m_ShowScrollBars
            Me.LayoutMode = m_LayoutMode
            Me.PageMode = m_PageMode
            Me.ViewMode = m_ViewMode
         End If
         Return b
      Catch ex As Exception
         Throw ex
      End Try
   End Function

   Public Sub PrintWithDialog()
      Try
         m_PDFHost.Viewer.PrintWithDialog()
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

   Public Sub Zoom(ByVal Percent As Single)
      Try
         m_PDFHost.Viewer.setZoom(Percent)
      Catch ex As Exception
         Throw ex
      End Try
   End Sub

#End Region

End Class
lrosenth
Adobe Employee
Adobe Employee
July 6, 2011

Why not download the Acrobat SDK and read the documentation?

July 7, 2011

Irosenth,

I've read the applicable documentation for using the AcroPDF ActiveX control. Am I mistaken that the source code for the ActiveX control is available in the Acrobat SDK, and I can resolve the many issues that it has on my own, distribute it to thousands of users royalty free?

Also, I don't quite understand the reasons for your passive-aggressive comment. Why not just fix the problem in your ActiveX control? It's been almost three major revisions since these issues have been reported.

Known Participant
June 27, 2011

I'm following up to determine if Adobe or anyone else developed a fix for this AccessViolationException fatal condition when pressing the TAB key in Acrobat.

I have confirmed that the fatal bug exists in Acrobat 10.1.0, Microsoft Visual Studio 2010, and Microsoft .NET 4, on Windows Server 2008 R2 all current updates for all products.

Up until now, my applications with  Acrobat Reader in .NET have been Touch Screen oriented, so the users were unlikely to press the TAB key.

This fatal bug is now a show stopper for moving my application to the desktop where there is a TAB key on the keyboard.

Let's please fix this fatal bug in Acrobat Reader or develop a solid work around that permits the TAB key to co-exist with Acrobat Reader and Microsoft .NET Framework.

Arnold

New Participant
April 12, 2011

Hi,

I have the same problem with my VB-Dot.Net-Application. If someone has a workaround or an official hint to solve the Tab-Problem please let me know

April 12, 2011

VMBLaOs wrote:

Hi,

I have the same problem with my VB-Dot.Net-Application. If someone has a workaround or an official hint to solve the Tab-Problem please let me know

With VB .Net it will be not difficult to intercept message 0x1450. See for example the comments to this post

New Participant
April 18, 2011

Can please give my another hint how to do this in VB.Net.

I don't know howto override the WnsProc-Sub and google only helps with C++/C# and not with Visual Basic.

June 10, 2010

Ok, guys,they do not seem to fix the problem after about a year of first finding it. I am using Adove Reader 9.3.2 and the bug is still there.

I found the workaround which works perfectly.

In the window where you've created the Adobe PDF Reader Active X control override the OnPretranslateMessage() method.

Paste the following chunk of code to block the internal Adobe's Application message 0x1450 (5200L). If you do not use MFC or C++, then find a place to override message processing.

BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)

{

  // insert this chunk of code.

  // Replace m_pdfCtrl with the name of your Adobe control.
  if(pMsg->hwnd == m_pdfCtrl.GetSafeHwnd())
  {
    if(pMsg->message == 0x1450)
    {
      return TRUE;
    }
  }

  return CDialog::PreTranslateMessage(pMsg);

}

BTW, I've send the detailed report to Adobe with the steps to replicate, and as expected no reply from them. Good for you, Adobe.

New Participant
January 11, 2011

Hello to everyone.

The TAB  exception STILL EXISTS in the X (10) version.

The activex generates the same problem both on .net projects and on borland c++ builder projects(no .net but classis COM).

The last answer workS(Pretranslatemessage)!

What you have to do is contained in this link http://geekswithblogs.net/Jaggi/archive/2006/02/02/67999.aspx.

Obviously you have to process the write key message "0x1450" and not WM_KEYUP.

Known Participant
June 27, 2011

I tested the following PreFilterMessage handler and it appears to work using VS2010, C#, .NET4, and Acrobat X Reader.

  public partial class MyAcrobatReaderCTRL : UserControl, IMessageFilter
  {
    public MyAcrobatReaderCTRL()
    {
      InitializeComponent();

      // Add the PreFilterMessage Handler for this control to the Parent Application
      Application.AddMessageFilter(this);
    }


    public bool PreFilterMessage(ref Message m)
    {
      // Block the internal Adobe's Application Fatal AccessViolationException when pressing the TAB key.
      bool bFiltered = true;

      // Adobe's Application Message = 0x1450 (5200L)
      const int WM_ACROBAT_1450 = 0x1450;

      // Apply the filter
      if (m.Msg == WM_ACROBAT_1450)
      {

        //// Block this message or it will trigger a fatal AccessViolationException when the TAB key is pressed.
        // return true
      }
      else
      {
        // Other messages can pass through the filter
        bFiltered = false;
      }
      return bFiltered;
    }

...

}

** Thank you aucha for the explanation of the Acrobat message causing the bug, and Akiratorishi for pointing me to a reference for C# code that I could modify and implement (hopefully reliably).**

Since this is still an Acrobat/Windows.NET bug, I'm not going to tag it as "Answered" until it is either fixed or until Adobe provides an affirmative work around example that they endorse.  That is - until we know that the result of this message being blocked is not causing other problems.

With the above code, at least I can deploy my application to users with keyboards and see what happens.

Arnold

Known Participant
April 16, 2010

Just a follow up.  my project was deployed in January and its Acrobat is updated to the current version of Acrobat at this time.  However, the application is a Touch Screen application, so I can't tell if the problem is resolved - since there is no keyboard attached.  It is my hope that the problem is fixed so my next project development will not have the same issue.

Arnold