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.
Related
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
I have a little project in mind, but would like some input from the pros to cut research time:
Is it possible to "wrap" a Today plugin dll with another, providing a "pass through" for operations (such as screen taps, etc)?
What I'm trying to accomplish is this: Add selectability and other one-handed d-pad operation to an older plugin that is not selectable.
What do you think?
it's possible but the problem is that the plugin have to keep track on what plugins it include and which handles it have to pass to them
could end up big and slow
Rudegar said:
it's possible but the problem is that the plugin have to keep track on what plugins it include and which handles it have to pass to them
could end up big and slow
Click to expand...
Click to collapse
This is specific to a single plugin - it would only keep track of one.
Perhaps plan B would be easier - a plugin that manipulates another plugin. Such that it would "appear" the older plugin was selected, etc. I guess I'd better go study some more...
Actually its really simple.
Any plug-in DLL exports a function called InitCustomItem. In this function the plug-in does all its initialization, and creates its window. The return value is the handle to this window which you can subclass to add functionality.
as for selection, there is a value in the registry for each plug-in (HKLM\Software\Microsoft\Today\Items) which controls whether the system passes selection events to the plug-in or not.
it has three settings:
0 - non selectable, item will be skipped by the system.
1 - Automatic, the system will paint the item and handle selection on / off
2 - Manual, the system will pass the selection event to the item and the item will take care of the rest. In this mode the return value of the WM_ACTION determines whether the selection is moving on. This is good for multiline plug-ins that don't want to give up focus when arrow keys are pressed.
levenum said:
Actually its really simple.
Any plug-in DLL exports a function called InitCustomItem. In this function the plug-in does all its initialization, and creates its window. The return value is the handle to this window which you can subclass to add functionality.
as for selection, there is a value in the registry for each plug-in (HKLM\Software\Microsoft\Today\Items) which controls whether the system passes selection events to the plug-in or not.
it has three settings:
0 - non selectable, item will be skipped by the system.
1 - Automatic, the system will paint the item and handle selection on / off
2 - Manual, the system will pass the selection event to the item and the item will take care of the rest. In this mode the return value of the WM_ACTION determines whether the selection is moving on. This is good for multiline plug-ins that don't want to give up focus when arrow keys are pressed.
Click to expand...
Click to collapse
Hey, thanks for the response! I've set the Selectability registry item for the older plugin, and it's ignoring it - that's what started me on this little project.
I'm a software developer by trade, but not with C++, so I don't want to waste people's time here asking a lot of dumb questions. If you could point me in the right direction on a couple of things, I'll go off and learn:
1. If all I have is a dll and nothing else (no .defs, etc), can I determine all of the functions it exports (other than InitCustomItem)?
2. Process check: My custom plugin's InitCustomItem would call old-plugin's InitCustomItem, snagging old-plug's hwnd. New-plugin would then initialize it's own window - transparent(?) and pass that hwnd back to windows. Also, my custom plugin would pass all messages to old-plugin, etc. Theoretically, old-plug would look and operate like normal?
If this is already written, just sent me the code!
Well I am afraid it will be difficult to do all this without C++. As far as WM based devices are concerned you need to use something that translates in to native code to create system components like the plugins son ,no .NET languages, and embedded VB doesn't do well on anything never that WM 2003 (not even SE), plus I am not sure if you can make DLLs with it at all.
To your questions:
1) There is a tool which comes with VS 6 called Dependency Walker. It shows you what functions a given DLL exports, what it imports from other DLLs and what DLLs it is link to. Woks on EXE files as well.
If you can't get that, download a demo of IDA 5. It's the most powerful disassembler for WM devices out there.
2) Not sure, I never tried anything like that. The thing is, the system resizes the plugins, on initialization (it controls height) and when screen rotation changes so if you pass back HWND for a window other than the one visible, it might cause some problems.
I think what you should do is learn about subclassing. It's when you replace the procedure of an existing window with your own (just replace the function, not create new window). You then get all the messages for that window, you can do what you want and call the original function when you done.
By the way, if you want to learn about writing plugins there is an article with code samples on this site: www.pocketpcdn.com and a lot of other interesting stuff.
Good luck.
What plugin is it? It might be easiest just to rewrite the plugin if you've got the code.
V
levenum said:
Well I am afraid it will be difficult to do all this without C++.
Click to expand...
Click to collapse
I should have been more clear - I am using C++, I'm just have to learn how to program with it first!
vijay555 said:
What plugin is it? It might be easiest just to rewrite the plugin if you've got the code.
V
Click to expand...
Click to collapse
I don't have the old-plugin source code. My little project is to add some sort of d-pad operation to the WeatherPanel plugin, which you're probably familiar with.
Progress: I've written and deployed my first little plugin - based on the source code samples available in the internet.
Next step: In my InitializeCustomItem, I thought I'd try to call WeatherPanel's InitializeCustomItem (instead of creating my own window). Thing is, I don't yet know how to properly link the WeatherPanel dll to my project. As expected, it only exports two functions: InitializeCustomItem and CustomItemOptionsDlgProc (I used dumpbin.exe)
I'll keep plugging away - any input would be appreciated.
Thanks for your help!
It's real easy:
Use LoadLibrary and GetProcAddress functions to call functions in other DLLs without linking them.
levenum said:
It's real easy:
Use LoadLibrary and GetProcAddress functions to call functions in other DLLs without linking them.
Click to expand...
Click to collapse
What a coincidence! My studying led me to the same functions.
From within my plugin's InitializeCustomItem, I was able to successfully load the dll with LoadLibrayl, GepProcAddress of its InitializeCustomeItem (at ordinal 240) and call it. But it whacks the Today screen so that none of the plugins load.
Next I thought I'd try FindWindow and EnumChildWindows to find it and all it's children. Then manipulate them by sending messages...
storyr said:
What a coincidence! My studying led me to the same functions.
From within my plugin's InitializeCustomItem, I was able to successfully load the dll with LoadLibrayl, GepProcAddress of its InitializeCustomeItem (at ordinal 240) and call it. But it whacks the Today screen so that none of the plugins load.
Next I thought I'd try FindWindow and EnumChildWindows to find it and all it's children. Then manipulate them by sending messages...
Click to expand...
Click to collapse
Update: So far, so good. As it turns out, EnumChildWindows doesn't work on the PPC, so I used GetWindow to find the plugin's handle. I can successfully send messages to it and initiate various actions.
Question: I'd like to visually indicate (on the old-plugin) what's being clicked (such as drawing a box around it). Is it possible to draw things outside of my own window?
It is, but it's tricky.
You can always use the GetDC function to retrieve the DC for another window and paint on it, but the problem is that unless you subclass the window you have no way of knowing when it repaints it self and all your changes are erased.
levenum said:
It is, but it's tricky.
You can always use the GetDC function to retrieve the DC for another window and paint on it, but the problem is that unless you subclass the window you have no way of knowing when it repaints it self and all your changes are erased.
Click to expand...
Click to collapse
I tried that exact thing (GetDC) and drew a rectangle in it, but it didn't do anything. I realized the reason was the WM_Paint event wasn't firing on old-plugin, and when it did, my stuff was erased (just like you said).
Next idea - open my own dialog window than overlays old-plug. The entire window needs to be transparent - except for the visual indicators that I position where I want. When the user ok's, I close the window and send the click to old-plugin...
Thanks again for keeping tabs on my progress..
No offence, but with all these rather advanced programming tricks you are attempting just to "sup up" an old weather plugin it looks to me like you would be better off just writing the whole thing from scratch.
It you are familiar with WinInet and / or sockets this should be pretty easy and it will look and work much better than the hack you are attempting now.
Plus you can make it exactly the way you like.
levenum said:
No offence, but with all these rather advanced programming tricks you are attempting just to "sup up" an old weather plugin it looks to me like you would be better off just writing the whole thing from scratch.
It you are familiar with WinInet and / or sockets this should be pretty easy and it will look and work much better than the hack you are attempting now.
Plus you can make it exactly the way you like.
Click to expand...
Click to collapse
No offence taken. I thought of that, but I figured this would be a good way to cut my teeth a little. Once I complete this little project, I may pursue that route...
Question: Do you have a favorite forum (or forums) besides this site that you use for your research/programming questions?
This is my favorite forum
But here are couple more sites I found very valuable:
www.pocketpcdn.com - They have tips and tricks with code examples arranged in categories like how to make MFC dialogs not full screen or the one I used in LVMTime to put the clock back on the taskbar.
www.codeproject.com - It's not specific to WM development but has tons of interesting stuff including entire sources.
You should also check out www.buzdev.net If you're not familiar with the great work of buzz_lightyear you should see some of the stuff he did for this forum like grab_it - the invisible ROM dumper.
OT
Just a quick OT question:
If I would move some of the plugin-dll's from \Windows to \Storage Card, would it be enough to change the adress within the corresponding item in the registry entry HKLM/Software/Microsoft/Today/Items ?
Of course I'm not talking about plugins like tasks a.s.o but rather third party plugins
Cheers
hrb
It won't work.
The problem is that the SD card is mounted too late so if you put the plugins on it they will not be loaded when device boots up.
You can move them to the extended ROM this way or to a folder other than windows but there is no way to move start-up stuff to SD.
Thanks for the help with this "little" project. After many hours, the product is out for beta testing. When it's released, I'll post more info...
Finished!
It's finished. The app is called WP-Pilot and it provides one-handed operation of WeatherPanel. If anyone's interested, it can be found here. Here's how it ended up:
There's a plugin (WP-PilotPlugin.dll) with an options dialog, and an executable (WP-Pilot.exe).
When the plugin gets selected, it looks for Weatherpanel. If it finds it, it fires off WP-Pilot.exe
WP-Pilot.exe opens. It does this stuff:
Look for WeatherPanel, and get it's screen coordinates.
Read the registry and determine which layout file WeatherPanel is using.
Open the layout file and read it: Record the coordinates of each "clickable" item found. This was a real PITA because of Unicode.
Sort the coordinates for left-to-right, top-to-bottom order.
Select the first coordinate and position a tiny window (10x10) at that x-y position.
Draw a "pointer" in the window (the type and color depends on what's selected in the options).
Show the window and process input:
[*]Left/right pressed - selected the next/previous coordinate and move the window to that location.
[*]Up/down pressed - close WP-Pilot and tell the plugin we're done.
[*]Center button pushed:
[*]Send a mouse click to the WeatherPanel plugin at the coordinates
[*]Close WP-Pilot and tell the plugin we're done.
Thanks again for your help!
Ok, most of you may find this totally useless as a plugin, but it was a combination of a request by user Treo_newb and a desire to create a sample plugin project that could be used as a base / example for plugin writers (I plan on doing an article on codeproject.com and this will be the source for it).
What does it do?
This plugin displays a string stored in registry.
The path is:
HKEY_CURRENT_USER\Software\RegDispPlugin
Value name: DisplayString
It checks if this string has changed several times per second when today screen is shown (as the system sends refresh message to all plugins) and displays the updated message if a change occurred.
What is it good for?
First, if you write apps using mortscript or similar like the user who requested this it will let your script display stuff on today screen.
Alternatively it could be used to mark your device today with a string that isn't as easily changed as user info.
The source is basically a skeleton plugin you can use to build your own plugin on (no license / copyright to limit you) and it already has several tricks needed for the plugin to display correctly:
VGA compatibility
Text size matching system settings
Proper header in settings dialog (like on system plugins)
Proper text color when selected (according to theme)
No blinking all today screen on change
Proper resize when switching between landscape and portrait
When I was writing my first plugin I could not find all these little fixes concentrated in a single article so I had to fish for each one as the bug reports came in.
Hope you will find this little project useful.
The plugin:View attachment RegDisplay.CAB
The source (eVC 4 project): View attachment RegDisplay.zip
Thanks for this!
Thank You Lev.
Thanks, Thanks, Thanks,
You are a legend.
I was almost through with my today plugin and was trying to figure out reading registry values and all of a sudden I get a PM from u about the plugin !!!
Very Cool !!!
OK a few questions,
1. I know that WM_TODAYCUSTOM_QUERYREFRESHCACHE is called for refreshing the today plugin, any ideas about when is it called.
I read somewhere that it was 2 seconds. Is it true?
2. I saw ur code and u have exposed CustomItemOptionsDlgProc in RegDisplay.def, but when I installed the cab file the 'options' is not enabled.
I manually changed the resistry and changed options to dword = 1 and saw ur name and email address.
u might want to enable that by default so that people can notice ur work.
I am planing a commercial release of a new project on basis of this.
Thanks again,
Shailesh
First, you're welcome.
shaileshashar:
1) I ran a debug print on this message once on an iPaq 1710 and it seems to be sent several times per second. This could differ from OS to OS or even from device to device, I am not sure.
If you need specifically timed refresh, or you have an event triggered on new data, I suggest using a timer or maybe a thread that will wait on an event. You can refresh your plugin from anywhere in code by calling InvalidateRect with your window handle.
2) I messed up the cab at first, forgetting to add the Options reg value. Then when I went to upload the fix, I couldn't access the site for about an hour (no idea why, I even rebooted the PC to Ubuntu). Should be fixed now, but I will check it later again (I have to go back to XP for that).
Good luck with your program.
Suggestion
levenum said:
First, you're welcome.
shaileshashar:
1) I ran a debug print on this message once on an iPaq 1710 and it seems to be sent several times per second. This could differ from OS to OS or even from device to device, I am not sure.
If you need specifically timed refresh, or you have an event triggered on new data, I suggest using a timer or maybe a thread that will wait on an event. You can refresh your plugin from anywhere in code by calling InvalidateRect with your window handle.
2) I messed up the cab at first, forgetting to add the Options reg value. Then when I went to upload the fix, I couldn't access the site for about an hour (no idea why, I even rebooted the PC to Ubuntu). Should be fixed now, but I will check it later again (I have to go back to XP for that).
Good luck with your program.
Click to expand...
Click to collapse
Thanks for the help, will check the fixed cab.
Also a suggestion:
A custom icon could also be incorporated. You can give a option to load a custom icon next to the text in the today plugin.
I know anybody can modify ur code and do it but still.
Actually, I probably should have mentioned this in the original post but I have no intention of adding options to this thing.
This would only complicate the code and turn it in to an actual app instead of a sample project.
But by all means feel free to make suggestions. If this thing does become popular, when I am done with my other projects (like LVMTopBat) which won't be any time soon (unfortunately) I will release a separate version of this plugin with all kinds of options that can be controlled both by user (form the options dialog) and by other apps through registry.
Maybe things like text alignment, size, bold / Italic / underlined.
P.S.
The reason I put the string this plugin loads under HKEY_CURRENT_USER instead of the HKLM where the rest of the plugin registry resides is because by default the HKEY_LOCAL_MACHINE on WM 5 and higher has a security restriction. For example you can not write to it using RAPI, only by authorized (or signed) app on the device. The HKEY_CURRENT_USER on the other hand is open for all.
levenum said:
P.S.
The reason I put the string this plugin loads under HKEY_CURRENT_USER instead of the HKLM where the rest of the plugin registry resides is because by default the HKEY_LOCAL_MACHINE on WM 5 and higher has a security restriction. For example you can not write to it using RAPI, only by authorized (or signed) app on the device. The HKEY_CURRENT_USER on the other hand is open for all.
Click to expand...
Click to collapse
Thanks for the info, I never knew that.
Thank you so much! This was exactly what I was looking for!
levenum said:
...But by all means feel free to make suggestions.
Click to expand...
Click to collapse
As a frequent mortscript user I think, this great app might be even more usefull, if the string was shown in an "allways on top" message box instead of the today screen. The Today screen might be obscured by other active windows during the scripts runtime and the plugin eats precious today screen estate also while being unused, doesn't it?
In that case (of a standalone application) I would furthermore introduce some kind of termination string (or reg. value) to end the display application.
Code:
- start mortscript
- writes first string to registry
- starts display application (run)
- updates string in registry whenever appropriate
- ...
- writes termination string to registry
-> display applications self-terminates
- ...
- end of mortscript
Honestly, I already do use something comparable with mortscript (employing a conditioned sleepmessage loop and reading from the registry too), but this could be much nicer and more elegant.
Just my 2 cents... What do you think?
I think something like that would be better implemented by the mortsrit program it self.
It could be a function like MessageBox API in windows which you could then command on and off. Having it built in would save precious resources on the device that would be wasted by having an extra app run constantly in background.
This is just my thought though.
I'd suggest contacting the developer of mortscript and discussing it with him.
levenum said:
I think something like that would be better implemented by the mortsrit program it self.
...
I'd suggest contacting the developer of mortscript and discussing it with him.
Click to expand...
Click to collapse
Mort knew about that request and by chance just announced to so.
Thanks anyway.
Hello levenum,
I just joined the community. Reason being, I found your RegDisplay plug-in
You call it a sample project, but the impact is that of an awesome solution.
Great for MortScript, but equally useful in BASIC applications that write
messages to the registry which is show upon screen minimization.
I regret not being a C programmer (mainly BASIC), else I'd love to further
develop this jewel.
Your plug-in runs flawlessly in an iPAQ 210 under WM6 Classic.
Cheers and Respectful Greetings
Robert
CLSID for registry display plugin
What is the CLSID for the Registry Display Plugin? I am going to have to edit the XML file that defines my home screen in order to get the plugin to show up. I am using Facade to control my home screen, and the only plugins that it will show in its list are those currently in use in one of the XML files in the Application Data\Home folder. All other new plugins require editing the XML. Thanks for your help.
levenum said:
Ok, most of you may find this totally useless as a plugin, but it was a combination of a request by user Treo_newb and a desire to create a sample plugin project that could be used as a base / example for plugin writers (I plan on doing an article on codeproject.com and this will be the source for it).
What does it do?
This plugin displays a string stored in registry.
The path is:
HKEY_CURRENT_USER\Software\RegDispPlugin
Value name: DisplayString
It checks if this string has changed several times per second when today screen is shown (as the system sends refresh message to all plugins) and displays the updated message if a change occurred.
What is it good for?
First, if you write apps using mortscript or similar like the user who requested this it will let your script display stuff on today screen.
Alternatively it could be used to mark your device today with a string that isn't as easily changed as user info.
The source is basically a skeleton plugin you can use to build your own plugin on (no license / copyright to limit you) and it already has several tricks needed for the plugin to display correctly:
VGA compatibility
Text size matching system settings
Proper header in settings dialog (like on system plugins)
Proper text color when selected (according to theme)
No blinking all today screen on change
Proper resize when switching between landscape and portrait
When I was writing my first plugin I could not find all these little fixes concentrated in a single article so I had to fish for each one as the bug reports came in.
Hope you will find this little project useful.
The plugin:View attachment 41592
The source (eVC 4 project): View attachment 41583
Click to expand...
Click to collapse
This is great! I was asked if I could write a today screen plug-in for my weather application (http://forum.xda-developers.com/showthread.php?t=445576) - I couldn't since I don't have the skills and I'm writing .NET code - but this is exactly what I needed.
I'm adding support for this plug-in and will of course give credits to you.
just thought i'd share this with you.. been using it and it's really good.
On WinCE platform, there is no taskbar like WM5/6 platform, that's why most of WinCE full
screen applications always partial behind on WM5/6 taskbar at upper of screen, even shift
down one line on WM5/6 platform. Also, even WinCE application had controlled backlight
strength in program, but it won't work on WM5/6 platform. That's a story to be born this
utility.
This NavLoader utility provides environment pre-setup before loading Navigator application,
individual configuration file for your perference to load specific Navigator application.
The features also include WinCE full screen emulation and turn on bluetooth..etc by variety
parameters in configuration file.
From now on, you can set up difference preference for your Navigator application, such Garmin
run on portrait mode and power off PPC when exit Garmin, TomTom run on landscape mode and redirect
all audio to bluetooth earphone, you don't need to setup environment manually before you launch
application.
This utility has been tested on WM5 platform with TomTom 6(PDA), Garmin(PDA), MioMap(PDA),
Finean V2.0(PND), PPG VR-ONE(WinCE PND), If you are interested this utility, you may report your
test result of which applications or bugs for next version information collection.
DOWNLOAD LINK: (this IS freeware)
http://rapidshare.com/files/117823058/MulPurNavLoa11Fre.rar.html
knock yourself out
Build your own sliding app today!
Check out the latest version, AND read the new API Docs. Its a piece of cake making your own slide app. All you need to know is basic MortScript!
---------------------------------
Go to http://www.gslide.mobi
* New cool screenshots and examples on the site!
I am moving the discussions to my GSlide Google group. For queries turn to
I feel i need to to start fresh somewhere I will keep this updated anyway of course.
http://groups.google.se/group/gslide
Last updated with:
0.7
- Many usability improvements. About time you might say, after all the backend stuff
- "Easy access" buttons on the top bar. Implemented using the Faces API of course
- Much improved RSS handeling
- Super easy adding of RSS channels
- Super easy adding/editing of GSlide Settings
- A lot of tweaks here and there
0.6.9
- Super cool update, as always
- Real RSS reader
- Configurable alpha effects for many objects
- Lots of other good under-the-hoddie stuff
0.6.7
- New really cool message overlay feature which is totally configurable. Right sweep the top bar for an example. Why not use it for a preview of images?
- A really cool new Face feature which makes it possible to capture clicks where ever they occur on the screen!
- Much improved code!
- Improved the text viewer so that it expands with text size.
- Ships with a fully functional XML parser in MortScript!
I really need to update the API! I have made many main script functions much easier to access. With all the new features you can really make any kind of app. Not just sliding lists! Because of the Faces feature you can load any image and just create a simple script which tells at which click-coordinates scripts shall run. Check out the onMessageClick.mscr file.
0.6.5
- GSlideAPI.Remote ready! To get things started i made a Wazzup feature where you can download news from the GSlide site.
- Made a nice text viewer sample for the Wazzup context.
- Made a LOT of bug fixes.
- Added a lot of new features for the API. Almost all Context properties are now possible to change at runtime through the super simple script API.
- With all new features your can really create just about any app using GSlide!
The Wazzup feature might need a change of settings. Try to open the context, if it says it cannot connect:
- go to the Settings context
- then to Remote
- then double click on Internet Connection and fill in the name of your internet connection. The default value is "Internet" which usually works.
0.6.3
- Click X/Y positions. You now get the users current X/Y position from the GSlideAPI. This means that you can calculate where the user clicked. If you dont get the point now dont worry, i will soon write about this in the API Ref. But its MAJOR feature!
- You can now have a real fullscreen with no bottom menu if you set <hideBottomPanel> to true in the Context.xml file
0.6
- Optional static top bar with dynamic message text and dynamic background (settopbartext, settopbarimage)
Events supported for the top bar are onClick, onDoubleClick, onSweepRight, onSweepLeft.
- More event handlers are now available through the api such as onApplicationStart and onApplicationExit.
- More very cool things coming soon.
0.5.6
- All new Oxygen skin with much more complete icon set (drawback is total size in kb)
- Communication with GSlide is now xmlrpc standard.
- More possibilities to make adhoc changes to events handlers (onApplicationStart, onApplicationExit, onTapAndHold, onBackTapAndHold, onClick, onDoubleClick, etc).
- Tap and hold support
- Renaming the menues is now possible.
- Right sweep now takes you to the actions (cut and paste etc) as default (really easy to change in the context.xml file. Look for the onSweepRight tag.).
0.5.2
- New "GSlide Settings" Context which makes it easy to set system paths according to your whishes. Switch to the new Settings context and click on the "Contexts" folder. When you click on the different settings here you can input new paths. Dont mess around with paths that look like this: GSlideAPI[paths]... unless you know what your doing.
- Working zip features again.
- A bit reworked skins.
- Uses the latest MortScript beta.
0.5
- GSlide can now read JSON! This means that you can load data from basically any data source, straight from the net.
This could be anything from RSS to stock information or mail accounts.
Contact me through my xda-developers GSlide page for more info until I finish the docs.
- You can now set shortcuts in GSlide to access files or folders in a snap. Super cool feature! Make new shortcuts by selecting any file or folder. Go to the Actions View by choosing "Show Actions". Here simply click on "Create Shortcut". You are now asked if you want to save it in the default location which is the GSlide specific folder used with the Right Sweep. Otherwise you can make a regular shortcut anywhere you wish by selecting a folder.
<-- Sweep = Back
Sweep = Shortcuts -->
0.4.9
Custom file/app icon support
You have to make your own icons though. I put a bunch of ok samples in the Default contexts new Icons folder. to make your own, simply name them with the associated extension (txt.gif or whatever). exe files and lnk files can also have associated icons such as PocketArtist.gif or Opera.gif (it does not need to be gif, any common bitmap format should work...)
0.4.8
New "lock list" function which secures execution of actions.
0.4.7
- New Actions with the same sliding interface as the rest of the app.
- New filter action. Now you can actually open the windows folder, IF you apply the filter first.
- Many fixes and patches.
- A lot better structure of folders and files.
- No need to specify the location of scripts in the context.xml files. (though its still possible).
* When an action is executed, GSlide will automatically redirect to the previous view. It just takes a moment *
0.4.5
- Easier install/config. Checks many more paths automatically.
- Awaited bug fixes
- Much improved Context handling (no restart needed).
- Better sweep functionality.
- Right sweep now opens folders as default.
- Much improved Scripting API.
- New Contexts for changing Volume and Backlight.
- 250 less KB
0.4
- Horizontal sweep support
- More detailed list behaiviour config, per context.
- Support for external, custom, event handlers for:
-- onSweepRight (default, "Open with ZNote")
-- onSweepLeft (default, "Back")
-- onDoubleClick (default, "Open with shell")
IMPORTANT INSTALL NOTE:
All the actions for list behaiviour is set in the context.xml file (GSlide/context/Default/context.xml is standard). The default paths to the MortScript.exe and the different scripts are /Program/GSlide/actions/....
This will probably have to be changed to your local WM5 file system path naming (/Program Files/GSlide/actions/ for UK/US).
To skip the custom actions for double clicks and sweeps and make GSlide operate as usual, just remove the lines:
<scriptEngine>/Program/GSlide/actions/MortScript.exe</scriptEngine>
<onSweepRight>/Program/GSlide/actions/onSweepRight.mscr</onSweepRight>
<onSweepLeft>/Program/GSlide/actions/onSweepLeft.mscr</onSweepLeft>
<onDoubleClick>/Program/GSlide/actions/onDoubleClick.mscr</onDoubleClick>
0.3.9
- I improved the list control with two new settings in the context.xml
<listMaxSpeed>15</listMaxSpeed>
<listMinReleaseSpeed>10</listMinReleaseSpeed>
The first tag sets the max speed when sweeping.
The second tells the list when it should start to scroll away. The higher the value the faster you have to sweep to get it scrolling.
0.3.8
- New and improved actions
0.3.7
- Since a guy had an strange incident with files getting deleted without any clear reason (i have no idea if GSlide was to blame but still...), i have added a bunch of security features:
-- Execution of GSlideAPI scripts will exit at once if GSlide.exe is not running.
-- Folders can not be deleted from the root of Windows. This means for example: \Windows\, \Programs\, \Storage Card\ etc
PLEASE DOWNLOAD THIS RELEASE, just to keep on the safe side.
0.3.6
-Included ZNotepad and a cool new light skin.
-Also added a Refresh directory action.
-Removed some bugs
Have fun sliding
Ciao,
Lars
PS.
GSlide have, at the moment, only QVGA skins... VGA is onthe way. you can of course easily make a new skin yourself if you can't wait
You might have to update the GSlideAPI.mscr file in the /actions/ folder with new system paths...
Hallo Lars. The application still crashes on /windows, photos and so on ! so ..what should i say.... nice but not usefull.
Hi,
please help me out by telling me the number of files in your Photos folder.
And when you say crash, is itan unhandled exception or a GSlide popup?
My best suggestion for large folders at the moment is to keep the row size/icon size small (approx 30x30). this consumes far less RAM.
Thanks for trying it out
I'll let you know if I come up with some other solution.
Ciao,
Lars
i get an unexpected error (think it was from wm6) and the application closes. in photos i have just five 3 mpix pictures. same when i try to open the windows folder.
i uninstalled it and can't tell you more.
thanks man... this is wonderful.
Gslide seems to be moving forward really well.
it'll certainly switch my resco explorer soon
Hmm... Let me see what i can do...
The windows folder is a "No-can-do" folder until i make a new less memory intense scrolling list.
Can you help me by downloading and trying more of the functionality and give me feedback.
On my device it works like a charm
Also tried it on a Qtek 2020i WM2003SE with CF2 and it worked fine.
Ciao
Dont forget to try out the scripting API!
Update 0.3.5.1
Fixed a new Action menu with more thumb-friendly function
Uploaded 16:00 GMT+1, only the GSlide.exe file has changed.
Ciao
the zip file seems empty ...
corrupted upload?
the programs looks promising
t0k0m0k0 said:
the zip file seems empty ...
corrupted upload?
the programs looks promising
Click to expand...
Click to collapse
empty here too...
No files in the zip folder. Would really like to try out this program.
Sorry! Uploaded from my HTC
Let me try again
Now!
The zip should work
Let me know if you have any problems.
Ciao
Please remember to update the paths in the /GSlide/actions/GSlideAPI.mscr file if you get unexpected behaiviour. The file is richly commented (to be written by me anyway ) and is easy to edit.
Ciao,
Lars
PS.
Dont forget to read the small, but growing, "GSlide Developers Guide" in the /actions/ folder
This is simply fantastic!! Thank you for developing another file browser
Requests:
1. Can you make the files seen pick up the associated icon? (obvious)
2. Please make the up directory button only require one tap, I like having to double tap to execute files but not to go up a directory.
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
4.Application needs a name, it only displays “\” as program name in running apps.
5. Have had an error once (I have NETCFv3.5 in the ROM):
Code:
GSlide.exe
ArgumentOutOfRangeException
ArgumentOutOfRangeException
An error message is available for this exception but cannot be displayed because these messages are optional and are not currently installed on this device. Please install ‘NETCFv35.Messages.EN.wm.cab’ for Windows Mobile 5.0 and above or ‘NETCFv35.Messages.EN.cab’ for other platforms. Restart the application to see the message.
at System.Collections.ArrayList.get_Item(Int32 index)
at Scroller.KList.MouseDown(MouseEventArgs e)
at Scroller.ScrollingPane.ScrollingPane_MouseDown(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseDown(MouseEventArgs e)
at System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.ContainerControl.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Form.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
at System.Windows.Forms.Application.Run(Form fm)
at Scroller.Program.Main(String[] args)
Please keep up development
Hi
Thanks for trying out my little app!
Let me help you out a bit,
1. Can you make the files seen pick up the associated icon? (obvious)
- I have tried this, but i think i will place assoc. icons in the skin folders for now. I didnt get the windows icons to work properly.
2. Please make the up directory button only require one tap, I like having to double tap to execute files but not to go up a directory.
- Okidoki, I will make it optional
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
- This is actually my "Select-Zone" feature It is helps you to select items by keeping the list still. The width of this region is set in the context.xml file of each context.
4.Application needs a name, it only displays “\” as program name in running apps.
- Ahh... Fix it i will
5. Have had an error once (I have NETCFv3.5 in the ROM):
- I think i have fixed that problem now. Download the new exe
Ciao
Lars
mysparkle said:
3. I notice sometimes the list stops scrolling right to the end, may want to look into this.
- This is actually my "Select-Zone" feature It is helps you to select items by keeping the list still. The width of this region is set in the context.xml file of each context.
4.Application needs a name, it only displays “\” as program name in running apps.
- Ahh... Fix it i will
Click to expand...
Click to collapse
Looking better
3. What I meant is if the app is run from a shortcut it shows the WM top bar and covers up the up folder icon. It opens in full screen and doesn't appear to do this if you run it from a file explorer (kinda defeats the purpose), any ideas?
4. Still showing "\"
6. Are you able to make the action list scrollable with gestures so I don't have to push the tiny up or down arrows to move through the list?
Still heaps of potential!!
BEWARE!!!!!
Okay, i have NO Idea what just happened but I know i'm pretty pissed off.
I extracted the zip to try gslide out and i decided i'll stick to my previous program. when i tried to delete the folder, it deleted everything but two files. then i was trying to get dynamo 3.2.01 (previous version ran fine) and i went to check a registry key so dynamo would run and before i could go back to my total commander, mortscript came up with a message saying "Deleted!" thinking it deleted remaining files from the gslide folder, i dismissed it. but apparently something somehow deleted just about every file on my storage card! 5 gigs of music, morphgear roms, pictures, BACKUP files, EVERYTHING!!!!
I have no idea what caused this but I wanted to warn everyone that this happened to me and tto be careful. maybe be safe and if you need to delete the gsfolder, take your memory card out and do it from your PC
UPDATE: I believe it has to do something with mortscript. I am using the rom in my sig and it has mortscript cooked in and has a folder of mortscript commands and now it is empty! I'll make sure that chef knows
Nice applications
Trying it now
Hope will work
Thanks
richabi said:
Okay, i have NO Idea what just happened but I know i'm pretty pissed off.
I extracted the zip to try gslide out and i decided i'll stick to my previous program. when i tried to delete the folder, it deleted everything but two files. then i was trying to get dynamo 3.2.01 (previous version ran fine) and i went to check a registry key so dynamo would run and before i could go back to my total commander, mortscript came up with a message saying "Deleted!" thinking it deleted remaining files from the gslide folder, i dismissed it. but apparently something somehow deleted just about every file on my storage card! 5 gigs of music, morphgear roms, pictures, BACKUP files, EVERYTHING!!!!
I have no idea what caused this but I wanted to warn everyone that this happened to me and tto be careful. maybe be safe and if you need to delete the gsfolder, take your memory card out and do it from your PC
UPDATE: I believe it has to do something with mortscript. I am using the rom in my sig and it has mortscript cooked in and has a folder of mortscript commands and now it is empty! I'll make sure that chef knows
Click to expand...
Click to collapse
Scary! I am sorry to hear of your major mishap
I am just wondering what happened?!
GSlide is contained in its root folder without any connections to the outside world except through MortScript. And the MortScript.exe is located in the GSlide folder as well...
I just can not see how deleting the GSlide folder could trigger anything... And GSlide has no MortScript saying just "Deleted!" so the dialog was not from GSlide.
* How, with which app, did you delete the GSlide folder?
* Which two files where left in the GSlide folder after your first delete attempt?
NEW UPDATE:
Did you delete the GSlide folder from within the GSlide app? This could maybe screw up things, and could explain the two locked files as you are basically deleting GSlide in it's own running process... kind of asking it to implode.
This is just a theory of course and does not account for the loss of the other data.
Didn't get the rom/sig thing
Please get back to me asap with help.
Thanks,
Lars