Related
One of the biggest complaints with Microsoft's Compact Framework 2 (CF2 for short) (and, consequently, with programs relying on it - Hitchhiker, SMS Notifier, Webby, IBE Mail etc.) has always been its storage needs, which, by default, is some 5.4 Mbytes. See for example this thread for users' opinions on the memory consumption on CF2 and their subsequent not wanting to install it.
I've always tried to reduce the main memory load on Pocket PC - with great success. Just search for the word-start "relocat" in the Pocket PC Magazine Expert Blog and on my old homepage for some examples of them. No wonder I've also decided to look into this, so far, unsolved problem to greatly help my fellow Pocket PC users. And, after a day's work and testing, I can present you a 100% working solution, which has been thoroughly tested on four of my WM2003+ PDA's, all with success. This IS a big thing, considering that internal memory is still precious, even with most Windows Mobile 5 (WM5) Pocket PC's. (For example, most WM5 PPC's are shipped with 128M of ROM, of which in general 40-45 Mbytes is free.) The situation is even worse with pre-WM5 Pocket PC's, where the available RAM is very rarely (only with devices shipped with 128 Mbytes of RAM) over 50 Mbytes, from which CF2 takes away 5.4 Mbytes.
Note that this will work on all Pocket PC and Pocket PC Phone Edition devices that are able to run CF2 (that is, all WM2003+ devices, including WM5).
The complete tutorial
* create a directory on your storage card or, if you have, in the built-in File Store. (Note that the files, as they are surely not needed at boot time (unlike some Today plug-in DLL's), may also be relocated to a storage card. That is, they don't need to be stored in the more scarce File Store - if it's available at all; that is, if you have a pre-WM5 device). Let's assume you give this directory the name "DLLs".
* move the following files from \Windows to this directory:
cgacutil.exe
MSCOREE2_0.dll
netcfagl2_0.dll
netcfd3dm2_0.dll
GAC_CustomMarshalers_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.VisualBasic_v8_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsCE.Forms_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsMobile.DirectX_v2_0_0_0_cneutral_1.dll
GAC_mscorlib_v2_0_0_0_cneutral_1.dll
GAC_System.Data_v2_0_0_0_cneutral_1.dll
GAC_System.Drawing_v2_0_0_0_cneutral_1.dll
GAC_System.Messaging_v2_0_0_0_cneutral_1.dll
GAC_System.Net.IrDA_v2_0_0_0_cneutral_1.dll
GAC_System.Web.Services_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms.DataGrid_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll
GAC_System.Xml_v2_0_0_0_cneutral_1.dll
GAC_System_v2_0_0_0_cneutral_1.dll
(netcf2_0license.txt can also be copied here - or just deleted.)
This means only Microsoft .NET CF 2.0.GAC and mscoree.dll needs to stay in \Windows. Never ever try to touch the former (Microsoft .NET CF 2.0.GAC). Even if you copy it back to \Windows (after starting any CF2-dependent app), CF2 won't work again until you reinstall it.
Copying the files can be done in several ways, of which I show the one way that requires no third-party apps, that is, without having to resort to, for example, the WindowsCE File System plug-in of the desktop-based Total Commander.
Start the built-in (Pocket) File Explorer and navigate to \Windows. Tap and hold an empty (not highlighting any file or directory) region anywhere (for example, the end of the list) and enable "View All files" in the context menu:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now, click the "Name" drop-down menu in the upper right corner; a "Sort By" list will be displayed, defaulting to "Name". Switch it to "Date":
Scroll to the region with filedates of Aug 26 and, with cgacutil.exe, 27, 2005 (this is the easiest way to find the files) and mass-highlight all files that are listed in the above list. Note that mscoree.dll should not be highlighted (as has been pointed out, it should be left in \Windows). Also note that the filedates of the current, 2.0 version of CF2 are all dated at Aug 26/27 last year. They will only have a different filedate if you've restored them from a backup. Then, they will have the timestamp of the restoration and you'll may end up having to hunting for them one-by-one, based on their name.
Now tap-and-hold the selection somewhere so that the context menu comes up. Choose Cut:
Go to the target directory (in this case, DLLs on your storage card); tap-and-hold an empty area and choose Paste:
The transfer of the files will start:
Note that you can also use other file handler tools on the Pocket PC; for example Resco File Explorer or Total Commander. In Resco, go to File/Options/Browser and make sure "Show all files" is chosen (instead of the default "Hide hidden files and files...") as can be seen in this screenshot.
* get a registry editor that is able to (flawlessly (!)) edit multiline strings (that is, all known, up-to-date registry editors except PHM Registry Editor and Total Commander; please check out The Ultimate Roundup of Registry Editors for the Pocket PC for a thorough explanation of why I don't recommend these two applications if interested). In this tutorial, I use Resco Registry Editor (Resco for short). It's commercial, but the 14-day, unrestricted trial version is fully sufficient for our purposes. Start it.
* First, we'll modify the so-called "System Path" (which is a bit similar to the PATH in traditional operating systems) so that it includes our new directory. To do this, go to HKEY_LOCAL_MACHINE\Loader:
Note that, in here, I've switched to "Tree Mode" in View/Show Tree View as can be seen in here.
Now, click SystemPath (highlighted in this screenshot); you'll be presented the following dialog:
Note that there may be some values already in the text input area in here. For example, if you've ever had SKTools or MemMaid relocate DLL's for you, the target directory will be in here. Also, by default (if you haven't ever touched the System Path), there may be a \Release\ or \windows\oem\ in here. These can be safely deleted as they're not used. You can, naturally, leave them in there; of course, then, you must make sure the new path is entered in a new row as can be seen in this x51v or this HTC Wizard (latest Qtek ROM) screenshot. Once again: you can safely delete them.
All you have to do is entering the full path of your new DLL directory in here. For example, if you've moved the CF2 files to a directory named DLLs on your storage card named CF-Card (Storage Card, CF Card, SD Card, SD-MMCard are also widely used), enter
\CF-Card\DLLs\
in here, as can also be seen in here:
Don't forget to add the leading and the trailing backslash characters (\)!
Now, click OK in the upper right corner and answer Yes:
In the list view, the new, just-entered value should be shown as can be seen in here:
Note that, again, if you want to keep the previous values of System Path, then, the new entry should be put in a separate row. For example, if the previous value of HKEY_LOCAL_MACHINE\Loader has been
\SD-MMCard\Programs\CrEme\bin\
\LOOXstore\DLLs\
then, you need to add the new value in a new row as can be seen in here:
* now comes a bit more complicated part. First, go to HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global.
Note that, on some devices, in the above path, SOFTWARE may not (all) be uppercase. This varies from model to model and shouldn't be paid attention to. (Also note that I’ve added spaces after every backslash characters (\) in the above registry path so that the blog engine nicely renders it. In the reality, it should not contain any spaces!)
Here, look for names (on the left) that have 2.0 in them. Note that almost all values (except for CustomMarshalers, Microsoft.WindowsMobile.DirectX and Microsoft.WindowsMobile.DirectX, which have all been introduced in CF2 and didn't exist in CF 1.x) seem to be duplicated and their name will start with the same (Microsoft.*, mscorlib.*, System* etc.); it's only after this that they start to be different. One set of them will continue in Version=1.0, the other set will continue in Version=2.0. The only exception from this "must contain Version=2.0" law is the value starting with "Microsoft.VisualBasic, Version=8.0.0.0" (that is, 8.0 instead of 2.0).
In all these Version=2.0 values, you'll need to modify the original path referring to \Windows to the new home of the relocated files - for example, in our case, \CF-Card\DLLs.
In order to be able to see this as easily as possible, enabling Show Header in the View menu is highly recommended, as can be seen in here. Then, you'll be able to greatly increase the displayed length of the value names if you drag the header to the right. Of course, switching to Landscape and/or VGA mode (if possible) is highly recommended. Then, you'll be able to see the version number in all the values. For example, this screenshot shows a QVGA WM5 device in Landscape - here, it's also possible to increase the width of the "Name" column so that the version number can also be seen without having to click every value.
All you need to do is just click all the values that have Version=2.0 in their name (except, as has already been pointed out, the 8.0 Microsoft.VisualBasic) and just change \Windows to the new value in the first row. An example of this:
before:
after:
Another example of a changed value (WM5, QVGA device, with files relocated to \Storage Card\_):
and with the VGA x51v in standard VGA mode:
Note that, much as it refers to the main storage (\Program Files\.NET CF 2.0\), you don't need to pay attention to the second row in all these values. Just leave them there.
Consider using a PC-based Pocket PC controller tool to do this (please read this article for more info on them if not sure). Using them, you can speed up the registry modification by orders of magnitude, particularly if you use copy/paste to insert the new directory path.
After you've modified all the affected values, check once more if it was successful. Fortunately, you'll see all the names (showing that a given value is 2.0-specific) and values (showing whether it refers to the original \Windows directory in the main storage or somewhere else) on the same screen as in this screenshot.
You may also want to export the just-modified branch to a registry (.reg) file. Then, in case you reinstall CF2 and want to avoid hand-editing the entire stuff, you'll only need to reimport this file. To do this, tap-and-hold Globals in the upper, tree pane and choose Export:
On WM5 devices, you will also want to make sure the changes are flushed back to the ROM (as the Registry is kept in RAM and changes are rarely flushed back to ROM, which will result in a simple soft reset getting rid of all changes and, therefore, CF2 not working after the relocation). To do this, on many WM5 devices (like the HTC Wizard), just long-press the Power button. On some other devices, you must explicitly configure the device to shut the PDA completely down upon a long-press (instead of just dimming the screen). For example, on the x51v, you must go to Settings/System/Power/Power Button and enable "Full power off" instead of the default "Dim/light the display" as can be seen in this screenshot. You'll only need to power off your PDA for some seconds because it's before shutting it down that the Registry is flushed back to the ROM; that is, you can safely switch it back on instantly.
Congratulations! Now, the relocated CF2 will be working! If you've modified the System Path, you'll need to reboot; otherwise, you can start your CF2 apps right away.
Advanced remarks for geeks/advanced hackers
* Exporting, editing and re-importing the contents of HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global (so that you can much easier change all occurrences of \Windows to the new path) just won't work because the values in here are multiline strings, which are exported as hexadecimal values by all export-capable Pocket PC-based registry editors (I've checked this!) like in here:
* The \Windows paths in HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Reference (note that the last word is Reference, not Global!) don't need to be modified. Actually, you can even get rid of the entire subkey because it's not used at all.
* Technically, the GAC*.dll files don't need to be in the System Path; it's only with the other files (cgacutil.exe, MSCOREE2_0.dll, netcfagl2_0.dll and netcfd3dm2_0.dll) that must be. That if, you have already set up a relocated DLL directory somewhere in the System Path, you can safely move the files to there. It's in order to be as easy as possible for a novice user that I've instructed copying all relocated files to the same directory in the System Path.
one better make damm sure that one dont have any .net programs running when the pda is off too
because then the SD interface get shutdown to save power
and then programs which are running which depend on the framework crash and burn
Rudegar said:
one better make damm sure that one dont have any .net programs running when the pda is off too
because then the SD interface get shutdown to save power
and then programs which are running which depend on the framework crash and burn
Click to expand...
Click to collapse
Yup, but you can also play with PNPUnloadDelay to avoid problems because of this (see http://www.pocketpcthoughts.com/forums/viewtopic.php?t=44488 for more info).
how does this method compare to the way the new beta allows GAC to be installed to the storage card?
http://www.microsoft.com/downloads/...53-a418-42d9-a481-19ba3ceca1a6&displaylang=en
from what another user told me, the beta allows you to install about 80% of the framework to the storage card.
-jeff
jeffreii said:
how does this method compare to the way the new beta allows GAC to be installed to the storage card?
http://www.microsoft.com/downloads/...53-a418-42d9-a481-19ba3ceca1a6&displaylang=en
from what another user told me, the beta allows you to install about 80% of the framework to the storage card.
-jeff
Click to expand...
Click to collapse
Yes !!! Thanks for the council.
Before with the previous version of net framework 2 my free memory was of 25,80 Mb.
After to have installed the Sp1 new beta on the Storage Card is of 29,78 Mb.
Hi Menneisyys. Would MUCH appreciate your guidance;
I'm using a ROM image that works great - except that the CF 2.0 SP1 installation is buggy. I can't de-install it as it's not in my installed apps. Any idea what files I need to delete so the install proggie thinks it's gone and does a reasonable re-install? Currently the install proggie says "you already have this verison installed".
craigiecraigie4 said:
Hi Menneisyys. Would MUCH appreciate your guidance;
I'm using a ROM image that works great - except that the CF 2.0 SP1 installation is buggy. I can't de-install it as it's not in my installed apps. Any idea what files I need to delete so the install proggie thinks it's gone and does a reasonable re-install? Currently the install proggie says "you already have this verison installed".
Click to expand...
Click to collapse
Unfortunately, it's not only files but also registry entries. Try deleting all the above-listed, 2.0-only (don't touch the CF1-specific ones!) registry entries.
Do you have WM5 or a previous OS? If you have the latter, I can send over an .unload file and a registry import so that you can directly delete these without any manual registry editing.
Menneisyys said:
Unfortunately, it's not only files but also registry entries. Try deleting all the above-listed, 2.0-only (don't touch the CF1-specific ones!) registry entries.
Do you have WM5 or a previous OS? If you have the latter, I can send over an .unload file and a registry import so that you can directly delete these without any manual registry editing.
Click to expand...
Click to collapse
Hi Mennei, I'm on WM5 and would TRLUY appreciate a .unload file! Thanks a stack.
craigiecraigie4 said:
Hi Mennei, I'm on WM5 and would TRLUY appreciate a .unload file! Thanks a stack.
Click to expand...
Click to collapse
Unfortunately, you can't easily hack WM5 (as opposed to pre-WM5 OS'es) to think it has a program installed - you don't have write rights on \Windows\AppMgr and, tehrefore, can't copy the (un)install DLL there. That is, with WM5, it's, to my knowledge, not possible to automatically remove stuff.
Menneisyys said:
Unfortunately, you can't easily hack WM5 (as opposed to pre-WM5 OS'es) to think it has a program installed - you don't have write rights on \Windows\AppMgr and, tehrefore, can't copy the (un)install DLL there. That is, with WM5, it's, to my knowledge, not possible to automatically remove stuff.
Click to expand...
Click to collapse
hmmm.....
maybe if you installed a "dummy" program that would reference the appropriate uninstall file for CF2.0?
just an uneducated noob suggestion. (feel free to educate me! i'm always eager to learn)
blazoner said:
hmmm.....
maybe if you installed a "dummy" program that would reference the appropriate uninstall file for CF2.0?
just an uneducated noob suggestion. (feel free to educate me! i'm always eager to learn)
Click to expand...
Click to collapse
It might work.
CF2 late question
I know there has been no action on this thread but as a late commer I was wondering if the CF files can be copied and included into the extended ROM (instead of the storage card) and then flashed onto the device?
mnazmi said:
I know there has been no action on this thread but as a late commer I was wondering if the CF files can be copied and included into the extended ROM (instead of the storage card) and then flashed onto the device?
Click to expand...
Click to collapse
Yup, I think so - after all, when unlocked, the extended ROM is just another drive in the file system. WHEN unlocked, I think.
FYI
i downloaded the .Net CF2.0 SP1 fr http://www.microsoft.com/downloads/...88-59e2-4eba-a70e-4cd851c5fcc4&DisplayLang=en
i selected Storage Card during the installation. all GAC* files are installed automatically\directly onto my Storage Card\Windows folder. when i checked on HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global, all 14 2.0 and 8.0 entries are already with the correct folder path (\Storage Card\Windows). therefore, i only needed to move 4 files below onto the \Storage Card\Windows folder, and added value Storage Card\Windows\ into the SystemPath in HKEY_LOCAL_MACHINE\Loader
cgacutil.exe
MSCOREE2_0.dll
netcfagl2_0.dll
netcfd3dm2_0.dll
thanks for the tips!
Ever wanted to run the same midlets (small Java applications) on your Pocket PC as on your mobile phone? Ever wanted to use the great alternative Web browser Opera Mini or the great mapping software Google Maps on your Pocket PC? Read on!
It was over half a year ago that IBM released the last, 6.1.0 version of their well-known Personal Java / Midlet environment J9 (read the tutorial here).
As with the previous version, the distribution isn’t available on major Pocket PC software resellers like Handango; only on IBM’s official download page. You will need to register yourself in there in order to be able to download the environment – Personal Profile (PP) if you need to run smaller, PP-compliant (!) stand-alone Java applications (NOT Java applets inside Pocket Internet Explorer / Internet Explorer Mobile – IBM J9 has never supported them!) and the MIDP 2.0 version if you want to run midlets like the above-mentioned two "killer" midlets, Opera Mini or Google Maps. Note that the Midlet version, as with the previous 6.1.0 version, comes in two flawors: a VGA and a QVGA one. If you have a VGA device, get the former.
After downloading (make sure you also get the installation instructions PDF file and don’t mistake Windows CE 5 for Window Mobile 5 – you’ll need the latter only), execute the file (it’s been downloaded to c:\DownloadDirector\) and extract c:\Program Files\IBM\WEME\runtimes\61\wm50-arm-vga-midp20\weme-wm50-arm-hires-midp20_6.1.1.20061110-161633.zip (VGA MIDP), c:\Program Files\IBM\WEME\runtimes\61\wm50-arm-midp20\weme-wm50-arm-midp20_6.1.1.20061110-161633.zip (QVGA MIDP) or c:\Program Files\IBM\WEME\runtimes\61\wm50-arm-ppro11\weme-wm50-arm-ppro11_6.1.1.20061110-161633.zip (Personal Profile). Transfer the contents of the (unpacked) bin and lib subdirectories anywhere on your Pocket PC (note that the installation instructions instruct you to copy these two directories under \J9\MIDP in the main storage. This isn’t needed: a storage card will do too) and, then, do what “Installing and running a demo MIDlet” (the MIDP version) or “Running a demo application” (the PP version) states. Note that you can (and, if you plan to install many midlets, should!) still use the registry import script I’ve provided (see the “My registry script” section in my previous tutorial) for 6.1.0 to greatly ease midlet deployment; as with the previous version, make sure you change all occurrences of “\\SD Card\\J9-MIDP” to the current path of your J9 home in it before importing.
Screenshots of the new version running Opera Mini 3.0.6540 Advanced (also see this article; the JAR file is available for download here; simply download it and click on it after transferring it onto your PDA and importing my above-mentioned registry import file if you don't want to deploy it by hand, in the very awkward way the official IBM documentation recommends) on my WM2003SE VGA Pocket Loox 720: 1 2; on my WM5 VGA Dell Axim x51v.
Note that, when I tested, neither the “mainstream” nor the “high-end” version of Google Maps worked with neither the latest Intent Midlet Manager (THE Midlet manager for Pocket PC Phone Edition users; do read the article if your current PPC PE device is not the latest one and has an old(er) ROM on it) nor J9 6.1.1 (screenshots: former; latter; another screenshot of Intent running Opera Mini 3.0). Other users, however, reported success and flawless execution with GMaps – with both J9 6.1.1 (as opposed to the very slow 6.1.0) and Intent (click the links for user reports).
Unfortunately, the new version still doesn’t make use of the WM5 softkeys, unlike the new version of Intent Midlet Manager, in which the whole interface, all yes/no questions etc. (and, of course, all apps like Opera Mini) work just great via the WM5 softkeys.
Please note that I haven’t tested the WM5 compliance of the new Personal Profile J9 version (its WM5 compliance was (still?) rather problematic with 6.1.0) – now that Toonel, the, for Pocket PC users, most important Personal Profile-based Java application, received a native Windows Mobile version, there’s no point any more in using the Java-based one on the WM platform.
I just had a look on the site - am I correct in understanding that this release has no support for PPC2003SE edition phones?
I downloaded the previous version of this, which also worked with Google Satelite Maps, but didn't work with the GMail application (couldn't connect to network error) or the Opera Mini application (becuase the program doesn't have an even that fires after entering text in a textbox, meaning that searches never get executed, and links were unable to be clicked)
CJBS said:
I just had a look on the site - am I correct in understanding that this release has no support for PPC2003SE edition phones?
I downloaded the previous version of this, which also worked with Google Satelite Maps, but didn't work with the GMail application (couldn't connect to network error) or the Opera Mini application (becuase the program doesn't have an even that fires after entering text in a textbox, meaning that searches never get executed, and links were unable to be clicked)
Click to expand...
Click to collapse
It supports WM2003+; it's just that they list it as a "WM5" version.
IBM Midlet Manager - 6.1.1 - working on Blue Angel PPC2003SE
Works
Well, I got it working on my Blue Angel PPC2003SE. Google Maps, Opera Mini, and the GMail app all work fine.
Directory Structure
It's a bit of a troublesome installation process. I don't know why they didn't just have an installer like the 5.7 version. Still, I was able to install it to my storage card. My directory structure is as follows:
\Storage\IBM Midlet Manager\ (with no contents)
\Storage\IBM Midlet Manager\bin
\Storage\IBM Midlet Manager\lib
Shortcuts
It's possible to create shortcuts to individual applications by creating a shortcut, and then setting the parameter to the index of the Midelet as seen in the Midlet Manager. For example, I've got a shortcut to the Opera Mini app (which appears first in the list when running the Manager). It's shortcut is as follows:
"\Storage\IBM Midlet Manager\bin\emulator.exe" "-Xjam:run=1"
The "1" at the end is the index of the applicaion to run. So, in my case, "2" would be for the GMail app. It's actually possible to substitute the index "1" with the storage name for the application, however I was unable to find out how to retrieve the storage name. (It is possible to use the -Xjam:list parameter to list the storage names, but these aren't output to a dialog, and I don't have a command line program on my PPC.) Using the storage name would be better, as it would mean that each time a new application is uninstalled, the other shortcuts affected wouldn't need to be updated as a result of their indexes changing.
Font Files
It's possible to change the fonts used in the Midlets, too. There's a file in the lib subdrectory (in my structure, it's \Storage\IBM Midlet Manager\lib\jclMidp20\fontPaths.properties). Just substitute the names of the fonts with fonts that exist on your PPC. For example, to display Chinese characters, I substituted LcduiSystemFont: Windows\tahoma.ttf to become LcduiSystemFont: Windows\sunglobe.ttf - note that I have the sunglobe.ttf file in the \Windows directory. This may not work with all fonts. Ensure that when editing the file, it is saved in ANSI format, not Unicode (otherwise the MIDlet Manager won't load).
Gmail App
Note that in order to use the Gmail app, which is still in Beta, you'll need to have your language set to "English - US". THis can be done on the PC on the Gmail.com site by clicking Settings.
Google Maps - Fatal Error (upon loading)
Initially, after installing Google Maps, I was unable to run the aplication. The app would load the first part of the Terms and Conditions page, wait for about 20 seconds, and then present a dialog "Fatal error. Please exit and restart." I noted that it didn't even try and connect to the Google Server (as per the network data window, part of an app I have on my PPC). It turned out that I had another midlet (map-related - I can't remember the name) that used the Google Maps server, amongst other map data providers. I uninstalled both this applicaion, and the Google Maps application, reloaded the Midlet Manager, and then re-installed the Google Maps application. It then worked.
Google Maps - Hong Kong maps
Google has recently introduced road map files for Hong Kong, China (search for Hong Kong, China on the web at http://map.google.com, and you'll see it). However, when I use the Midlet Version, the (road) maps for Hong Kong don't exist - it seems that the PC version and the Midlet version are sourced from different locations/servers...
PenPower conflict
I use the trial version of PenPower on my PPC. This allows input of 50 drawn Chinese Characters per device reset. The first time that a character is drawn, this interfers with the main window process on the device and causes a lock. If running the Midlet Manager with this program, the Midlet manager may seem to stall. If this is the case, simply draw another character (or just a squiggle), and the lock will be broken, leaving the application to continue running.
CJBS said:
Works
Well, I got it working on my Blue Angel PPC2003SE. Google Maps, Opera Mini, and the GMail app all work fine.
Directory Structure
It's a bit of a troublesome installation process. I don't know why they didn't just have an installer like the 5.7 version. Still, I was able to install it to my storage card. My directory structure is as follows:
\Storage\IBM Midlet Manager\ (with no contents)
\Storage\IBM Midlet Manager\bin
\Storage\IBM Midlet Manager\lib
Shortcuts
It's possible to create shortcuts to individual applications by creating a shortcut, and then setting the parameter to the index of the Midelet as seen in the Midlet Manager. For example, I've got a shortcut to the Opera Mini app (which appears first in the list when running the Manager). It's shortcut is as follows:
"\Storage\IBM Midlet Manager\bin\emulator.exe" "-Xjam:run=1"
The "1" at the end is the index of the applicaion to run. So, in my case, "2" would be for the GMail app. It's actually possible to substitute the index "1" with the storage name for the application, however I was unable to find out how to retrieve the storage name. (It is possible to use the -Xjam:list parameter to list the storage names, but these aren't output to a dialog, and I don't have a command line program on my PPC.) Using the storage name would be better, as it would mean that each time a new application is uninstalled, the other shortcuts affected wouldn't need to be updated as a result of their indexes changing.
Font Files
It's possible to change the fonts used in the Midlets, too. There's a file in the lib subdrectory (in my structure, it's \Storage\IBM Midlet Manager\lib\jclMidp20\fontPaths.properties). Just substitute the names of the fonts with fonts that exist on your PPC. For example, to display Chinese characters, I substituted LcduiSystemFont: Windows\tahoma.ttf to become LcduiSystemFont: Windows\sunglobe.ttf - note that I have the sunglobe.ttf file in the \Windows directory. This may not work with all fonts. Ensure that when editing the file, it is saved in ANSI format, not Unicode (otherwise the MIDlet Manager won't load).
Gmail App
Note that in order to use the Gmail app, which is still in Beta, you'll need to have your language set to "English - US". THis can be done on the PC on the Gmail.com site by clicking Settings.
Google Maps - Fatal Error (upon loading)
Initially, after installing Google Maps, I was unable to run the aplication. The app would load the first part of the Terms and Conditions page, wait for about 20 seconds, and then present a dialog "Fatal error. Please exit and restart." I noted that it didn't even try and connect to the Google Server (as per the network data window, part of an app I have on my PPC). It turned out that I had another midlet (map-related - I can't remember the name) that used the Google Maps server, amongst other map data providers. I uninstalled both this applicaion, and the Google Maps application, reloaded the Midlet Manager, and then re-installed the Google Maps application. It then worked.
Google Maps - Hong Kong maps
Google has recently introduced road map files for Hong Kong, China (search for Hong Kong, China on the web at http://map.google.com, and you'll see it). However, when I use the Midlet Version, the (road) maps for Hong Kong don't exist - it seems that the PC version and the Midlet version are sourced from different locations/servers...
PenPower conflict
I use the trial version of PenPower on my PPC. This allows input of 50 drawn Chinese Characters per device reset. The first time that a character is drawn, this interfers with the main window process on the device and causes a lock. If running the Midlet Manager with this program, the Midlet manager may seem to stall. If this is the case, simply draw another character (or just a squiggle), and the lock will be broken, leaving the application to continue running.
Click to expand...
Click to collapse
Wowz! Excellent summary, congrats!! Will link it from the next iteration of the article!
I have working google maps and other midlets since april 2006
http://forum.xda-developers.com/showthread.php?t=265426
Menneisyys said:
Wowz! Excellent summary, congrats!! Will link it from the next iteration of the article!
Click to expand...
Click to collapse
Cheers!
HDJ80 said:
I have working google maps and other midlets since april 2006
http://forum.xda-developers.com/showthread.php?t=265426
Click to expand...
Click to collapse
That was also with a former version of the IBM Midlet Manager. The problem I had was this:-
The IBM Midlet Manager, in previous versions, did run Google Maps properly (including the ability to view JPEG Satellite maps), but ran neither Opera Mini nor the GMail app properly (for reasons described in a previous post)
The Xda's included Midlet Manger ran all aforementioned apps, yet for some reason didn't support the JPEG Satellite Maps in Google Maps (which, in HK, with no map data, basically rendered it useless!)
The newer versions of the Xda Midlet Manger, which alleviate these issues, only works on WM5, and I have a 2003SE PPC
Anyway, this new v6.1.1 IBM Midlet Manger seems to meet all of my needs, despite its circuitous installation procedure.
It would be good, however, if the PenPower program didn't interfere with it, though, as it doesn't interfer with the Xda Midlet Manager. Still, it's more an issue with PenPower than the IBM product.
can anyone here upload this IBM JVM(ppc qvga version) somewhere?...cause i can't register in their site...they said the can't processed my registration info at the moment.
please upload it somewhere....cause my gsmart i120i default midlet manager can't install opera mini advanced(only support the basic version).
thanx in advance
meisocool said:
can anyone here upload this IBM JVM(ppc qvga version) somewhere?...cause i can't register in their site...they said the can't processed my registration info at the moment.
please upload it somewhere....cause my gsmart i120i default midlet manager can't install opera mini advanced(only support the basic version).
thanx in advance
Click to expand...
Click to collapse
if its too much to upload it somewhere...at least show me the link to download it other than the ibm site,cause i can't download from there and it's only demo not full version,
thx
Hi CJBS,
I'm using SDA smartphone with wm5. I installed the file like this post says: http://www.mgmaps.com/winset/. I tried and got this error.
Invalid fontPaths.properties detected. Please delete fontPaths.properties in /lib/jclMidp20/ and restart the MIDlet.
When I first installed J9 in my computer, there was no such a file. Now it's created with 0 byte. It's not like what you have with LcduiSystemFont: Windows\tahoma.ttf.
I deleted that file, it creates another empty one and says The font file paths are set incorrectly. Please edit fontPaths.properties in /lib/jclMidp20/ to point to the appropriate font files from the system font folder.
Actually, I changed the system font according to this post: http://www.airfagev.com/howtos_details.asp?id=77. And I'm also using sunglobe.ttf and the whole path is \Windows\Fonts\sunglobe.ttf. So I edited the fontPaths.properties file like you said "LcduiSystemFont: Windows\sungbloe.ttf". But I still have the problem.
Could you give me any advice?
Thanks a lot.
cunyalen:- I've noted that your issues relate to fonts. I also note that, after reviewing your other posts, that you're currently using FontOnStorage (see http://forum.xda-developers.com/showthread.php?p=1258090#post1258090). If you try removing this program, and re-installing as per the instructions documented, you may avoid the issue with fonts not being referenced correctly - Windows Mobile doesn't just look for physical font files in the file system, they are controlled through the registry as well (something that FontOnStorage also modifies)...
Does anybody have a link where I can download this at . For some reason I get plenty errors when trying to download from the site. I have the T-mobile MDA
CJBS said:
Works
Well, I got it working on my Blue Angel PPC2003SE. Google Maps, Opera Mini, and the GMail app all work fine.
Directory Structure
It's a bit of a troublesome installation process. I don't know why they didn't just have an installer like the 5.7 version. Still, I was able to install it to my storage card. My directory structure is as follows:
\Storage\IBM Midlet Manager\ (with no contents)
\Storage\IBM Midlet Manager\bin
\Storage\IBM Midlet Manager\lib
Shortcuts
It's possible to create shortcuts to individual applications by creating a shortcut, and then setting the parameter to the index of the Midelet as seen in the Midlet Manager. For example, I've got a shortcut to the Opera Mini app (which appears first in the list when running the Manager). It's shortcut is as follows:
"\Storage\IBM Midlet Manager\bin\emulator.exe" "-Xjam:run=1"
The "1" at the end is the index of the applicaion to run. So, in my case, "2" would be for the GMail app. It's actually possible to substitute the index "1" with the storage name for the application, however I was unable to find out how to retrieve the storage name. (It is possible to use the -Xjam:list parameter to list the storage names, but these aren't output to a dialog, and I don't have a command line program on my PPC.) Using the storage name would be better, as it would mean that each time a new application is uninstalled, the other shortcuts affected wouldn't need to be updated as a result of their indexes changing.
Font Files
It's possible to change the fonts used in the Midlets, too. There's a file in the lib subdrectory (in my structure, it's \Storage\IBM Midlet Manager\lib\jclMidp20\fontPaths.properties). Just substitute the names of the fonts with fonts that exist on your PPC. For example, to display Chinese characters, I substituted LcduiSystemFont: Windows\tahoma.ttf to become LcduiSystemFont: Windows\sunglobe.ttf - note that I have the sunglobe.ttf file in the \Windows directory. This may not work with all fonts. Ensure that when editing the file, it is saved in ANSI format, not Unicode (otherwise the MIDlet Manager won't load).
Gmail App
Note that in order to use the Gmail app, which is still in Beta, you'll need to have your language set to "English - US". THis can be done on the PC on the Gmail.com site by clicking Settings.
Google Maps - Fatal Error (upon loading)
Initially, after installing Google Maps, I was unable to run the aplication. The app would load the first part of the Terms and Conditions page, wait for about 20 seconds, and then present a dialog "Fatal error. Please exit and restart." I noted that it didn't even try and connect to the Google Server (as per the network data window, part of an app I have on my PPC). It turned out that I had another midlet (map-related - I can't remember the name) that used the Google Maps server, amongst other map data providers. I uninstalled both this applicaion, and the Google Maps application, reloaded the Midlet Manager, and then re-installed the Google Maps application. It then worked.
Google Maps - Hong Kong maps
Google has recently introduced road map files for Hong Kong, China (search for Hong Kong, China on the web at http://map.google.com, and you'll see it). However, when I use the Midlet Version, the (road) maps for Hong Kong don't exist - it seems that the PC version and the Midlet version are sourced from different locations/servers...
PenPower conflict
I use the trial version of PenPower on my PPC. This allows input of 50 drawn Chinese Characters per device reset. The first time that a character is drawn, this interfers with the main window process on the device and causes a lock. If running the Midlet Manager with this program, the Midlet manager may seem to stall. If this is the case, simply draw another character (or just a squiggle), and the lock will be broken, leaving the application to continue running.
Click to expand...
Click to collapse
I am trying to use opera mini beta 4 to read chinese website (Big5), but i doesnt working. I tried to change the fonts in Midlets, i found the file named
fontPaths.jar, how do i edit the path? Thank You.
leepenguin said:
I am trying to use opera mini beta 4 to read chinese website (Big5), but i doesnt working. I tried to change the fonts in Midlets, i found the file named
fontPaths.jar, how do i edit the path? Thank You.
Click to expand...
Click to collapse
If its a program you just install it under midlets . You dont have to set a path ..
PURESKILLZZZ said:
If its a program you just install it under midlets . You dont have to set a path ..
Click to expand...
Click to collapse
but i cant read chinese with opera mini beta 4? How can i fix it?
leepenguin said:
but i cant read chinese with opera mini beta 4? How can i fix it?
Click to expand...
Click to collapse
Can you read chinese with opera on your computer . ? If you can what did you do to see it ? Now I would say that both versions would work in similar ways .
PURESKILLZZZ said:
Can you read chinese with opera on your computer . ? If you can what did you do to see it ? Now I would say that both versions would work in similar ways .
Click to expand...
Click to collapse
Thank You for replying
I am using O2 Xda II with english rom (AKU3.5), i have installed CE-Star 2.8 R3. I can watch chinese with opera mobile browser. But as i know, opera mobile is based on Windows Mobile. Opera mini is based on Java, i think that's why i can't read chinese.
Does this program work on WM6? I installed the program on my Dopod 900 and able to run MIDlet HQ and install the program that I want, but when I click the 'lunch', it just return back to MIDlet List.
Beside the J9, I also installed Intent MIDlet Manager but the font size is too small to read! Anyone know how to increase the font size? thanks!
leepenguin said:
Thank You for replying
I am using O2 Xda II with english rom (AKU3.5), i have installed CE-Star 2.8 R3. I can watch chinese with opera mobile browser. But as i know, opera mobile is based on Windows Mobile. Opera mini is based on Java, i think that's why i can't read chinese.
Click to expand...
Click to collapse
We will solve this .. We are working on it now ...
cunyalen said:
Hi CJBS,
I'm using SDA smartphone with wm5. I installed the file like this post says: http://www.mgmaps.com/winset/. I tried and got this error.
Invalid fontPaths.properties detected. Please delete fontPaths.properties in /lib/jclMidp20/ and restart the MIDlet.
When I first installed J9 in my computer, there was no such a file. Now it's created with 0 byte. It's not like what you have with LcduiSystemFont: Windows\tahoma.ttf.
I deleted that file, it creates another empty one and says The font file paths are set incorrectly. Please edit fontPaths.properties in /lib/jclMidp20/ to point to the appropriate font files from the system font folder.
Actually, I changed the system font according to this post: http://www.airfagev.com/howtos_details.asp?id=77. And I'm also using sunglobe.ttf and the whole path is \Windows\Fonts\sunglobe.ttf. So I edited the fontPaths.properties file like you said "LcduiSystemFont: Windows\sungbloe.ttf". But I still have the problem.
Could you give me any advice?
Thanks a lot.
Click to expand...
Click to collapse
Please find attached a copy of my fontPaths.properties.bak (original file), and fontPaths.properties (modified to point to fonts supporting Chinese characters -- fonts that exist on my system) included within the Zip file
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:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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
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
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.
It’s free and pretty easy to set up
Cons
It isn’t compatible with WM6 Smartphones like the HTC Vox (s710) or the HTC Wings (s730). Sorry.
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.
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:
with WM6 PPC’s (unlike with pre-WM6 ones), you must copy the URL to the clipboard and only after this click the link!
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
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).
download THIS file
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.
transfer OMInvokeAndPasteScript.mscr to \Program Files\MortScript on your device
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:
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.
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:
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.
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.
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.
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.
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.
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.)
Undo
I hate to be a pain, but I am trying to view the registry file. Can you suggest a product to view the file? I followed the instructions and was having problems, so I am trying to undo the registry changes.
Thanks
Never mind. I found the registry entry.
Tnx for sharing this great idea ... always wanted one, at least until Opera Mobile 9 will be released.
I have HTC Artemis = WM6 Pro, Cloudyfa Jbed 20070802.2.1 on Storage Card and Opera Mini 4. This is the only midlet so far installed, none other present as of now.
Following is my experience:
1. When Opera Mini is not running, and has to be launched I always get a message "Could not find suite s0_", and then later Opera Mini does get launched but no address input happens. Simply the browser is launched in other words.
2. If Opera Mini is already running, everything works nicely ... no probs here.
3. I use this app, RSS Reader, Spb Insight (I think the best, beats NewsReader except that it has no podcast download support). When I click on the link address in the article (btw, I even cannot copy them in this app), PocketIE/Opera Mobile 8.65 is launched. How can this be resolved.
The script that I am using is that of badbob001, with small mod:
If (ProcExists("jbed.exe"))
Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s0_")
sleepmessage(3, "Please Wait...")
Else
Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s0_")
sleepmessage(6, "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
I have tried with the original one as well .... same results.
Ok, I got rid of s0_ error. After trying 0-10, I decided to delete the string all together and it launches now without any error. So the line now looks like:
newer --> Run("\Storage Card\Program Files\Jbed\jbed.exe")
older --> Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s1_")
So, why then we need this s0_ string anyway !!!
But then again, if Opera Mini is not running, after clicking on the link in e-mail, the midlet manager is launced and OM fired, and then no URL input happens. If OM is already running, then all is fine. And still haven't found how to resolve URL linking with Spb Insight application.
BTW, for my Artemis @260Mhz, sleep strings of "If= 2 and Else=4" seconds is perfect.
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.
Click to expand...
Click to collapse
Well, it works for me. If I recieve link in email I just click Reply to be able to select and copy the link. Open Opera Mini and paste the link (using Vito CopyPaste). The copy & paste works in intent Midlet Manager (v10.1.7.559) fine.
EazyVG said:
Ok, I got rid of s0_ error. After trying 0-10, I decided to delete the string all together and it launches now without any error. So the line now looks like:
newer --> Run("\Storage Card\Program Files\Jbed\jbed.exe")
older --> Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s1_")
So, why then we need this s0_ string anyway !!!
Click to expand...
Click to collapse
That is strange that just by running jbed.exe, opera mini is launched automatically or am I not understanding you?
EazyVG said:
But then again, if Opera Mini is not running, after clicking on the link in e-mail, the midlet manager is launced and OM fired, and then no URL input happens. If OM is already running, then all is fine.
Click to expand...
Click to collapse
Perhaps opera mini is taking longer than your script expects. In the original script with sleep(6000), it expects opera to run in 6 seconds. On my device, that is too short and I had to increase it to sleep(8000) or sleep(8500). Just launch opera and count how long it takes to get a rough idea.
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.
MOVED our discussion .... as this one is for Smartphones. The link to your other General post:
http://forum.xda-developers.com/showthread.php?p=1707520#post1707520
I have problems with the url parameter on WM5 Smartphone.
If I have in the registry entry like this:
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr" url="%1"
It says "There is no application associated with http://something.com. Run the applicaition first and open this file inside the application."
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr"
This runs the script fine (except the address of course).
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr" url=
This launches the script as well but it dosnt paste the url. I have moddified the script for my intent Midlet Manager but I still have "SetClipText(url)" and "SendCtrlKey( "V" )".
Any help?
I'm confused.
Here you say it worked...
EazyVG said:
Yes, you are right. I have deleted the string mentioning s0_ all together, and it does work without it. So, what you think.
Click to expand...
Click to collapse
But here you say a list of midlets comes up.
EazyVG said:
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?
Click to expand...
Click to collapse
If you see a list of midlets come up, IT DID NOT WORK. The point of all this "-run s?_" business to so that the midlet list is bypassed and the midlet is run directly. If you can't get this direct launch method to work, then you will need to modify the script to press enter at the midlist list to launch opera for you. You may think the script is working because a command in script 'accidentally' launches om for you but the script expects om to be already started.
You should study this page:
http://pdaphonehome.com/forums/ppc-...ed-includes-info-new-java-midlet-manager.html
EazyVG said:
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.
Click to expand...
Click to collapse
It is possible that applications ignore the system settings and launch links by invoking pocket ie. Did you even run a windows application and click on a link in help > about and internet explorer opens instead of your default browser like firefox. That application, instead of passing the url to the os to take care of, is running 'iexplore <url>'.
But here you say a list of midlets comes up.
Click to expand...
Click to collapse
Well, what I meant is where the list of midlets is showed, in my case, for now there is only Opera Mini, otherwise I am also gonna have few games, apps and Gmail.
It is possible that applications ignore the system settings and launch links by invoking pocket ie. Did you even run a windows application and click on a link in help > about and internet explorer opens instead of your default browser like firefox. That application, instead of passing the url to the os to take care of, is running 'iexplore <url>'.
Click to expand...
Click to collapse
Of course I tried, such as with links embedded in e-mails. So as I undersstand, not all apps follow what is known as Global Rules.
then you will need to modify the script to press enter
Click to expand...
Click to collapse
Can you please tell me how this script should look like, kinda never don this before on my own.
BTW, it does bypass the midlet list section, only when OM is already running in the background. I'll check the link you have given me ... hope it will shed some light.
EazyVG said:
BTW, it does bypass the midlet list section, only when OM is already running in the background.
Click to expand...
Click to collapse
It bypasses the midlet list because you already have a java application running. You can't go back to the midlet list until you quit the existing midlet application because you can only have one midlet running at a time. You'll just need to read the reference web pages to figure out what s?_ value to use to invoke om directly. If you already have other midlets installed, then you must have invoked another installed midlet by chance. If you had tried s0_ up to say s20_ (don't know how many midlets had you installed), then perhaps you jvm doesn't support direct run.
Is it possible that you have jbed installed on both the storage card and main memory and somehow it's looking for your midlets in the wrong storage location? Just a guess since I've just learned enough just to get om working and I don't have jbed on a storage card. According to the link, you should look in \windows\appdb and find the .jar for opera. Each midlet application should have a jar named s?_suite.jar where ? is a number. Once you know the value of ?, then you know what to put in your script. If you have your jars on the storage card instead, then you will need to research if you need to change anything to get direct launching working.
So for now, your problem is getting a midlet to directly run and has yet to even involve the link-copy-paste idea of the original post.
So far I have tried s0 to s10, and had maximum, prior to deleting the rest apart from OM, somewhere abound 6. I guess this has to do something with my Jbed being present in ROM (as it came with coocked ROM and I can't delete it) and one on storage, but am quite sure that the one from storage card is being run, as per registry inputs. I'll try to leave one just on main memory and reinstall the OM.
But still, the main question for me remains the one with 3rt party apps and embedded links in them, such as Spb Insight, which I use on daily basis. I hope soon one or the other solution will be found. Perhaps some tweak to be done in the registry itself for Spb and other apps to launch the Jbed/OM combo!
Tnx for the tip.
EazyVG said:
So far I have tried s0 to s10, and had maximum, prior to deleting the rest apart from OM, somewhere abound 6. I guess this has to do something with my Jbed being present in ROM (as it came with coocked ROM and I can't delete it) and one on storage, but am quite sure that the one from storage card is being run, as per registry inputs. I'll try to leave one just on main memory and reinstall the OM.
Click to expand...
Click to collapse
Did you look in the \Windows\appdb\ folder? Opera for me is installed as s0_suite.jar and has a size of 97.7KB (100,056 bytes). I had also applied a hack to the selector.utf file so that I'm not prompted for permission when opera wants to access the network. Do you get a prompt when opera starts? That *may* be related.
EazyVG said:
But still, the main question for me remains the one with 3rt party apps and embedded links in them, such as Spb Insight, which I use on daily basis. I hope soon one or the other solution will be found. Perhaps some tweak to be done in the registry itself for Spb and other apps to launch the Jbed/OM combo!
Click to expand...
Click to collapse
This may be answered here, starting at post #24.
http://www.howardforums.com/showthread.php?t=1283853&page=2
It looks like even on wm6, some applications still use the wm5 registry settings so you may need to apply the registry changes for both wm5 and wm6.
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).
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!
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
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.
UPDATE (12/13/2007): I’ve also made available the Registry import file you’ll need to use when reverting to the original, Internet Explorer-only associations. It’s HERE.
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.)
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:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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
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
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.
It’s free and pretty easy to set up
Cons
It isn’t compatible with WM6 Smartphones like the HTC Vox (s710) or the HTC Wings (s730). Sorry.
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.
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:
with WM6 PPC’s (unlike with pre-WM6 ones), you must copy the URL to the clipboard and only after this click the link!
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
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).
download THIS file
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.
transfer OMInvokeAndPasteScript.mscr to \Program Files\MortScript on your device
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:
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.
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:
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.
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.
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.
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.
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.
Awesome.
Thanks for this breakthrough.
I shall test it tonight when I get home and report back my success.
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.)
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.
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).
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!
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.
EazyVG said:
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.
Click to expand...
Click to collapse
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.
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
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 said:
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!
Click to expand...
Click to collapse
Also - If I have OM running then click on link, it opens up ie and exits OM and IE?????
Any thoughts?
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!
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?
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?
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.
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.
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.
shlomki said:
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.
Click to expand...
Click to collapse
You're great; I'll frontpage this!
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.)
Awesome - tested the WM6 without Selection Dialog and it works like a charm! Thanks for this breakthrough indeed!!!
Well, so you have installed Opera Mini, you love the app but hate having to open your MIDlet manager each time you want to run it. You can't have a direct shortcut icon in your start menu or your quicklaunch bar. Here is a tutorial to fix it (step 1 works with any MIDlet, step 2 works with any shortcut)
First i have to give due credit to Menneisyys and his awesome Java MIDlet Bible, and also to bobstar_fr for his shortcut icon mod tutorial
PREREQUISITES :
- Get yourself a decent MIDlet manager, the default windows one is crap. I would advise Esmertec Java Manager which can be found here.
- Download an Icon Editor for PC, for example the 30-day trial version of ArtIcons Pro will do the job.
STEP 1 : Creating a MIDlet shortcut
This step assumes you have installed Esmertec Jeodek or Esmertek Jbed (see prerequisites)
First, locate the list position of the Java MIDlet you want to shortcut in the Jeodek/Jbed application list. If you install Jeodek/Jbed as a fresh install, and then directly install Opera Mini, just use the number "0" to refer to Opera Mini.
Warning, if you uninstalled some midlets, the application list may not start at 0 or may have gaps. This number is in fact incremented starting at 0 each time you install a new MIDlet.
Then, go to \Windows\Start menu\Programs, and create a new shortcut. In the "target" field, type this :
"\windows\jbed.exe" -run s0_
Replacing the number 0 after the "s" letter by the list position of your MIDlet as found above.
If you have Jeodek installed, you will want to replace jbed.exe with jeodek.exe
Then click on your shortcut, et voila, the MIDLet runs immediately without having to launch the manager.
All credit goes to Menneisyys
STEP 2 : Modifying the shortcut icon
So you have a nice working shortcut, but it has the default java icon instead of the MIDlet icon. If you make many shortcuts they will all share the same (ugly) icon. You may want to change this.
The bad point is that you can't directly access the icon in a .jar file. You may only use icons included in .exe or .dll files. You could extract the .png icon from the .jar file and compile it into a .dll, but this is not the goal of this tutorial.
So if you want to change the icon of your newly-created Opera Mini shortcut, you will use another icon, for example the one from Opera 8.
Find the .exe (or .dll) which contains the icon you want to use, copy it on your PC, then open it with your Icon Editor. You will see a list with all icons included in the file, along with a number. Write down this number, it's the ID of your icon and you will need it.
For example, when you open OperaWM.exe in your icon editor, you see several icons, and the one we're interested into (with the red "O") has ID number 131.
Then go back to your Start Menu shortcut, and in the target field add the following at the end of the line :
?path_to_your_exe,-icon_ID
For the above example, this would be :
?\Windows\OperaWM.exe,-131
Et voila, you now have a nice icon for your shortcut.
All credit goes to bobstar_fr
To end this tutorial, here's a few ready-made examples :
Example 1:
Shortcut for Opera mini, installed in first position in your manager, with opera icon. In the target field of your shortcut, you would write :
"\windows\jbed.exe" -run s0_ ?\Windows\OperaWM.exe,-131
Example 2:
Shortcut for SFR Messenger, installed in second position in your manager, with MSN messenger icon. In the target field of your shortcut, you would write :
"\windows\jbed.exe" -run s1_ ?\Windows\WLMMessenger.exe,-50
Thats'it, hope you will enjoy.
Great tutorial!!! I'll give it a try later tonight. I have jbed installed on storage card though (the modded version of jbed)... I wonder if that may become a problem?
owziee said:
Great tutorial!!! I'll give it a try later tonight. I have jbed installed on storage card though (the modded version of jbed)... I wonder if that may become a problem?
Click to expand...
Click to collapse
Thanks !
No problem for having jbed installed on your storage card, just replace the "\Windows\jbed.exe" by "\Storage Card\jbed.exe" in all your shortcuts (insert subdirectory if needed).
Great tutorial, I link to it from the Bible.
Hi dude
What about link to MIDlet folders (shortcuts to folder and to any app installed inside it)?
Ciao
Menneisyys said:
Great tutorial, I link to it from the Bible.
Click to expand...
Click to collapse
Wow, i'm honored to get that kind of feedback from the java king of xda-devs.
@[email protected] said:
Hi dude
What about link to MIDlet folders (shortcuts to folder and to any app installed inside it)?
Ciao
Click to expand...
Click to collapse
I need to test this to see if installing MIDlets in folders breaches the rule of incremental numbering by installation date. Will keep you updated.
JZ SmartMort v1.4 Released!
Announcing JZ SmartMort v1.4!
Now you can use JZ SmartMort to create Opera Mini and any other JBed application icon on your Start Menu!
Have a look at the screenshots of JZ SmartMort, available HERE or at SourceForge. Below are the prominent features that the software offers.
Copy / Paste
Clipboard / URL history
Multi-browser (Opera Mini, Opera Mobile, NetFront, Skyfire, Internet Explorer)
Make any installed browser system-level, where it opens links from anywhere. Ability to have a default browser (with a special timeout in case you want to open a link with a non-default browser).
Hardware buttons - supports Pocket PCs & SmartPhones for advanced hardware button mapping.
Opera Mini - shortcut on the Start Menu, different paste & URL handling methods to accommodate different phones.
JBed - create Start Menu shortcuts for any JBed app, run JBed App directly using JZ SmartMort, troubleshoot your JBed installation.
Ability to open synced Mobile Favorites with any browser, process killing and many other interesting features.
Includes general tweaks and hacks which will keep growing
Revisions:
v1.4 *** 2008-07-07
- Created help files.
- Browser: Skyfire fully compatible now, new scan/detection with fail-over paths (if browsers references don't exist in the usual locations like the registry). If default browser timeout is set to zero, the JZ Browser prompt will be bypassed entirely.
- Opera Mini: full-screen, kill JBed option, multiple URL & pasting options.
- Lots of new options for button mapping. All known registry and link file button hacks now integrated to allow virtually any command to be called up. Also provides ability to create a CUSTOM link file from scratch.
- Changed menus to include menu-returns for easy navigation and better user friendliness. Added letters to Action menu as qwerty keyboard shortcuts.
- Phone-specific menu under JZ Settings which expands button mapping for BlackJack II (Samsung i617) CV/MediaNet buttons, as well as, AT&T Tilt (HTC Kaiser) PTT & Long-PTT buttons. More will be added.
- Creation of Start Menu shortcuts & opening of JBed applications w/o needing to open JBed first.
- 3 different methods under JZ Settings > JZ Misc. Options for opening Favorites. Save a Favorite from the JZ Browser script when you pop a link.
- Incorporated VitoCopyPaste with a timeout to return your directional pad action button back to normal.
- Various speed & optimization considerations incorporated.
- Function to deal with MortScript losing focus (e.g. when Home is pressed while Mort choice menu is running).
I would like to add two things:
1) You can limit the memory for jBed and Jeodek:
59#"\Esmertec Java\jbed.exe" -run s2_ -DFile.maxStorageSize=4M
2) Shortcut for Tao Intent:
55#"\Program Files\TAO\jmm.exe" -r"Gmail","Google","Gmail"
I'd like to add a reference to a free icon/resource editor that allows you to create your own set of icons, e.g. for reference in the JBed .lnk files.
Tool Download: http://icofx.ro/downloads.html
Online Help for library creation: http://icofx.ro/tutorials/tutorial4.html
If anyone gets the error: "could not find suite s0..." the solution might be changing the quotation... i mean the "" characters that you copy/paste or write...
Leave the entire command sequence without quotations:
\windows\jbed.exe" -run s0_
That should work!
Hi all.
Tried all above and can't figure it out, "Could not find suite..." error keeps comming
my jbed is located on sd card, path:
\Storage Card\Program Files\Esmertec\Jbed 20090217.5.1R2\jbed.exe
Could it be the jbed location?
You need to check if the suite you access also exists under this number. The numbering is not (immediately) filling gaps that are created when deleting a suite.
V3rt!g(o) said:
Hi all.
Tried all above and can't figure it out, "Could not find suite..." error keeps comming
my jbed is located on sd card, path:
\Storage Card\Program Files\Esmertec\Jbed 20090217.5.1R2\jbed.exe
Could it be the jbed location?
Click to expand...
Click to collapse
Have you ever try?
I've successful to create shortcut :
69#"\Storage Card\Program Files\Esmertec\Jbed 20090217.5.1R2\jbed.exe" -run s1_ ?\windows\ListView.exe, -1
unfortunately, I can't change the icons.