<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/jive/rss" version="2.0">
  <channel>
    <title>Adobe Community: Message List - Keyboard layout switching hangs Flash Player plugin</title>
    <link>https://forums.adobe.com/community/flashplayer/using_flashplayer?view=discussions</link>
    <description>Most recent forum messages</description>
    <language>en</language>
    <pubDate>Sat, 08 Nov 2014 08:27:26 GMT</pubDate>
    <generator>Jive Engage 7.0.0.1  (http://jivesoftware.com/products/)</generator>
    <dc:date>2014-11-08T08:27:26Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Re: Keyboard layout switching hangs Flash Player plugin</title>
      <link>https://forums.adobe.com/message/6910789?tstart=0#6910789</link>
      <description>&lt;!-- [DocumentBodyStart:4b55959f-151a-4580-9492-bcab85b77a98] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;I've got it! Everything works OK after removal of "&lt;span class="st"&gt;Movies Toolbar", which is a malicious adware, advertising ask.com. When did I installed this ****?&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4b55959f-151a-4580-9492-bcab85b77a98] --&gt;&lt;img src='/beacon?t=1415899743202' /&gt;</description>
      <pubDate>Sat, 08 Nov 2014 08:27:26 GMT</pubDate>
      <author>forums_noreply@adobe.com</author>
      <guid>https://forums.adobe.com/message/6910789?tstart=0#6910789</guid>
      <dc:date>2014-11-08T08:27:26Z</dc:date>
      <clearspace:dateToText>5 days 9 hours ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Keyboard layout switching hangs Flash Player plugin</title>
      <link>https://forums.adobe.com/message/6903238?tstart=0#6903238</link>
      <description>&lt;!-- [DocumentBodyStart:65c684ad-e040-417e-9684-8f0fda8909e7] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Hello!&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I'm using a software component switching the keyboard layout programmatically. It works OK except with Flash Player plugins in Firefox and Chrome. When the plugin is active, trying to switch the keyboard layout results in that browser comletely freezes. I've written a small C program to test the issue (see the message bottom), and the program freezes at the line&lt;/p&gt;&lt;p&gt;SendMessageA(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, (LPARAM)layout);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I've tryed switching off the Flash Player hardware acceleration and even starting Windows in safe mode with network drivers &amp;#8212; nothing helps. But Opera and IE work ok and layout switching from the system task panel also works ok. Who can tell what may be the cause?&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My system is:&lt;/p&gt;&lt;p&gt;Lenovo G770&lt;/p&gt;&lt;p&gt;Windows 7 Home Basic 64 SP1&lt;/p&gt;&lt;p&gt;Flash Player 15.0.0.189&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#include &amp;lt;windows.h&amp;gt;&lt;/p&gt;&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#define MAX_LAYOUT_NUMBER 32&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int main(int argc, char **argv)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;&amp;nbsp; HKL layouts[MAX_LAYOUT_NUMBER];&lt;/p&gt;&lt;p&gt;&amp;nbsp; int nLayouts;&lt;/p&gt;&lt;p&gt;&amp;nbsp; HWND hwnd = 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp; DWORD threadID, processID;&lt;/p&gt;&lt;p&gt;&amp;nbsp; HKL layout;&lt;/p&gt;&lt;p&gt;&amp;nbsp; int i;&lt;/p&gt;&lt;p&gt;&amp;nbsp; BOOL found;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; nLayouts = GetKeyboardLayoutList(MAX_LAYOUT_NUMBER, layouts);&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (nLayouts &amp;lt;= 0) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: GetKeyboardLayoutList returned %d\n", nLayouts);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (nLayouts == 1) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Only one keyboard layout detected\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (argc &amp;gt; 1) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sscanf(argv[1], "%X", &amp;amp;hwnd) != 1) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: Invalid window handle \"%s\"\n", argv[1]);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; // Delay for user to switch to the desired application&lt;/p&gt;&lt;p&gt;&amp;nbsp; Sleep(5000);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (hwnd == 0) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwnd = GetForegroundWindow();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (hwnd == NULL) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: GetForegroundWindow returned NULL\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char buf[MAX_PATH];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (GetWindowTextA(hwnd, buf, MAX_PATH) &amp;gt; 0)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("The target window is %.8X (%s)\n", hwnd, buf);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("The target window is %.8X\n", hwnd);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; threadID = GetWindowThreadProcessId(hwnd, &amp;amp;processID);&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (threadID == 0) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: GetWindowThreadProcessId returned NULL\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; printf("Its process and thread IDs are %.8X and %.8X\n", processID, threadID);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; layout = GetKeyboardLayout(threadID);&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (layout == NULL) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: GetKeyboardLayout returned NULL\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; printf("The current keyboard layout is %.8X\n", layout);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; found = FALSE;&lt;/p&gt;&lt;p&gt;&amp;nbsp; for (i = 0; i &amp;lt; nLayouts; ++i)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layout == layouts[i]) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; found = TRUE;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout = layouts[i &amp;lt; nLayouts-1 ? i + 1 : 0];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (!found) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: Can't find the current layout in the list\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; printf("Switching to %.8X\n", layout);&lt;/p&gt;&lt;p&gt;&amp;nbsp; SendMessageA(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, (LPARAM)layout);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; layout = GetKeyboardLayout(threadID);&lt;/p&gt;&lt;p&gt;&amp;nbsp; if (layout == NULL) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "Error: GetKeyboardLayout returned NULL\n");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; printf("The new keyboard layout is %.8X\n", layout);&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; return 0;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:65c684ad-e040-417e-9684-8f0fda8909e7] --&gt;</description>
      <pubDate>Wed, 05 Nov 2014 21:28:06 GMT</pubDate>
      <author>forums_noreply@adobe.com</author>
      <guid>https://forums.adobe.com/message/6903238?tstart=0#6903238</guid>
      <dc:date>2014-11-05T21:28:06Z</dc:date>
      <clearspace:dateToText>1 week 20 hours ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

