EDIT: With the latest version of Chrome, you may face some problem. In case it wont work right away Type "about:plugins" in to chrome, then press the little "+" sign next to details in the top right. Disable PepperFlash\pepflashplayer.dll (listed under flash) That should fix it.

It is really frustrating when software lack small functionality that could be of great value. Take for example chrome's default behavour of not prompting before closing the browser.  One wrong click and two dozen tabs are gone along with all the video buffers! A similar flaw is there in Adobe Flash in that it would not let you go full screen on a dual monitor setup if you click anywhere in the other monitor. Coming up with hacks for such closed source softwares is always difficult. Fortunately a solution exists and it involves changing two bits in the raw dll file that handles Flash videos. But the solution becomes useless when you are on Chrome. Google added flash as a proprietary part of the browser since Chrome 5 - so now there are no more patches or hacks; it has to be done manually using a hex editor - and the location of values to edit changes every-time Google comes up with a new version.  This was too much of a problem for me as I love using Chrome and I have a dual screen setup both in my office and home. So I wrote a small patch that should work for all versions of Chrome (I have tested it on Chrome 6, 7 and 8). The file is very small (17KB) and is written in C++. The code can be found below so in case it won't work anymore someone can edit the code and release a new patch.

How to use the patch

  1. Download the patch here(right click and save as) The patch is for windows x86 (both 32 and 64 bit) systems ONLY
  2. Copy it to the directory where the flash dll (gcswf32.dll)  resides. Normally this is located at "C:\Users\UserName\AppData\Local\Google\Chrome\Application\VersionNo\"
    replace UserName and VersionNo with appropriate values.
  3. Make sure all instances of Chrome are closed.
  4. Run the patch. The patch will make a backup copy in case something goes wrong.
  5. Close the patch and open chrome and test if it worked.
  6. In case it didn't work run the patch again to restore the file to its original state.

The code for the patch is NOT portable and will most probably wont run as expected in any machine other than x86. I compiled it on Visual Studio 2008 as a console application. I wrote the code as fast as I could so it is certainly not the best way to achieve the goal.

  1. // Code to patch Chrome flash module for dual screen
  2. // Redistribution allowed under creative commons Attribution-NonCommercial-NoDerivs 2.5 India
  3. // By Amiya Patanaik - use at your own risk
  5. #include "stdafx.h"
  6. #include
  7. #include
  8. #include
  9. #include
  10. #include
  12. using namespace std;
  14. int main() {
  16. typedef istream_iterator input_iter_t;
  17. typedef ostream_iterator output_iter_t;
  19. const off_t SIZE = 13;
  20. char before[] = { 0x74, 0x39, 0x83, 0xE8, 0x07, 0x74, 0x11, 0x83, 0xE8, 0x05, 0x75, 0x13, 0x8B };
  21. char after[] = { 0x90, 0x90, 0x83, 0xE8, 0x07, 0x74, 0x11, 0x83, 0xE8, 0x05, 0x75, 0x13, 0x8B };
  23. fstream fin("gcswf32.dll", ios::binary | ios::in | ios::out);
  25. if(fin.fail()){
  26. cout<

Disclaimer: Use at your own risk!

Related Posts Plugin for WordPress, Blogger... Print This Post Print This Post
Tagged with:  

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...