I do a lot of surfing, and i hate side scrolling.
Also the today screen can show so much more in VGA. sigh...... anyone have any ideas?
cheers
It's being worked on by various parties. Still not fully working.
Is the Today screen normally QVGA then? Yikes.
I'm sure I used a Toshiba once at the Tate Gallery that had a VGA today screen. Damn ugly and corrupted to hell, but VGA.
What about with WDA?
V
The device displays in VGA but all of the text and graphics are scaled to be the same size as if they were on a QVGA device.
It means that everything looks nice but you still have the same amount of screen real estate.
I'll have to look into that.
V
Read this vijay http://www.aximsite.com/boards/showthread.php?t=98163
I've got WM5 to switch to VGA mode but none of the icons display properly as we don't have reliable versions of the icon files nor can we work out how WM5 calls the dlls based on resolution as it appears to be different to WM2003SE.
I have a Wizard sat here and if someone can tell me how to rip the dlls I will do it. I'm deperate for a VGA hack for my Exec.
rilot - thanks for the link, an interesting read.
Aren't the WM5 dlls signed now? Would that make a difference when resource editing? Never used a signed device (after the spv) so no idea what I'm talking about.
V
Hi,
check out this thread:
http://www.ppc-welt.info/community/showthread.php?t=76001&page=2
There is an English answer, in which is explained why it is difficult to implement the correct Dlls.
A short summary:
The dlls have to be certified with an privileged certificate, or some dlls won't be loaded.
There is also an explanation how to solve this Problem.
If you want the corrected dlls, answer in the German forum.
Bye,
Dirk
maybe some german member can translate and put it into easy way for us to do the necessary
some snippits translated from bablefish
This is a short explanation over it, why ozVGA reduced on the MDA pro with WM05 functions only to go around inclusive of theoretical solutions around the problems mentioned.
I make on it attentively for everyone for its doing responsible am. I do not take over any warranty all statements made here am correct, and I refer expressly to which I reject any adhesion for the consequences of the practical conversion of the realizations made here.
Who a spelling mistake finds may it keep
Why ozVGA only reduced on the MDA does pro function?
1.WM05 possesses a certificate oriented Security system. Who itself in the detail interested in it can read some in the MSDN over it. I would like to deliver concerning this no extensive explanation. In practice this means to be loaded dll's during the boat procedure is to be certified to have. This is e.g. preventing harming software (viruses etc..) the system to compromise can. In the case of ozVGA this does not lead to it that necessary resources files of the type * 96.dll to be however also loaded. However this does not entail that the MDA on high resolution switches (pure Registry attitude) necessary resources for Icons etc. finds. Thus the appropriate positions on the display remain free, and some programs do not function or only reduced.
= > a certificate on the MDA pro must be installed.
= > all dll's during the boat procedure to be loaded are to be certified, must as privileged.
2.Die of ozVGA provided files of the type * 96.dll can do even if it are certified are only badly used, since they do not make all necessary resources available for WM05. The files of the type * 192.dll which in the majority on the MDA pro in the ROM are present make available resources for the emulation of QVGA on the physical VGA display.
= > WM05 conformal * 96.dll files are needed.
Simplest solution for problem of 1:
The Windows mobile 5,0 SDK of which of Microsoft to be freely downloaded can contains in the file SdkCerts.cab certificates directly on the MDA to be installed to be able. These are intended actually only for the development. One must be conscious over it which one with the installation a back door into the Security system of WM05 tears, since each by the key publicly accessible in the SDK certified DLL or also exe file receives now free entrance to the system now. If the certificates on the MDA are installed, must (correct s.u.) * 96.dll files with the SDKSamplePrivDeveloper.pfx key to be certified. Whom in the rest of the msi Installer of the SDK for any reasons should not assure, can the necessary files also with a Tool like "Lessmsierables" unpack.
Around * the 96.dll now still the in such a way specified will certify files signtool from Microsoft needed. This one finds e.g. in the NET Framework SDK 2,0 which freely with ms to be downloaded can. With the command (here by the example of shellres.96.dll)
signtool sign /f SDKSamplePrivDeveloper.pfx shellres.96.dll
must now the necessary * 96.dll files be certified. Only now these may be copied in \windows the listing of the MDA.
Solution for problem of 2:
I do not know a source for * 96.dll files, therefore am one probably forced these to be provided. Already far above in this Thread published and/or with xda developers available WM05 dll's cannot be used unfortunately directly. To these probably with dump Rome from a WM05 update won files are missing - admits so far to me - certain information to code and data segment. That seems to be the reason for it that these files cannot be certified, and thus only is once useless. It is however possible with the free Tool "resource hacker" all resources the this dll's for the order places to extract and on plate store.
Around itself own * 96.dll to build one needs the Embedded Visual C++ 4,0 as well as the likewise free Windows mobile 3,0 SDK freely placed from ms to the order for pocket PC. Hereby a "simple Windows CE DLL" project (e.g. with the name shellres.96.dll) can be provided automatically. This would have to be only added then appropriate resources, and afterwards the whole to be simply compiled. The result would be then a finished shellres.96.dll which according to upper pattern be only certified must, and from it in \windows the listing can be copied. This file is to the system then after a soft RESET at the disposal.
I times the trouble made yourself and the description volatilely into the English translated. Please postet you times with xda developers.
[ BEGINNING ]
This is translation from German (thx tons luckychild) ton english by felixlein. Because OF the nearly translation, the english
shouldn't correct all the time. Some intelligently more programmer should take this information ton create A free program like
ozVGA.
[ MDA PRO ]
The MDA pro is the (German) t-mobile version OF the HTC Univsal.
[ LET'S GO ]
This text explains you why ozVGA is just working limited on A MDA pro Windows mobile 5 DEVICES and shows you some methods OF
resolution ton avoid thesis of problem.
Roofridge I want ton explain that everyone is himself responsable for his doing. I don't take the guarantee for the validity OF
the content. DO it on your own risk!
Why of does ozVGA is working limited on the MDA pro DEVICE?
[// ] 1. Windows mobile has A certification orientated security system. (Who's interested in CAN READ more RK MSDN about it).
I don't want ton give A complex explaination. The practice experience is that the dll's loaded during the "boat OF the DEVICES"
had tons certificated. This method should avoid painting commodity (f.e. A virus) ton of GET ACCESS ton the system. In the case OF ozVGA it
prevents OF loading the necessary files (* 96.dll). The result is that the MDA pro DEVICE switches into the of bigger resolution
(A just registry CHANGES) find but can't the needed resources and icons. Many position acres left brightly on the display and many
programs doesn't work or work restricted.
= > A certificate had ton in valley LED
= > all dlls which acres loaded while booting had tons zertificated.
[// ] 2. The * 96.dll files which acres in valley LED by ozVGA can't being used even if they GET certificated because they can't
serve all needed resources for Windows mobile 5 (f.e. UMTS logo). The * 192.dll files whose acres the majority on the DEVICES,
provide the resources for the emulation OF QVGA on VGA display. (QVGA=320x240). Windows mobile 5 conform * 96.dll of acres
needed.
[// ] Solution for problem of # 1:
The Windows mobile 5,0 SDK, which CAN downloaded for free RK microsoft.com, contains A file (SdkCerts.cab) which bring
you certificates, whose CAN in valley LED directly on the MDA pro DEVICE ton UNLOCK the security system. Originally it is only
designed ton used for devolopment only. You had tons aware that you create A big gets into the Microsoft designed windows
mobile security system because every from now on every application GET full system ACCESS. If of all certificates of acres in valley LED,
all OTHER * 96.dll had tons certificated with the SDKSamplePrivDeleloper.pfx keys.
[ The msi Installer CAN avoided with A tool "lessmsierables", which CAN extract needed files ]
Ton certificated * 96.dll files you need the Microsoft signtool, which comes with the NET Framework SDK 2,0, whcih CAN
downloaded (thus free) RK microsoft.com.Example: Certification OF the shellres.96.dll into the COMMAND-PROMPTLY:
signtool sign /f SDKSamplePrivDeveloper.pfx shellres.96.dll
After the certification OF all needed dlls, the files CAN ut into the \windows folders RK the MDA pro DEVICE.
[// ] Solution for problem of # 2:
I don't know any SOURCE ton of GET * 96.dll files, thus you acres force ton create thesis by your own. The dlls published RK
xda developers which acres at extraction OF A Rome update can't been used directly. It seems tons A dump Rome. Afaik some code
and DATA segment information of acres MISSINGS. That seems tons the reason that you can't certificate them.
= > use them can't!
But it is possible ton create own DLL files with the free application "resource hacker" by extracting all resources
OF the dump Rome. Ton build own * 96.dll files use the free Embedded Visual C++ 4,0 (evc) and the free Windows mobile SDK 3.0
for pocket PC With it you CAN automatically create A "simple Windows CE DLL" project with the name OF the DLL (f.e.
shellres.96.dll). You just had tons of ADDS all dumprom extracted resources. Now you had ton compile the DLL RK read it had tons
certificated like described above. If you've done it with all DLL files you CAN PUT all into the \windows folders on the MDA
Per DEVICE. After A soft RESET you CAN use the file.
[ end ]
I hope someone wants solve both and serve A free solution. How ton of DO this is explained here by de_luckychild.
I've translated it into english and added some literature and SOURCES. Have fun.
[// ] literature/SOURCES
= > ozVGA Tool
http://oz.sciox.org/
= > WM5 Security system: http://msdn.microsoft.com/smartclie... /wmsecurity.asp
= > resource hacker
http://www.users.on.net/johnson/resourcehacker/
= > NET Framework development
http://msdn.microsoft.com/netframework/
= > dump Rome Dlls (xda devopers)
http://www.ppc welt.info/community/... achmentid=13491
= > Embedded Visual C++ (down load)
http://www.microsoft.com/downloads/... &displaylang=en
= > Some more downloads for dev on wm5
http://msdn.microsoft.com/mobility/... fault.aspx#wm05
hmm, my german is rusty, but my missus is fluent, so I'll get her to translate when she wakes up.
However, it seems Tokamak had the great idea to use the certificate that comes with the SDK to sign the dlls. This means they are recognised by the operating system and used appropriately. There still appears to be a problem with the Today screen due to msim.96.dll.
Great idea... however, it seems the installation is detailed, so I'll wait for the better half..
V
Hi,
the problem was, that the original ozVGA dlls weren't compatible to Windows 5, so we had to find new dlls, which were made for Windows 5 in VGA Mode.
We found an archive in this forum, that contained the necessary dlls. Now several problems occured:
Windows 5 requires special certified dlls, or they won't be loaded. So "Luckychild" had the great idea to certify the dlls with the SDK developer certificate. But the dlls, we found in here, didn't allow to be certified, because some version infos were missing. The next step was to extract all resources from the dlls and to compile new dlls with the correct version infos. The new dlls were able to be certified.
The big problem is, that the SDK Certificate creates a security hole in the windows system. It is advisable to build your own certificate to prevent thos hole.
Bye,
Dirk
Tokamak - so what is the current status? Do you guys have the complete set of dlls yet?
I'm sure you'll get them soon enough either way. Good work you guys!
V
@vijay555
The current state is that all necessary dlls work fine!
I can give you two links:
One link is for the dlls without the certificate and the other link is for the dlls with SDK certificate.
You can try the dlls without the certificate, but have to give up the usage of the msim.96.dll and the shellres.96.dll. These two dlls are responisble for the onScreen keyboard and the symbols in the taskbar.
The other option is that you use the dlls with the certificate. If you go this way you have to install also the SDKcerts.cab (included in the archive). This would create a security hole in your windows system.
There is still a third option we didn't try till now. You create your own privileged certificate and sign the shellres.96.dll and the msim.96.dll with it. This would prevent the security hole I mentioned above.
YOU HAVE TO CONSIDER:
=================
The files in the rar archives are not developed by Microsoft. These files are for the development. If you want to try these files I am not responsible for any damage!
Without the certificate:
http://rapidshare.de/files/7213214/welldone2.rar.html
With the certificate:
http://rapidshare.de/files/7212409/welldone.rar.html
PASSWORD: 4ppc
ozVGA:
http://oz.sciox.org/
ok, it does work, and it didnt nail my jasjar, its very high res!!!!!!!!
pics comming shortly, just installing soti and rebooting
heres resco explorer
I choose the with a certificate rar
this is very impressive. there's still some quirks around with oversized fonts here and there, but hey what a step in the right direction this is
Application instructions
How straight-forward was it to apply this? Is the icon issue resolved? I have downloaded the rar but not sure what to do next. Could you kindly tell us step by step instructions?
Thanks.
all the files from the rar into the \windows folder
then ran SdkCerts.cab
then i put oZvga into a temp folder and pressed the ozVGA button, JJ rebooted and all was didy size
most icons were fine
i must confess, i have now changed back, messenger refused to startup as did Pocket MSN, so odds are all MS signed apps will not run, bit of a pity but what an amazing start!!!!!
yay!! we have a good start.....
Hi All,
The limit has been exceeded for the dl of the cert file.
Could some one either send me the file or pass me a link.
TIA
Related
Whenever an application appeals to us we just go ahead and fooooooo install it :!:
Very few research and at least view those files within the .cab file and know exactly how does the insallation work and what files get trfd to the device!!
Apparently some .cab files after get installed don't have an "Uninstall" string within the registry -which sucks huh :?:
Some apps could be removed by editing few lines within the registry under [HKLM\SOFTWARE\MICROSOFT\APPS\....] (the dots are for the various apps)
Even if some files do get uninstalled, the remaining files should be MANUALLY removed and some reg clean-up should be carried out for a stream lined system :wink:
Win CE needs some enhancement and if not we need to override.
I say to all those brillient programers, whenever coming up with new apps or even developing existing ones, please consider the "Uninstallation" part and a perfect clean-up :wink:
Thumbs up for all wince programers...
Most of us are already aware that PPC and smartphone edition are similar enough to be mostly compatible in their apps across the platforms.
That is, with enough coaxing and the help of input simulators like SPHelper, I've managed to run almost any Pocket PC app on a smartphone device.
Well, until now.
I've officialy run into my first brick wall of sorts, and I'm hoping someone here can shed some light onto the situation.
Since the MS implementation of A2DP has quality issues, I'm trying to run MSI Blueplayer app ( found at http://cweb.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=619&kind=8) on a smartphone.
Analyzing the cab, I extracted 4 .dll's that go in the \windows dir (msibtstk.dll, msibtapi.dll, CHS.dll and TW.dll), and two .exe program files that go in program files\msi\blueplayer (STLoader.exe, and MPOBCE.exe).
Now, normally its as simple as running the .exe, at least it always has been in the past.
However, every time I hit MPOBCE.exe, all I get is:
"Alert
Can't find MPOBCE or one of its components. Make sure the path and filename are correct and that all the required libraries are available."
Just to control this experiment, I copied the exact same files over to a PPC device and ran it to find that it DOES work.
Now, I've never encountered PPC specific code before- in fact, I didn't even know such a thing was possible. Has anyone see/heard of this sort of thing before?
Can someone help me take this apart and find out what makes it work on a PPC only? Perhaps a PPC-specific path (if there is such a thing)?
At this point, as much as I'd like to get this working, I'm just as much intellectually curious as to what would cause a program to only operate on a PPC installation.
Hello Dishe.
Your problem is simple: Certain DLLs that come built in Pocket PC version of windows mobile do not exist in the Smartphone version. An example is MFC DLLs.
What you need to do is get hold of 'dependency walker' which is a neat little app that MS incorporated in to VS 6 (though I understand it was written by an independent developer and should be available separately).
It will show you exactly which DLL files each exe is linked to. You then have to get a good copy (from a ROM dump) of the needed DLL and put it in windows directory.
Hope this helps.
That's a great idea. Thanks! I never heard of the dependency walker before, but it sounds like a perfect tool for this. I'll have to check it out on my office computer (I don't have VS 6 at home).
I wont be back in my office until wed., so if anyone had a bit of spare time, I'll attach the files here for someone to examine.
If anyone wants to look into it and tell me what dll's are required, I can get ahold of them from a healthy Pocket PC image.
Thanks!
This zip file has the two .exe's contained in the installation. I think only mpobce.exe is complaining about missing components, though.
Oops, apparently I should have checked first...
Dependency Walker is a free app. I downloaded it and tried it out.
It lists a bunch of .dll's, most of which I had on smartphone.
However, the two missing ones are:
mfcce300.dll
olece300.dll
Now, I'm not exactly sure what these do, so I need to look into it some more. Does anyone have any clue what these are for? If I copy them from a Pocket PC, will they operate on a smartphone?
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
levenum said:
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
Click to expand...
Click to collapse
Thanks for the help, I'm realizing there's a lot more to this I should have known before embarking on such a task. I've never had such a problem doing this before, I guess MFC isn't so popular!
Anyway, I need a good ROM dump, I haven't been able to aquire one. In the mean time I tried some files I found searching google... didn't expect it to work, but tried it anyway. Still complained of missing files- you're right, I'll bet MFC is calling more dll's as well that I need.
Perhaps there's hope...
You were right... I just needed more .dlls!
I found a whole series of .dlls required by mfcce300.dll that my smartphone was missing, so I put them all in the program directory and it opened!
Problem is, its not so stable... the files were pulled from a ce.net-4.1 set of files since I don't have access to a wm5 rom image.
One more thong I should have thought about earlier:
Some COM dlls, maybe even olece300.dll have a function called DllRegisterServer that writes them to registry as COM provider (under HKCR\CLSID).
Check to see if I am right using Dep. Walker and if so try to get regsvr32.exe or something similar for the PPC. (On a PC you use regsvr32 somedll.dll to register a COM server)
This may help with stability issue.
New version V11 of C# IDE Mobile (MAJOR IMPROVEMENTS)
C# IDE Mobile is an application (totally free) that I've developed to be able to develop with C#/.NET2CF directly on the Pocket PC-Windows Mobile 5/6 (it doesn't require the .NET SDK, you don't need a desktop computer).
You can download the new version at:
http://www.geocities.com/hrowson/wm5_software/index.htm
or from my personal page:
http://www.geocities.com/hrowson/index.htm
MAJOR IMPROVEMENTS: This version includes a Windows Form Designer which greatly helps in creating your application's user interfaces. This designer is available in C# IDE Mobile via the menu "Tools/UserPlugin/ControlEditor" (and therefore works directly on the PPC). This greatly reduces the amount of written code for the application and allows getting a GUI very quickly (a few clicks)
This designer (free, like C# IDE Mobile) is developed by Jean and an introduction/presentation (although in French, but has some pictures to illustrate) is available here:
http://pagesperso-orange.fr/asnora/Control Editor/Control Editor.htm
This new version mainly adds the following improvements:
- Included new Windows Forms Designer (yes, you can a Windows Form designer usable directly on the PPC) developed by Jean (http://pagesperso-orange.fr/asnora/Control Editor/Control Editor.htm)
- Added support for compiled User Plugins (DLL instead of css)
- Added replacement File Dialog for smartphones on which the default .NET2CF FileDialog DLL is missing (this seems to be the case sometimes)
- Corrected issue with "Format document"
- Added support for user DLLs: You can now place your own CF DLLs (generated with Visual Studio for example) in the "UserDLLs" folder and call your functions within them (you can create your API for example in a native CF DLL and call these functions from your C# IDE Mobile code)
Harvey
Just some infos....
Hi,
In fact there's a translation on Jean's Web Site for the Form Designer and also I corrected a minor issue with the autatic code formatting (there was an ASSERT in there, but you just needed to say "ignore" to the debug dialog, so it doesn't really matter, the version is now V11b).
Harvey
Great tool! Thanks.
Microsoft assemblies
This is certainly a very interesting tool and probably will keep me happily busy!! But I seem to have a problem that I cannot find relative info: I'm trying to access the camera through the Microsoft.WindowsMobile.Forms.CameraCaptureDialog class, but the type cannon be resolved. I have verified that the appropriate GAC dll exists in the Windows directory. I cannot find the class/assembly in the MS.NETCF index either.
Any hints?
Thank you!
ps. I'm on a kaiser with CF 3.5 and Schap's WM6.1 Beta Rom.
nicely done sir
Hi,
Sorry, I've only just seen the post about Microsoft.WindowsMobile.Forms.CameraCaptureDialog. As I post on a few forums I don't always see answers that come a long time after the posts, that's why I leave my email easily accessible on the web site... don't worry about emailing me, I'm not planning on building a "spam" database...
I'll look quickly, there's also a similar problem with DataGrid it seems. I think these are both the same problem and should be sorted out quite easily.
Harvey
Here is what I'd like to do: I'd like to use Samsung Omnia 2's default Contact Manager with my other WM phone. So I copied the Omnia 2's contact manager program in the \Windows folder (SECContact.exe) to my other WM phone and tried to run it. But it only gives me a black screen.
I know you probably should install an app rather than copy the .exe file, but since it's only a single-file program, I was hoping this would work.
Is there any way to make this work? I really like Samsung Omnia 2's contact manager and calendar apps.
i dont know what wm phone youre trying but there are extracted samsung app in cab files floating around on modaco forum. that calendar is called touch calendar.. google search it
screwdriv said:
i dont know what wm phone youre trying but there are extracted samsung app in cab files floating around on modaco forum. that calendar is called touch calendar.. google search it
Click to expand...
Click to collapse
I'm trying to extract the calendar and contact apps.
Yes, I've seen them at Modaco.
But the problem is, they are not in CAB format. They are in just zipped files to be used when creating a custom ROM.
Is there an easy way to create an installable CAB file from these extracted files?
You got a black screen cos You didn't copy the corresponding DLL file(s) also. The ZIP files are not always for ROM creation, sometimes they are just for copying. And if You didn't find i8000 contact manager and calendar CABs, You didn't search enough, sorry.
For CAB file creation search for WinCECabManager.
If you have a PC with a Microsoft development environment on it, you can use the command DUMPBIN /ALL SECContact.exe to dump out the program's import table, which contains a list of the DLLs the program requires.
If you use a Borland/Embarcadero development setup, Rad Studio, Delphi, C++ Cuilder etc., TDUMP does a similar job.
If it has been written in .NET use Red Gate's .NET Reflector to open it up and see the address spaces it requires.
aiiro said:
You got a black screen cos You didn't copy the corresponding DLL file(s) also. The ZIP files are not always for ROM creation, sometimes they are just for copying. And if You didn't find i8000 contact manager and calendar CABs, You didn't search enough, sorry.
For CAB file creation search for WinCECabManager.
Click to expand...
Click to collapse
Well, I did get the i8000 contact manager and calendar apps from Modaco, but they result in the same black screen also.
http://windows.modaco.com/topic/298414-cabs-repository/
Is it possible that these apps are supposed to work only on Samsung phones from the beginning? It's conceivable that these apps check the device first and decide to operate or not based on the device.
stephj said:
If you have a PC with a Microsoft development environment on it, you can use the command DUMPBIN /ALL SECContact.exe to dump out the program's import table, which contains a list of the DLLs the program requires.
If you use a Borland/Embarcadero development setup, Rad Studio, Delphi, C++ Cuilder etc., TDUMP does a similar job.
Click to expand...
Click to collapse
You do NOT need these development environments to examine native apps, you simply need CFF Explorer, and the best is, it costs nothing because it is freeware!
Why do low-level actions on .exe analysis if probably the packaging on the donor device has done already all you need? A rough workflow could be:
Get the .nbh from the donor device
dump it with e.g. OS Builder
identify the package with the application you need
You could also pick it from a kitchen for the donor device.
It will require effort to analyze the dependencies (.rgu, .provxml) and linked .dll.
In general there are apps that are easy to get and others are difficult, no simple rule here.
@jwoegerbauer Good point!
CFF Explorer is a nifty bit of work for a freeware program.
Click on the Dependency Walker tree entry to see what the program requires.
My view of the things
tobbbie said:
Why do low-level actions on .exe analysis if probably the packaging on the donor device has done already all you need?
Click to expand...
Click to collapse
An .EXE (always by default) relies on COREDLL.DLL, regardless the .EXE is written either in managed or in native code, but COREDLL.DLL is not COREDLL.DLL. It is alone OEM's decision what functionality to pack into device's COREDLL.DLL . Means which API-functions COREDLL.DLL exports.
This also is known as OS's license level. For a core version, i.e small function range, OEM (actually) has to pay Microsoft a license fee of $3 USD, a pro version, i.e full function range, (actually) costs $16 USD.
This in mind, you first of all always have to compare the unit's COREDLL.DLL's export table and the .EXE's import table, if an .EXE will not run, hereby mostly reporting an error like "components missing".
Resume: Only if you find the APIs imported by .EXE in COREDLL.DLL's export table, the .EXE runs.
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
antdavison said:
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
Click to expand...
Click to collapse
Adding an SD-Autorun feature to your GPS (which is running WinCE 6.0) indeed makes sense, because the app you start via "Autorun" simply overlaps default app as was intended by OEM. Means, it doesn't hurt anything.
Now to your questions:
1. ceSD2577.exe (extracted from MioPocket 4.0 FV package) must be installed on your GPS's nandflash in <nandflash-folder>.
2. With a Windows registry editor ( use CeRegEditor ) you simply import to your GPS's registry a .REG-file you created with Notepad with contents as following:
Code:
Windows Registry Editor Version 5.00
[COLOR="Red"]<-CR Carriage Return[/COLOR]
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\init]
"Launch255"="<nandflash-folder>\ceSD2577.exe" [COLOR="Red"] <- <nandflash-folder> here is placeholder for the folder you created[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
3. On SD-card in its root create folder 2577, and put there the package containing "Autorun.exe","Autorun.mscr" & Mortscript.exe
4. If SD-card is left in GPS, everytime GPS is booted and SD-card gets initialzed, then Autorun.exe present in folder \2577 of SD-card will be executed.
thank you so much
for taking time to reply soooo quickly ... i did not really understand the launch and dependency indices, but your MP4fv code was, and suggested regedit will, be very useful ...
check out my raster maps on youtube if you have time ... new zealand government have just released hi-res (< 1m) aerial orthophotos for 95% of the country for the cost of the hard drive they send it to you on, so could be porting these to iGo Primo for years
thanks again, I am very grateful
works flawlessly, you are a genius ... thank you
the OEM menu is now totally invisible until i exit iGoPrimo
just need to make some matching green-theme splash screens for power up and iGoPrimo loading screen, and my life will be perfect
so i am looking for some "green theme" Apical menu bitmaps, the menu looks like the attached image
the 800x480 menu files i am looking for are
residentflash2-bin-Main-Fore2-*.bmp
residentflash2-bin-Main-Animate2-*.bmp
residentflash2-bin-Main-MainLayer2-*.bmp
and maybe any *.ini file relating to GPSAni*.bmp
mine (AT12/atlasVI) are all archived into a single *.bin file, which i cannot unarchive, but in earlier versions of this shell (maybe AT10/atlasV), they are separate files ... these files will give me enough menu elements to make some matching splash screens for power-on and igoPrimo load .... i don't need to modify the apical menu itself
davison[dot]antony[at]gmail[dot]com
----
hi-res aerial orthophotos in igoPrimo (150km x 130km area, <1m per pixel resolution)
youtube[dot]com/watch?v=urX3rERYZf4
understanding the launch and dependancy indices
from
austech[dot]info/gps/31080-gps-launching-program-6.html
source is
blogs[dot]msdn[dot]com/b/mikehall/archive/2007/01/04/ce-6-0-booting-processes-with-command-line-options.aspx
==================================================================================
CE based devices have a couple of options for booting applications at startup.
1. The Registry.
The first option is to use the registry to launch processes during the boot process of the device, the registry key for launching applications is HKEY_LOCAL_MACHINE\Init - the registry approach has a couple of drawbacks - the first issue is that there is a dependency chain within the boot process, processes are started and need to signal back to the o/s that the process has launched (using the SignalStarted API) so that other dependent processes can also start - here's how this looks in a snippet from a device registry.
[HKEY_LOCAL_MACHINE\init]
"Launch20"="device.dll"
"Depend20"=hex:0a,00
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
Take a look at the "Launch50" line, this launches "explorer.exe", the standard Windows CE shell that looks somewhat similar to the Windows desktop shell - The Explorer process has dependencies on hex:14 (20 decimal) and hex:1e (30 decimal), this maps directly to the Launch20 and Launch30 processes - explorer.exe will not be started until the processes associated with Launch20 and Launch30 are started and have signaled the o/s that that have started, an application started through the registry must call SignalStarted to allow any dependent applications to also launch - an application launched through the registry gets its launch number (50 in the case of the Explorer shell) passed as a command line parameter - this is of course passed as a string, not a number, the SignalStarted API needs to pass a DWORD value as its parameter, so a process would use SignalStarted similar to the following.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// Do some work here...
SignalStarted(_wtol(lpCmdLine));
The second drawback is that processes launched through the HKLM\init registry key cannot be passed any additional command line options beyond the launch key value which is then passed to SignalStarted by the launched application.
2. Startup Folder
The second option is to drop your application (or a shortcut to an application) in the operating system Startup folder (this is only implemented in the Windows Explorer shell) - The code that walks the Startup folder looking for processes to start can be found here - C:\WINCE600\PUBLIC\SHELL\OAK\HPC\EXPLORER\MAIN\exp lorer.cpp - take a look at the ProcessStartupFolder() function, it should be fairly easy to lift this code and implement your own startup folder code.
The advantage of using the Startup folder is that the applications don't need to know about the boot sequence of the o/s, don't need to be aware of the launch dependency chain, and could (if a shortcut is used) be passed command line options.
The downside of using the Startup folder is that all processes within the startup folder are launched at the same time - there isn't a dependency chain, or time delta betweeen processes launching - this could be an issue in some circumstances - let me give you an example - you may want to boot a CE device image and then connect to that device image from VS 2005 (so you can deploy/debug some managed or native applications), if you were to launch ConManClient2 and CmAccept from the startup folder you would have three minutes to configure VS 2005 with the correct IP address and then connect VS 2005 to the device - you might want to delay the launch of ConmanClient2 and CmAccept until the device has a valid and active IP address.
3. (did I say there were a couple of options?) SvcStart Services Sample.
John Spaith posted on the launch issue back in December 2004 - John wrote a sample called SVCSTART whose sole purpose in life is to start other applications with a delay period that can be configured through the registry - this sample was initially added to the CE product back at CE 4.1 and is still available today in CE 6.0 - C:\WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\SERVICES\SV CSTART - it could be a little fiddly to get this built/added to your o/s image if you are just getting started with CE 6.0 development.
4. Project Socrates - AutoLaunch
To assist students taking part in the ImagineCup 2007 competition (and also to make it easier for any developer to launch applications on their device with delay, command line options, and also waiting until the device has a valid IP address) Jim Wilson and I have developed a simple application called AutoLaunch - the AutoLaunch application comes in a handy Sub-Project form so can easily be added to an existing CE 6.0 workspace. The functionality is similar to the SvcStart sample written by John Spaith but does have a couple of minor differences - the first is that the AutoLaunch program is launched through the HKLM\Init registry keys (much like any typical startup process) - the registry keys for adding AutoLaunch to the startup sequence are included in the sub-project .reg file, so you don't need to worry about this.
The second difference is that the AutoLaunch process waits until the device has a valid IP address before launching any processes - the reason why this is useful is that we wanted students to use their reference boards without needing a second monitor, keyboard or mouse (in effect the device is booting headless even though the CE desktop or launch application is being displayed) - in this case we want to launch the CE Remote Display application (CERdisp.exe) on the device with the command line "-c" (connect) which then broadcasts the device IP address/name to a listening desktop CE Remote Display application.
The CE Remote Display application can be found in the CE 6.0 catalog by searching for "cerdisp", the SYSGEN for the component is (strangely enough) SYSGEN_CERDISP. The desktop CE Remote Display application can be found here - C:\WINCE600\PUBLIC\COMMON\OAK\BIN\I386\cerhost.exe [NOTE: The CE Remote Display application is not the same as RDP/Remote Desktop, although RDP is supported as a client side application on CE 6.0 (SYSGEN_RDP)].
In the sample below we're launching the CE device side Remote Display application (cerdisp) with the command line "-c" to start connected, with a timeout of 0x1388 (5000ms, 5 seconds), and also starting the CE command prompt (cmd.exe) with a delay of 0x1f40 (8000ms, 8 seconds) - it would of course be trivial to also add ConmanClient2 and CmAccept to the launch process list.
[HKEY_LOCAL_MACHINE\Startup]
"Process1"="cerdisp -c"
"Process1Delay"=dword:00001388
"Process2"="cmd"
"Process2Delay"=dword:00001f40
Here's how the desktop CERHost.exe application looks when the device boots and runs the "cerdisp -c" command - notice the name of the device and the device IP address are both displayed in the Remote Host application (the IP address being displayed here is very useful for plugging into the VS 2005 Device Properties dialog!).
And to round off the blog post here's the Remote Display application running on my Vista desktop showing the CE 6.0 desktop - note that I can now use my desktop mouse and keyboard to remotely control the CE 6.0 device!
Using AutoLaunch and the CE Remote Display for hands on labs/training that use reference boards instead of the Device Emulator may be quite useful!
antdavison said:
works flawlessly, you are a genius ... thank you
Click to expand...
Click to collapse
Glad to hear this. Thank you.