(MY) MAJOR BREAKTHROUGH: now, you can use Opera Mini as the system-level Web browser!

Search This thread

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
Note that the execution has taken on a whole new life with new people continuing the development. As there’re new versions arriving almost every day, I can’t keep up with editing the thread starter posts to reflect the latest state of the development. Therefore, you will want to

1. start with the last posts in this thread, particularly looking for my, JZ SmartMort’s and badbob001's posts and announcements.

2. go to http://forum.xda-developers.com/showthread.php?t=382043 for JZ SmartMort’s similarly named, excellent app.

3. badbob's thread is at http://forum.xda-developers.com/showthread.php?t=384271 - you'll want to visit it too

The original, now-outdated article follows:

You, hopefully, already know Opera Mini 4, which, currently, I recommend the most for all Windows Mobile users as the primary browser. It’s especially useful if you are on either a slow (say, GPRS) or expensive (non-flat rate) data plan and/or you also use Opera on the desktop and, therefore, can make use of the excellent, remote (!) favorite synchronization offered by Opera Link.

So far, it was impossible to quickly invoke Opera Mini from any mailer applications by just clicking / activating Web links in them. This was a major stumbling block for many, which is quite understandable. Yes, it’s a major pain in the back to having to rely on Internet Explorer (Opera Mobile, Netfront etc.) for displaying the given Web page - instead of the much faster / cheaper / prettier Opera Mini.

Of course, Pocket PC (using the new terminology, Windows Mobile 6 Professional / Classic) users have always had an escape route. They still could highlight the link and, then, copy it to the clipboard. After that, they could still invoke Opera Mini, go to Menu / Enter Address and paste the URL there. (Assuming, of course, they use a copy/paste-capable MIDlet Manager. The outdated and, unless you have specific needs or an old operating system, in no way recommended TAO isn’t one of them; the recommended Jbed is.) An example of highlighting a link and copying to the clipboard is depicted in the following screenshot:

HighlightURLandCopy.png


This, however, resulted in multiple screen taps and has never been so simple as just clicking a link in the mail body and let the system invoke the browser and pass the link to it.

And, of course, the above-explained way of copying URL’s to Opera Mini doesn’t work with touchscreen-less MS Smartphone (in the new terminology, Windows Mobile 6 Standard) models. Not even with external Copy/Paste tools like VITO’s excellent, free CopyPaste.

Because of the acuteness of the problem, I’ve thought very hard on solving the problem and making Opera Mini (OM for short) a browser that doesn’t suffer from this problem. And, during a lengthy swimming & sauna session, it occurred to me how it can be solved. Yeah, it’s mostly during swimming that I get the best, most revolutionary ideas :)

First, the pros and the cons so that you can see what you can expect of my solution.

Pros
  1. Fully Seamless integration into Messaging (or any other mailer app), Notes, Word Mobile, PDF readers, MobiPocket (or any other text processing / viewing app) etc under ALL Windows Mobile / Pocket PC operating systems before Windows Mobile 6, on both the Pocket PC and Smartphone platforms
  2. While it’s not compatible with WM6 Smartphones (WM6 Standard devices), on WM6 Pocket PC’s, you can still pretty easily invoke OM and pass the given URL to it.
  3. It’s free and pretty easy to set up



Cons

  1. It isn’t compatible with WM6 Smartphones like the HTC Vox (s710) or the HTC Wings (s730). Sorry.
  2. With WM6 Pocket PC’s (unlike previous OS version), some additional manual work is needed, compared to the pre-WM6 cases. That is, just clicking the link won’t suffice.
  3. It will NOT work on local HTM(L) files on your device – that is, not external links. That is, you won’t be able to render a local HTML file if you click it from File Explorer. However, as it’s mostly remote links that you’ll want to view, not local files, this isn’t that big a problem.

Again, let’s emphasize it again:

  1. with WM6 PPC’s (unlike with pre-WM6 ones), you must copy the URL to the clipboard and only after this click the link!
  2. It does NOT work with touchscreen-less WM6 Smartphones (WM6 Standard devices)! That’s because of the operating system’s inability for any kind of copy/paste operation.

Installation, usage
  1. download and install MortScript if you haven’t already done so. Make sure you install it in the main memory (unless you’re ready to modify the scripts I’ve provided).
  2. download THIS file
  3. depending on your operating system version, go to either the WM5 or WM6 directory of the ZIP file downloaded in the previous step. Note that if you’re still using a pre-WM5 operating system, you’ll need the WM5 version.
  4. transfer OMInvokeAndPasteScript.mscr to \Program Files\MortScript on your device
  5. import the registry file into the Registry (WM5: OMInvokeAndPaste.reg; WM6: OMWM6DefBrowser.reg). if you do this on a MS Smartphone, make sure it is application unlocked. I’ve published several articles on (the absolutely legal) app unlock; see for example THIS

If you absolutely don’t know how the Registry import file needs to be imported, do either of the following:

  1. either get (and, even better, purchase - they DO deserve it as it’s a REALLY excellent app) SOTI’s Pocket Controller. Install it, connect to your device, click the Registry icon. Then, select Edit / Import in the new remote Registry Editor window. Search for the registry file and import it.
  2. or, get Resco Explorer. Install it on your mobile device; make sure you don’t disable the Registry editor install. Start the latter and, then, just exit it – this makes sure .REG files become associated with the Registry editor. Now, after you’ve transferred the REG file to your handset, just click it from inside File Explorer. Voila: it gets imported into the local Registry.

That’s all – from now on, clicking links in mails, documents etc. should fire up OM and pass the URL.

How you can (and when you must) modify OMInvokeAndPasteScript.mscr ?

The majority of the application logic is, in both the WM5 and WM6 versions, in OMInvokeAndPasteScript.mscr. Therefore, you’ll need to modify it in the following cases:
  1. first, the most important instruction you’ll need to modify is the second row Run("\Windows\jbed.exe", "-run sX_"), where X is either 0 or 1 (I’ve set it to 0 in the WM5 and to 1 in the WM6 script).

    As is explained in my earlier Opera Mini & Jbed-tutorial and posts (see for example THIS) , along with other people (see for example THIS), X stands for as how manieth OM was deployed under Jbed.
  2. also note that, if you have to use a pre-WM5 operating system, it’s here that you need to define your TAO / IMB J9 links. Please consult the related section in the MIDlet Bible for more info on how these links need to be created.

    Just remember the following: the Run() function requires two parameters, both enclosed in “’s. First is the executable; the second is the passed parameters. The latter string, of course, can (and with both IBM J9 and TAO, will) consist of several parameters.
  3. the script is geared towards Opera Mini 4 users. Under Opera Mini 3 (or previous versions), the initial two SendLeftSoft calls will NOT result in the “Enter address” dialog coming up. With Opera Mini 3, therefore, you will need to change the second SendLeftSoft to SendCR as follows:

    #SetClipText(url)
    Run("\Windows\jbed.exe", "-run s0_")
    Sleep(6000)
    SendLeftSoft
    Sleep(400)
    SendCR


    Note that the above code snippet has SetClipText(url) commented out (note the # at the beginning of the row). This is only needed under WM6; under previous operating systems, you MUST NOT comment it out.
  4. finally, you can fine-tune the parameters of Sleep() in the code so that OM is still reliably invoked. With the code above, for example, I let MortScript wait for 6 seconds (6000 milliseconds) before starting to emulating left softkey presses.
 
Last edited:

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
Quick explanation for the different behavior under WM6 (only for geeks / hackers / programmers!)

Under WM6, invoking the default Web browser isn’t any more done the same way as under previous operating systems. There, the contents of HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\ Shell\Rai\ : DEFBROWSER\1 tell the system what to invoke. Here, unfortunately, it’s impossible to define additional command-line parameters. Parameters DO get passed (in the background), but you can’t name them. MortScript, however, relies on the latter – that is, named parameters referable under their name, NOT their index.

Under pre-WM6 operating systems, it was easy to name the parameters you passed to programs as can clearly be seen in the WM5-specific Registry import file, which just overwrites the old value of HKEY_CLASSES_ROOT\ http\Shell\Open\ Command:

@="\"\\Program Files\\MortScript\\MortScript.exe\" \"\\Program Files\\MortScript\\OMInvokeAndPasteScript.mscr\" url=\"%1\""

Here, I’ve named the parameter “url”. This is why the first row in the MortScript file is as follows:

SetClipText(url)

This just instructs MortScript to copy the contents of the “var” variable (which, now, comes from the “outside” of the script) to the clipboard so that, later, it can be pasted back to the URL input field.

Feel free to quickly scrutinize the two, WM6- and pre-WM6-specific Registry import files so that you can see this for yourself.

Currently, I don’t know a way of naming parameters under WM6. Of course, when I come up with a solution, I let you all know.
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
UPDATE (11/29/2007): thanks to badbob001 on my blog, now, as opposed to the initial case, WM6 devices (both Pocket PC's and Smartphones) are FULLY supported!!!!!!!

This all means there is no longer a difference between how WM6 and pre-WM6 operating systems behave. You only need to make sure to get the right .MSCR and Registry import files from the already-updated ZIP file, depending on your operating system version. That is, for WM6, get the files from the WM6 subdirectory, for pre-WM6 operating systems, from the WM5 one. And, of course, modify the scripts if Opera Mini isn't deployed as the first app under Jbed, the, by default, supported (and highly recommended) MIDlet manager.

Again: Under WM6, manual link copying to the clipboard is no longer needed and, again, it works 100% on WM6 Smartphones as well!

(note that now that WM6 is fully supported, I haven’t edited the original article; its WM6-related parts are now outdated. Again, WM6 is fully supported now and there's no difference between the usability on pre-WM6 and the WM6 platforms any more.)
 

EazyVG

Senior Member
Jan 2, 2007
975
82
Moscow, Russia
Moved to this post, as I noticed that one is for Smartphones, while I am on WM6 Pro.

So as I was saying:

Yes, you are right. I have deleted the string mentioning s0_ all together, and it does work without it. So, what you think.

Basically, here is what I tried:

Code:

If (ProcExists("jbed.exe"))
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(2, "Please Wait...")
Else
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(10, "Please Wait...")
EndIf
SendLeftSoft
Sleep(100)
SendLeftSoft
Sleep(100)
SendEnd
SendHome( "",0,1 )
Sleep(100)
url = substr(url,2)
SetClipText(url)
SendCtrlKey( "V" )
Sleep(100)
SendLeftSoft

What it does with that 10 seconds command is that, it launches Jbed, waits 10 seconds at the menu option (where there is a list of Midelets installed, in my case for now only Opera), and then only launches OM, and again there is no auto address input. So increasing seconds doesn;t give me anything. What can be the problem?

And what about handling of links in apps such as Spb Insight ... I haven't tried clicking links in any other 3rd party app, but perhaps the result will be same, i.e. not launching the OM but going straight to PocketIE.
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
UPDATE (12/04/2007): Major WM6-related updates have taken place in the meantime.

In the meantime, my blog reader badbob001 has refined the script. Now, if you click a link, you’ll be presented a choice list, where you can select whether to pass the given URL to Internet Explorer Mobile, Opera Mini, just copy to the clipboard or just cancel the operation. This will help you in selecting the right browser if you (still) plan to use IEM (or other native Web browsers like Opera Mobile, Netfront or Minimo).

OpenInSelectableBrowser.png


Cool, eh?

Remember that you don’t need to deploy this script if you don’t need this kind of functionality but always want to be redirected right to Opera Mini. Therefore, I’ve also included the older version of this script in the ZIP file. It’s in the NoBrowserSelectionDialog subfolder. Note that this script has also been updated a bit: it checks for Jbed already running; if it is, then, it doesn’t wait that much. Again, thanks for badbob001 for refining and performance-tuning my initial script.

Note that the usual stuff applies: if the script doesn’t invoke Opera Mini but invokes something else, edit both occurrences of s0 and appropriately change 0 to a greater number.

Finally, note that, these updates & bugfixs being all WM6-related, I haven't edited the old, WM5-related, working MortScript file. If you need some speedup and/or dynamic, runtime selection of the browser you'd like to use, you'll want to copy either of the two new MortScript files - it'll work.

2. Upon HowardForums forum member volwrath’s bug report, I’ve enhanced the Registry import file to support invoking Opera Mini from all applications, not only Messaging and Notes. I wouldn't have thought WM6 is so half-baked (that is, half of the apps still depend on the pre-WM6 (that is, the HKCR/http/Open/Command) way of invocation). That is, the WM6 Registry import script has also been enhanced (basically, I've just added the contents of the old WM5-related Registry import file to it), not only the MortScript file.

Note that reading local files will still default to the system-level browser as I haven’t redefined the default application for opening .htm(l) files. That is, by default, Internet Explorer Mobile will open these.

Again and again, it can’t be stressed enough how much these hacks enhance the usability of Opera Mini under Windows Mobile! I really recommend giving Opera Mini a try – you certainly won’t regret it!
 

EazyVG

Senior Member
Jan 2, 2007
975
82
Moscow, Russia
Gr8 ... tnx to all mind tanks and coders .... great, simply great. Hope with this, and my mobile, HTC P3300, being hard reseted, and OM being the first JApplet installed on main memory I will have no further probs :)

BTW, just wanted to know. Once I have .reg file registered in registry, and suppose I want to return back to factory settings, what will be the simplest procedure.
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
Gr8 ... tnx to all mind tanks and coders .... great, simply great. Hope with this, and my mobile, HTC P3300, being hard reseted, and OM being the first JApplet installed on main memory I will have no further probs :)

BTW, just wanted to know. Once I have .reg file registered in registry, and suppose I want to return back to factory settings, what will be the simplest procedure.


Just export the two reg keys as they were BEFORE your importing the regifile.

Should you no longer have them, let me know and I create it for you when I have some time.
 

EazyVG

Senior Member
Jan 2, 2007
975
82
Moscow, Russia
Gr8 Breakthrough

Thanks Menneisyys and badbob001 ..... you the king of the hill.

On my HTC P3300 running WM6, Claudyfs Jbed 1.2, now all is working exceptionally well. Now with the updated script and reg tweak even the links embedded in 3rd party apps (such as the one I mentioned, Spb Insight) the OM get's launched and the browser shows the web site without any delays. The only thing I changed was the Sleep string from 6 to 4.

I can't thank you guys enough ... definitely MAJOR BREAKTHROUGH :)
 

cbus

Senior Member
Oct 5, 2007
124
2
Please Help!

I have done everything as mentioned. It comes up with the options - I select OM - It loads OM - that's it!

Nothing loads but when I go to Pocket Word and paste the info, it is in the clipboard.

What do I need to do to get the info from the clipboard into OM?

Otherwise, great app!
 

cbus

Senior Member
Oct 5, 2007
124
2
I have done everything as mentioned. It comes up with the options - I select OM - It loads OM - that's it!

Nothing loads but when I go to Pocket Word and paste the info, it is in the clipboard.

What do I need to do to get the info from the clipboard into OM?

Otherwise, great app!


Also - If I have OM running then click on link, it opens up ie and exits OM and IE?????

Any thoughts?
 

cbus

Senior Member
Oct 5, 2007
124
2
Ok - I read thru the middle of your info. I am running wm6 pro on sprint touch.

I put the # in front of setcliptext(url)

and put in SendCR instead of the second SendLeftSoft

What happens is I get OM to load and it opens a url but it is not the url I selected. It is from a previous clipboard item. I will continue to play with it.

any thoughts would be appreciated!
 

cbus

Senior Member
Oct 5, 2007
124
2
Update!

Ok - Got it working!

For those of you having similar issues, here is what I did.

I am running OM 4.0.9751

I took the # symbol off the front and that fixed the clipboard issue.

I did however leave the second SendCr and that did the trick.

So it looks like this:

SendLeftSoft
Sleep100
SendCR
Sleep100

I was under the impression that with OM 4.0 that I didn't need the sendcr command.

Please let me know if this is correct?
 

cbus

Senior Member
Oct 5, 2007
124
2
Still Exiting

So everything works fine - the only problem is that if OM is running in background, then it will go to OM then to IE then it says in ie "shut down Opera Mini?" Then it shuts down.

Any ideas?
 

cbus

Senior Member
Oct 5, 2007
124
2
made a fix for the exiting problem

I changed the mortscript to the following and that fixed the exiting issue however I am sure there is an easier way.

if (substr(url,1,1) eq " ")
url = substr(url,2)
EndIf

list[1] = "Open in Opera Mini"
list[2] = "Open in Pocket IE"
list[3] = "Copy to clipboard"
list[4] = "Cancel"
Choice("With this link...", url, list)

Case(1)
Call OpenOM
Case(2)
Run("\Windows\iexplore.exe", url)
Case(3)
SetClipText(url)
Case(0,4)
Exit
EndChoice


Sub OpenOM
If (ProcExists("jbed.exe"))
Run("\Windows\jbed.exe", "-run s2_")
sleep(2000)
SendRightSoft
sleep(2000)
Else
Run("\Windows\jbed.exe", "-run s2_")
sleep(6000)
EndIf

SendLeftSoft
Sleep(100)
SendCR
Sleep(100)

SetClipText(url)

SendEnd
SendHome("",0,1 )
Sleep(100)

SendCtrlKey("V")
Sleep(100)
SendLeftSoft
EndSub



Hope this helps!

Please let me know if there is an easier way.
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
UPDATE (12/12/2007): upon the problem reports of several Smartphone users (see the posts for example HERE), I’ve released a slightly modified version of the script that, instead of pasting, uses keyboard emulation. This makes it possible to use the script on some Smartphones that are incompatible with pasting.

The script is available HERE. Remember to remove the SP.2 extension before deploying it. Note that, again, it's ONLY meant for Smartphone users that previous script versions didn't work with!!!

Note that while it works on for example the I3 Beta of WM6 of the Samsung BJ, it doesn’t do the same on the (original) WM5 version of the same device or the HTC Vox (s710). It seems it’s impossible to support these devices with the current MortScript version. I'll also try to reimplement the script in nScriptm (another, less widely used scripting language / interpreter) - hope it is able to paste / send characters to these, still incompatible MS Smartphone models.
 

shlomki

Senior Member
Nov 6, 2006
423
0
Israel
CABs Ready!!!

I made 3 cabs for easy installation of this hack.

What it does:1. Installs MortScript (Default to Internal Memory, because of links and shortcuts)
2. Installs script to Windows dir and imports Reg values (to be independant of MortScript folder)
3. Creates a shortcut for OperaMini in the programs folder!

These CABs are for ARM processors and for Pocket PC only - not smartphones.

All you need to do is install.
Have fun.

P.S: I need a confirmation that the WM5 cab works.
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
I made 3 cabs for easy installation of this hack.

What it does:1. Installs MortScript (Default to Internal Memory, because of links and shortcuts)
2. Installs script to Windows dir and imports Reg values (to be independant of MortScript folder)
3. Creates a shortcut for OperaMini in the programs folder!

These CABs are for ARM processors and for Pocket PC only - not smartphones.

All you need to do is install.
Have fun.

P.S: I need a confirmation that the WM5 cab works.


You're great; I'll frontpage this!
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
UPDATE (12/15/2007): XDA-Devs forum member shlomki has just released the different hacks in CAB format so that they’re very easy to install. They’re available HERE. Comments are welcome. (Note that, due to lack of time, I haven’t checked them.)