change manila calendar categories? - HD2 General

hi!
I searched the forum for that and found only unanswered theads.
when you create a new appointment in the manila calendar, it only offers me a set of default categories. synced events as well as the basic pocket outlook offer me all I use.
so, how to edit the manila calendar categories? thanks a lot

I think you have to do that from Outlook on your PC. Just add the categories there and they should appear on your phone after sync.

You can use the standard WM6.5 calendar app in the start menu (Outlook>Calendar)
No idea why they overlooked the ability to do this.

yep, I know, I use PocketInformant anyways, but I thought about replacing it with Manila Calendar + MyLife Organized.
too bad that won't happen...maybe we can edit the Lua script?

Looking around the web and forums like the thread "Manila 2.5 Calendar Categories" in this forum there is actually no way to add / remove a category using the HTC Calendar. The only possibility is to use the wm 6.5 calendar as mr_Ray said above.
Maybe there is somewhere a registry key for the build in categories but I didn't found a Tweak yet

Change (patch) manila calendar categories
Hello everyone,
after investigating several hours to find out if it is possible to change the categories provided in HTC calendar, I found a small solution working for me. Perhaps this is a point to start for other coders to write a little app for users which if more comfortable... Here is a summary:
The facts:
- at the moment it is NOT possible to add/delete categories using HTC calendar frontend (HTC Manila Core: v2.5.20184125.1 Artemis ROM 33.1)
- the only option to do this is using the classic calendar frontend (outlook) provided by WM 6.5
- HTC calendar provides out of the box only 4 default categories ("None", "Business", "Holiday", "Personal" and "Seasonal")
- HTC calendar shows other categories (e.g. synced with outlook or created with pocket outlook) correctly but if you edit such an event the category will get lost (will be replaced with "None" when saving an event)
- the categories provided in HTC calendar are hardcoded in the mui-file (Language-Specific Resource File) of HTCAppointment.exe
As the categories are hardcoded it is IMHO improbably that HTC will fix this problem in near future.
Start point for patches:
- the mui-file of HTCAppointment.exe is digitally signed from HTC so that you could not modify the file directly
- using File Editor Suite or delcert it is possible to remove the digital sign from the mui-file
- then the file can be eddied / modified using ResHacker provided in File Editor Suite or Restorator
- HTC did not spend much energy to implement a cleaver algorithm because the categories which are hardcoded in mui-file of HTCAppointment.exe are matched using string-comparison
- so you can change the five default categories to whatever you want, but it is NOT possible to add further categories, as they are referenced from calendar application with a fixed array number
- here is an example: array number 1241 provides category "None" the default; array number 1242 provides "Business" and so on
Proof of concept:
- I removed the digital sign from HTCAppointment.exe.0407.mui
- I changed the five default categories to some others
- I replaced the original mui file with the patched file
- I can select the new categories in HTC-Calendar
- I build a cab-file so that the original mui file can be restored
Startpoint for an application:
- the application must be able to remove the digital sign from the mui-file
- the application must provide a little gui which shows the five categories and offers the possibility to change them
- the application must be able to save the changed values into that mui-file afterwards
--> Coders could start here
Other threads regarding categories from manila 2.5:
- Change Calendar Category so can fully use Multiple Google Calendars
- Manila 2.5 Calendar Categories

Works...
I just tried this... and:
-took me a while before I found the hidden mui file via activesync in the windows folder (show hidden/system files)
-unsign went well as soon as I figured out that the file was readonly
-editing gave no problems. compile string, save etc.
-overwriting a system file in the windows folder did not work. tried to change attributes but that didn't work either. So I tried the CAB idea.
"How To make a .cab file ??" on this forum proposes QuickCab 1.0.zip
Now I have new categories... but there is still a problem: the strings are merged: I have:
Cat 1|Cat 2|Cat 3|Cat 4|Cat 5
Cat 2|Cat 3|Cat 4|Cat 5
Cat 3|Cat 4|Cat 5
Cat 4|Cat 5
Cat 5
I looks like I accidently deleted a string terminator. The only usefull category is the last.
I had used the File Editor Suite - ResHacker.
I did it all over again but now I added a space (char0x20) at the end of each string. Then after saving I bin-edited the mui file to change the 0x20 in 0x00.
wow... finally...

Edit categories
Then after saving I bin-edited the mui file to change the 0x20 in 0x00.
Click to expand...
Click to collapse
How did you make this ? It's very difficult, because the file is in unicode.

Use any hex/bin file editor you like (or type hex editor in google) to restore the deleted null (ascii 0) characters in the mui file that were removed while editing the values in a text-based resource editor.
I used pspad_hex.

dewagter said:
-overwriting a system file in the windows folder did not work. tried to change attributes but that didn't work either. So I tried the CAB idea.
Click to expand...
Click to collapse
I could overwrite the cab file in windows directory but maybe because I used Artemis ROM and not an official ROM....
But as you mentioned the cab idea should work everytime.
dewagter said:
I looks like I accidently deleted a string terminator. The only usefull category is the last.
Click to expand...
Click to collapse
I used a portable version of Restorator (google Restorator 2007 3.70.1747 Portable.exe) which shows the delimiter at the end \0x00. One example for a category in Restorator is "Birthday\0x00"
In this thread I got an answer from a user who pointed out that "all the custom ROMs let you change it under the options without the help of any tool" but Artemis does not allow this for know... and I did not get any answer for my comment on that.

Related

[release] PhoneContacts

This is my first project for PocketPC. It's a simple Contacts replacement with search keypad.
PS: .NET CF 1.1 is required.
16/9/2006
- WM5.0 version added (category filter, contact update, contact delete bugs fixed)
11/9/2006 - 1.1.3.0
- Contacts list loads more faster on large amount of data
- Name filter and back button improved
3/9/2006
- Load Categories bug fixes
14/7/2006
- Added .NET 2.0 version
5/07/2006 - 1.1.2.0
- Added category filter
13/06/2006 - 1.0.1.6
- Some bug fixes
- Added Tools - Save Config
- Added Name [display] format
any screen shots of usage screens and config screens?
tested with which models?
tested with which os? wm5 or 2003se or?
Size of program after install?
It' tested only on O2 XDA mini, WM2003.
can you please upload it here. it says the file is corrupt if i download it. thanks
Here it is...
... moved into the first post
does this work with WM5?
Installed on Qtek 9100 WM 5. It works perfectly.
The only defects are:
When it is exited from the program loses the formulations of the English language and the dimension of the font.
Is not possible to set up the order of reading of the contacts 1°/2° or 2°/1° name.
dborello said:
Installed on Qtek 9100 WM 5. It works perfectly.
The only defects are:
When it is exited from the program loses the formulations of the English language and the dimension of the font.
Is not possible to set up the order of reading of the contacts 1°/2° or 2°/1° name.
Click to expand...
Click to collapse
About configuration(lang, font...): I dont know how program works on WM5. I'll try to correct it as soon as possible and i will add order of reading ( <FN MN LN> and <LN, FN> ).
thanks CDK. ill post it on my blog http://oldsap.blogspot.com
Great job - really. I love it. it works perfectly on my QTEK9100 as posted already. This is one tool which will replace the built in contacts.
Some more suggestions and hints:
- Program loading lasts very long - maybe it is decreasable??
- If i write a name the tool greps for all matches in the first and the last name. That is great. I love it. Is it possible to search also in the middle of the string. Example: Alex and i type lex
- Is it possible to grep not only first and last name but also the other fields which are defined in the Pocket Outlook Object model?
- Is it possible to have more search boxes or filter for the categories?
- Maybe it is possible to have a WM05 compile where for example a context menu pops up with all the selectable categories
- The russian/english problem posted already is also on my device
A lot of requests. Let me know if you find some useful.
Thanx anyway for this great app.
how do you install this? just copy all the files into a folder and run?
topcaser said:
Some more suggestions and hints:
- Program loading lasts very long - maybe it is decreasable??
- If i write a name the tool greps for all matches in the first and the last name. That is great. I love it. Is it possible to search also in the middle of the string. Example: Alex and i type lex
- Is it possible to grep not only first and last name but also the other fields which are defined in the Pocket Outlook Object model?
- Is it possible to have more search boxes or filter for the categories?
- Maybe it is possible to have a WM05 compile where for example a context menu pops up with all the selectable categories
- The russian/english problem posted already is also on my device
Click to expand...
Click to collapse
Ok. I give some explanation. This program is written for my request and with my collaboration. That's why i try to answer some questions and I will post, sometimes, new release.
1. This is .NET :-( Here is a "hide"-feature added to solve (temporary) this problem. I think F.T.D. post here the source code as soon as possible. May be someone rewrite this on native C.
2. May be. But this may be unusable with huge contacts lists...
3 & 4. Describe, please, what you want to see. Perhaps this will be added in the hext releases.
5. ... requires WM5 device... :-(
6. This is corrected and will be posted today (if we understand the problem correctly)
ikkoku said:
how do you install this? just copy all the files into a folder and run?
Click to expand...
Click to collapse
Yes.
topcaser said:
...
- Is it possible to have more search boxes or filter for the categories?
- Maybe it is possible to have a WM05 compile where for example a context menu pops up with all the selectable categories
...
Click to expand...
Click to collapse
I will be VERY appreciate if you show me how to get available categories in system (it might be as well in .NET)
good job
have sudjustion.. i think it's beter to put the keys in ordenary like on the keybord .. it will be faster to tape for users how know where is every key in the keybord
thanks
miky420 said:
good job
have sudjustion.. i think it's beter to put the keys in ordenary like on the keybord .. it will be faster to tape for users how know where is every key in the keybord
thanks
Click to expand...
Click to collapse
I think it will become customizable in the next releases.
For example:
- main file is a list: [picture name=text file (symbols code list)]
- every keyboards are: picture itself and text file with symbols code.
updated. see first post for details.
that's really gr8.... i like it......
is there a way this can work with .net cf2 because i have a .net cf2 loaded rom on my 8125 and when i try to run this it gives me an error
cybiker123 said:
is there a way this can work with .net cf2 because i have a .net cf2 loaded rom on my 8125 and when i try to run this it gives me an error
Click to expand...
Click to collapse
uploaded

[New release] Registry display plugin

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.

Spb Mobile Shell 2 - Calendar Replacement Version 0.02

I made an easy way of replacing the Calendar app in Mobile Shell 2 with your own prefered application. Once you create a shortcut you can switch between the default Calendar and any application of your choosing.
I made it as simple as possible to add your prefered Calendar Manager, I use ThumbCal. As downloaded, the script is setup for ThumbCal, but to change it all you have to do is edit the first 2 lines with a text editor.
LIMITATIONS:
NOW SCREEN support is not currently possible, as this would require a major hack of the Shell Program itself, I am not skilled in that and it would most likely violate licensing anyway. I have searched the registry, and disected the "XML" files, and determined "Now Screen" support will not become available with the the current version of Shell. My appologies.
1) Version 0.02 only changes the application on the "Menu Launcher" screen, and breaks extended menu features such as "Add New Appointment" from the Mobile Shell Menu. Once ThumbCal Supports these extended features from external apps (rumored to take place in next release), I will release a dedicated version for these features.
2) Version 0.02 Does not change the default calendar from the Spb Mobile Shell "Now" screen, this is planned for a later version (under R&D).
For use with SPB Mobile Shell 2 only, for Windows Mobile support see this thread.
MortScript is requied, download it here.
I hope you find this useful!
To use:
1. Download and unpack the ZIP file.
2. Edit the first 2 lines in the MSCR file, notepad works fine for this.
set AltCalendarName, "ThumbCal"
set AltCalendarPath, "\Program Files\ThumbApps\ThumbCal\ThumbCal.exe"
3. Copy to your device, and make a shortcut.
4. Click the shortcut and answer the "Yes or No" question.
5. Repeat step 4 to swap between the two calendar managers!
Change Log:
v0.02: Changed dialog error.
thank you very much
Great idea. Can't wait for this to support the NOW Calendar
Any updates on the next version?
Only update at his time is that I have been very busy this week, and have not had time to research this much. So far it looks as though version 0.01 was not effected by the spb upgrade to v2.1, as it still works after upgrading to 2.1.
Nice job!
Hoping the solutions for Now Screen to come early.
Can I try to use other Calendar apps than ThumbCal?
Hello
First of all:
I Like the work NiteStalker has done (using more off his work).
Anyway, SPB has a little CAB files for integration with PIMs (and yes, also the now screen):
More info: http://clubspb.com/forum/viewtopic.php?t=7794
I didn't test all this program's, but they are from the creators off the software so I think it's worth posting it
I tested it succesfully with my Wizard WM 6.1 with Mobile Shell 2.1 & PocketInformant
As copied from the site:
"
Spb Mobile Shell 2.0 offers an API to third party developers to integrate into Spb Menu and Now Screen.
Integration module for Pocket Informant, Agenda Fusion and Agenda One is available as a separate download.
http://www.spbsoftwarehouse.com/downloads/mobileshell/SpbMenuPlugins.cab
Please download it to your Pocket PC and install to get full support in Spb Menu and Now Screen (<- NOT SUPPORTING NOW SCREEN, sorry for the mistake).
Information about integration with Extreme agenda is here:
Not tested anything off this:
http://www.birdsoft.biz/forums/viewtopic.php?t=663
Download is here:
http://www.birdsoft.biz/spbBirdsoftXA.zip
Even themes are aviable for Extreme Agenda:
http://www.birdsoft.biz/xamsthemes.zip
"
So, there are 3 files:
1 - for Pocket Informant, Agenda Fusion and Agenda One (CAB file)
2 - Extreme agenda (ZIP with EXE files to run on PDA)
3 - Extreme agenda themes (don't know exactly look on site i mentioned above)
I've attached them in this post.
I've played with these, and was unsucessful in integrating the now, even with the ones they claim to support. Please keep us posted about your progress, thanks
NOW SCREEN support is not currently possible, as this would require a major hack of the Shell Program itself, I am not skilled in that and it would most likely violate licensing anyway. I have searched the registry, and disected the "XML" files, and determined "Now Screen" support will not become available with the the current version of Shell. My appologies.
After running the script and clicking on my appointments from SPB MS Its still goes to the outlook calender. WHich is weird because it says that ThumbCal is now my default calender. Ideas?
JukEboXAuDiO said:
After running the script and clicking on my appointments from SPB MS Its still goes to the outlook calender. WHich is weird because it says that ThumbCal is now my default calender. Ideas?
Click to expand...
Click to collapse
Read the first post, and the post just before your post.
aww that sucks. Hmm
[EDIT] Nevermind, found it under the Menu>Organizer>Calendar. See I knew I was dense!
Hey NiteStalker,
I really appreciate your hard work on these Mobile Shell scripts. I have (what seems like) a dumb question.
Since there is no NOW screen support (yes I was able to read that ), what does this script do for Mobile Shell? How would you use it with Mobile Shell?
Sorry if I am a bit dense
Thanks again.
Under organizer>calendar is changed to thumbscal.
should we send a request to SPB ?
because - i'm sure they want informations how to start the app: and which paramter for starting the actual apointment, aso .....#
how can we help whith my knowledge ... ?
any news? Does it work with SPB MS now?
Perhaps interims solution
1. i had installed PocketInformat 2008 Trial-Version.
2. installed the integration module for PI
3. test it in Now Screen
4. copy all files from ../ThumbCal/*.* to ../WebIS/PocketInformant/*.*
5. rename PocketInformant.exe to PocketInformant.exe.alt
6. rename ThumbCal.exe to PocketInformant.exe
hope this helps until another solution is out.
ppcfox
That's an excellent tip and worked fine for me, although I had to rename ThumbCal.exe to PITab.exe to make it work.
I also found that after I'd got ThumbCal into the PocketInformant folder I could then un-install PocketInformant to save some space.
I've found that after installing PocketInformant and the spb cab you can change a couple of keys in the registry to get ThumbCal to run from the Now screen without having to rename the .exe
Set these two keys to the values shown:
\\HKCU\Software\WebIS\PocketInformant\InstallDir = \Program Files\ThumbCal
\\HKLM\Software\Spb Software House\Shared\SpbMenu\Now\Pocket Informant\FileP = ThumbCal.exe

[App] VJBrisk v0.4 - new and improved

Guys,
I've finally gotten around to updating VJBrisk.
See here for info about the old version.
I don't know if anyone uses VJBrisk anymore, but basically it's a small .exe file that can be used to replace another .exe.
eg, If you want to change your Stocks.exe application and make it launch VJEschaton.exe, but Stocks.exe is somehow hardcoded into a skin or application, then rename VJBrisk.exe to Stocks.exe, and drop the new Stocks.exe into the correct folder. VJBrisk will then allow you to launch whatever app you want to, instead of Stocks.exe.
Ok - what's new:
1. People used to have problems with the old VJBrisk.exe if they wanted to replace multiple target applications, as you could only have one VJBrisk per folder.
This is no longer the case.
You can rename VJBrisk.exe to anything you want, and keep multiple copies in a folder.
Eg, say you rename VJBrisk.exe to TomTom.exe.
When you launch TomTom.exe, it will search for TomTomEXE.exe or TomTomLNK.lnk in the target folder, and execute that app.
So VJBrisk will now recognise that you have renamed VJBrisk, and search for [NEW NAME]EXE.exe (for an executable file) or [NEW NAME]LNK.lnk (for a shortcut).
In this way, you can have as many VJBrisks in a folder as you want, each with a custom name and target.
2. VJBrisk will now pass the command line passed to IT, on to the target application. Eg, If Stocks.exe is launched with command line
"Stocks.exe NBC", then VJBrisk will try to launch
"VJBriskEXE.exe NBC".
Note:
To show debug info when checking command lines etc, please rename the VJBrisk.exe file VJDebug.exe. It will then show information about what program and command line parameters it is about to launch.
That's it for now I think. Let me know if it works for you.
Download from my website, or here:
http://vijay555.com/vj/releases/vjbrisk/vjbrisk0.4.cab
Version 0.42 - please replace the exe in the above cab, or just use this exe:
www.vijay555.com/vj/releases/vjbrisk/vjbrisk.exe
[EDIT]
Please remember, you will have to rename shortcuts you used to use with the OLD VJBrisk.exe to VJBriskLNK.lnk, instead of VJTarget.lnk.
Apologies, but that's the cost of the new flexibility of supporting unlimited VJBrisk redirects in the same folder.
[UPDATE]
Version v0.4 has been re-written from scratch.
It now supports a very peculiar "feature" in the OS, where if you "launch" a shortcut (.lnk) file from a shortcut, the redirected shortcut will not launch with its command line parameters. I've sidestepped around this feature so it works as it should.
It's a niche "feature", but some might be effected by this. See VJSipSwitch for details (eg launching VJSipSwitch from a shortcut with command line parameters, and launching THAT shortcut with VJBrisk now works).
As an added bonus, VJBrisk will pass parameters to a shortcut, and also merge parameters from a shortcut to a shortcut before launching the target shortcut.
Trust me, this makes sense when you're on Meth.
Eg.
Eg.
A. Make a shortcut to VJSipSwitch with the command line parameters "key", and call it VJBriskLNK.lnk (Shortcut A)
B. Make a shortcut to VJBrisk.exe with command line parameters "board" (Shortcut B)
Launching Shortcut B will launch VJBrisk, which will merge the parameters "key" and "board" to launch VJSipSwitch with the parameters "keyboard".
V
PS Once again, I repeat what I say on my website. You really don't need this app. But if you do, it might come in handy!
Version History:
v0.3: updated command line redirection and dynamic renaming
v0.4: entirely re-written; parsing of .lnk command line parameters
v0.41: fixed bug in handling of .exe in root folder
v0.42: support VJDebug debug info
It does not work for me.
I've been trying for hours to get Calendar.exe in /Windows
to redirect to PocketInformant
I used to use these instructions. Can you please modify them to fit the new version.
To launch another PIM from TouchFlo 2d from the home tab:
1. Download VJBrisk app (one of Vijay555 tools).
2. Rename VJBrisk to Calendar.exe and the shortcut to your PIM app to (ex. agendaone.lnk) to VJTarget.lnk.
3. Place these two files into \Windows folder.
Guys,
The difference (and advantage) between the old version and the new one is that the new one will (by default) search for
VJBriskEXE.exe or
VJBriskLNK.lnk (for the shortcut to pocket informant).
So rename the shortcut to VJBriskLNK.lnk, not VJTarget.lnk.
Let me know if that doesn't work.
V
No that doesn't work. I get the following error:
VJBrisk can be used to redirect hardcoded .exe and .Ink links.
Couldn't find 'calendarLNK.Ink' or 'calendarEXE.exe'
in the launch directory: '\Windows'
Command Line:
"
Can you help further? or direct me to a copy of v0.1 which did work.
Thanks.
@urbanlibrarian: can you explain exactly what you're doing?
VJBrisk is clearly working - you've renamed VJBrisk to Calendar.exe, and are launching it. The error tells you exactly what you need to do next.
VJBrisk/Calender.exe is now searching for a file called
'calendarLNK.lnk' or 'calendarEXE.exe'.
So Find PocketInformant on your system, and find the relevant .exe file you want to launch. Make a shortcut to it (eg, if it's called PocketInformant.exe, make a shortcut to it called PocketInformant.lnk).
Next rename PocketInformant.lnk to CalendarLNK.lnk, and drop that in your \windows\ folder.
Presto.
Let me know if it works ok.
V
Sorry, may i ask what is the function of this apps?
@bbshk - I tried to explain the first post, and it helps if you read the old VJBrisk thread.
Basically, say you've got the TouchFlo interface, and it's hard coded to launch the standard MS Calendar when you click "calendar". [I'm giving an example, because I don't use the interface, but theoretically follow my example].
Now, say you use Pocket Informant as your calendar - pressing Calendar in TouchFlo is just a pain in the ass, as it doesn't launch Pocket Informant, it launches the MS Calender.
So, you find Calendar.exe in your \windows\ folder, and replace it with VJBrisk.exe (renamed to Calendar.exe).
When you click Calender in TouchFlo, TouchFlo tried to launch the MS Calendar. But instead, it launches VJBrisk.
Now, that's helpful, but VJBrisk alone does nothing.
The next step is to tell VJBrisk to actually launch PocketInformant, achieving your primary goal.
Hence:
TouchFlo -> Press "Calendar" -> Launches Calendar.exe (actually VJBrisk) -> VJBrisk launches Pocket Informant.
So, although it has a very niche use, in some circumstances, it's the easiest way to make some software do what you want it to do.
Search for VJBrisk and get an idea of where it's used in various roms etc.
And remember what I say on my website re VJBrisk:
http://www.vijay555.com/?Releases:VJBrisk
This is very specific in use. You don't need it, I'm sure.
Click to expand...
Click to collapse
V
Very helpful tool for me, Thank you, Vijay555.
I use VJBrisk to lunch shortcuts by gesture in UltimateLunch. UL's gesture supportes only .exe program.
@ufriendxda - glad you like it. I didn't even think of using it like that, good stuff!
V
vijay555 said:
Guys,
I don't know if anyone uses VJBrisk anymore
Click to expand...
Click to collapse
I think alot of us rely heavily on the use of it! I know I do. Thanks for the update!
GREAT APP
Thanx a million this app made me sor happy, thnx to it i could now finich my dev. of the new X1 powerbutton 12 icon Actionscreen with softreset and power off...
thanx...
Thanks for this VJ. However, I have just made an error!
I tried to replace Tasks.exe to launch the SBSHCalendarTasks.exe but it launches Resco Contact Manager.
How do I get it back to launching the basic tasks program? Or what I need to do to launch SBSHCalendarTasks?
Thanks
You should just be able to go into your \windows\ folder and delete tasks.exe (if that was the renamed VJBrisk.exe that you added).
When you "delete" files from the rom, they aren't deleted, they just get replaced with the original rom file. So if you delete the fake tasks.exe, the original tasks.exe should come back.
There's no reason it should be launching Resco unless you told it to do so. Try remove any copies of VJBrisk.exe that you added, find the program you want to launch (SPB Tasks), copy the .exe, rename to Tasks.exe and place in the \windows\ folder.
Let me know how it goes.
V
Thanks VJ, that all worked fine.
However, it appears that I was trying to call the wrong programme!
Let me explain: I wanted to get the 'Tasks' link on the 'Today' page to link to SBSHCalendarTasks. Stupidly I had assumed that the call for the 'Tasks' on the 'Today' page is linked to Tasks.exe!
Anyone know what I should be replacing when the 'Tasks' is clicked on the 'Today' screen?
Regards
VJBrisk and VJ sipswitch won't work in combination.
Hello VJ, have a new one. I want to switch SIP by profile (using PhoneAlarm), but I have to start a.EXE and cannot pass a parameter (by using a LNK or directly at the .EXE invocation.
So VJBrisk seems to be the perfect version to invoke it. I use it already to start other Calender or Tasks (invoked by Manila2D), but it fails to invoke VJ SIPSwitch.
VJBrisk -> SPISWITCH will not work.
Exact steps, which I have done (maybe I made an error)
Created a .lnk file and named it "SipSwitchNullkbLNK.LNK" which invokes "sipswitch nullkb" (nullkb is a SIP). Invoking it directly works well. Now made a copy of VJBrisk.exe and named it SipSwitchNullkb.exe and placed it into same folder. When I start it, I get a VJ SIP messagebox: "SIP not found".
You might have a look on it?
Thank you
keep on
Dejan
Very useful, thanks a lot !
Version 0.4 released
New version:
Version v0.4 has been re-written from scratch.
It now supports a very peculiar "feature" in the OS, where if you "launch" a shortcut (.lnk) file from a shortcut, the redirected shortcut will not launch with its command line parameters. I've sidestepped around this feature so it works as it should.
It's a niche "feature", but some might be effected by this. See VJSipSwitch for details (eg launching VJSipSwitch from a shortcut with command line parameters, and launching THAT shortcut with VJBrisk now works).
As an added bonus, VJBrisk will pass parameters to a shortcut, and also merge parameters from a shortcut to a shortcut before launching the target shortcut.
Trust me, this makes sense when you're on Meth.
Eg.
A. Make a shortcut to VJSipSwitch with the command line parameters "key", and call it VJBriskLNK.lnk (Shortcut A)
B. Make a shortcut to VJBrisk.exe with command line parameters "board" (Shortcut B)
Launching Shortcut B will launch VJBrisk, which will merge the parameters "key" and "board" to launch VJSipSwitch with the parameters "keyboard".
V
I'm having trouble getting this working... I'm trying to use it to redirect manilla2d to open the Google Maps exe on my strage card instead of device memory (as I have an Omnia i910 and device memory is precious!)
I put a copy of vjbrisk.exe in \Program Files\Google Maps, renamed it "GoogleMaps.exe" (which is what is hard coded in Manilla), created a shortcut to the actual GoogleMaps on the storage card, named it "GoogleMapsLNK.lnk", put it in the same directory, but every time I try to access the maps tabs I get an error from vjbrisk saying "Could't find 'GoogleMapsLNK.lnk' or 'GoogleMapsEXE.exe' in the directory '\Program Files\GoogleMaps'". BUT I KNOW THEY ARE THERE, and spelled correctly. What am I missing???
I included an attachment of a screenshot of the "\Program Files\Google Maps\" directory connected through ActiveSync to show you I am not crazy.
Help?
Thanks
@false_apology - did this issue ever get fixed?
Could you email or attach the .exe and .lnk you made so I can have a look at them.
How did you create the .lnk?
V
Hi Vijay, I have been using the original VJBrisk for a while now - it is a really handy tool. Shall update to the new version - looks like a great step forward!
Michael

[App] [Apr-26-09] WM6.5 Plug-in Installer

AppStar Titanium
Plug-in Installer
This program allows chome/titanium plug-in developers to create a cab file that will insert the plug-in's markup into the cpr files depending on the device's resolution and update the registry without overriding any of the user's existing chome/titanium configuration files or settings.
Device Requirements:
1. WM 6.5
2. .Net CF 2.0 or higher
Usage:
First things first, this is a developer only tool that has strict requirements to work properly. It requires a few files to be deployed and files like the plg files are case sensitive. ATPluginInstaller.exe and CESetupDLL.dll can be used for any free, not for profit, chome/Titanium plug-in.
Ok, now onto the fun stuff...
ATPluginInstaller.exe is the program where most of the magic happens. It does a few important things. First, it adds a plug-in name to the registry in "HKEY_LOCAL_MACHINE\Software\Microsoft\CHomelugins" and also inserts the plug-in into the specified location in "HKEY_LOCAL_MACHINE\Software\Microsoft\CHome:ExtensibilityXML" and "DefaultXML". Then it clears all VALUES in "HKEY_LOCAL_MACHINE\Security\CHome\DefaultSettings" to prevent chome from reverting to an old layout. Finally it injects the appropriate markup for the device resolution into each of the Titanium CPR files.
For ATPluginInstaller.exe to know what plug-in and markup to use, it needs a PLG file. A PLG file is basically a pre-defined XML file that includes the name, position, and markup for the plug-in you want to install.
Begining of a sample PLG file:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<plugin>
<name>ATFavePeople</name>
<position>2</position>
<layouts>
<layout screenWidth="240" screenHeight="320">
<!-- ATFavePeople -->
<Layer ID="ATFavePeopleExpanded" Visible="False" Width="240" Height="82" Clip="False">
<Layer ID="Page" Clip="False">
<!-- Icon on upper right -->
<Image ID="Icon" Left="188" Top="-13" Width="43" Height="57" ScaleStyle="Stretch"/>
<!-- Large picture in Center -->
<Image ID="ContactPhoto" Left="10" Top="17" Width="43" Height="43" ScaleStyle="Fit" Clip="False">
<Layer ID="Border2" Color="#FFFFFFFF" Left="-2" Top="-2" Width="90" Height="90" Visible="True"/>
</Image>
(abbreviated to conserve space...)
The root node is "plugin". The three sub-nodes are "name", "position", and "layouts". All nodes must follow case to work with ATPluginInstaller.exe.
The "name" node contains the name of the plug-in you wish to install. It must match the name used in the plug-in markup.
The "position" node specifies where you want the plug-in to be displayed on chome. It is 0 based. Meaning the first spot is 0, the second spot is 1, and so on. If a number greater than the number of currently installed plug-ins is used, then the plug-in will be displayed at the bottom of chome.
The "layouts" node contains all the plug-in markup for the different device resolutions. Each resolution is defined by a "layout" sub-node with two attributes. The attributes are "screenWidth" and "screenHeight" which define what "layout" sub-node to use for each resolution. The "layout" sub-node contains the markup that will be injected into the CPR files. This markup is also case sensative and must follow the case that is used by Microsoft in the default CPR files or the sample attached PLG file.
To install a plug-in, simply call ATPluginInstaller.exe followed by the "-i" parameter and a space and then the PLG file name.
example: ATPluginInstaller.exe -i default.plg
ATPluginInstaller.exe is also uninstall friendly. Just replace "-i" with "-u".
example" ATPluginInstaller.exe -u default.plg
Well that's fine and dandy, but how the hell do I call ATPluginInstaller.exe from my CAB file? That's where a setup DLL comes into play. A setup DLL allows you to execute additional functions after a program is installed and before it is uninstalled. Working with setup DLLs are a pain in the butt because they don't support managed code, only C++. So I've attached CESetupDLL which is a setup dll that does two things:
1. It calls ATPluginInstaller.exe and installs, "-i", default.plg from the folder where the application is deployed to.
2. It calls CHomeRefresh.exe from the folder where the application is deployed to, to update Chome without performing a restart. (I didn't write CHomeRefresh and don't know who did but it works fairly well.)
CESetupDLL also works for CAB uninstall.
To include your CESetupDLL.dll in the INF file (file used to build installation CAB file) you have to add the following string to the [DefaultInstall] section:
CESetupDLL = "CESetupDLL.dll"
You can read more about setup.dlls here:
http://www.pocketpcdn.com/articles/setupdll.html
http://msdn.microsoft.com/en-us/library/aa924308.aspx
That's pretty much it! Remember to pay attention to case, and if you use my CESetupDLL.dll include ATPluginInstaller.exe, default.plg, and CHomeRefresh.exe to your program folder in your CAB.
Feel free to use ATPluginInstaller.exe and CESetupDLL.dll for any free, not for profit, chome/Titanium plug-in. Giving me some credit would be nice too. ;-)
Cool, thanks for this.
Let me make sure of the default.plg file, if I want to include cpr installs for different resolutions, I just add all of them to that one file, correct? Just change the layout screenwidth,screenheight for each new cpr I need to write, for both portrait and landscape. So for vga only, I would have two layout sections, one with screenwidth=480, screenheight=640 and then another layout with screenwidth=640, screenheight=480? If a cpr doesn't exist on device, then it just skips that one and goes to next?
Just wanted to make sure I understood it correctly as I plan on updating titaniumweather this week and wanted to use this.
showaco said:
Cool, thanks for this.
Let me make sure of the default.plg file, if I want to include cpr installs for different resolutions, I just add all of them to that one file, correct? Just change the layout screenwidth,screenheight for each new cpr I need to write, for both portrait and landscape. So for vga only, I would have two layout sections, one with screenwidth=480, screenheight=640 and then another layout with screenwidth=640, screenheight=480? If a cpr doesn't exist on device, then it just skips that one and goes to next?
Just wanted to make sure I understood it correctly as I plan on updating titaniumweather this week and wanted to use this.
Click to expand...
Click to collapse
Yeah, that's pretty much it. All the different resolutions in one file. In your case you would just need two layout nodes for VGA, one for portrait and one for landscape.
I'm working on getting next version of titaniumweather finished up and had a question/request. I noticed that your atplugin installer must be reading the defaultxml for plugin info before inserting and rewriting the default and extensibilityxml values. Is it possible to have it read the extensibilityxml for the info instead? A lot of people only update the extensibiliyxml when adding new panels since thats all that is necessary to show panels and with your current version all those panels are removed from extensibilityxml when atplugin installer runs. I can change it in chome editor to write to both locations, but still doesn't help out with someone that has made there own panels independently.
I've added option in weather to switch layouts using your atplugin app to change layouts for different style of weather icons, works very well to switch them out.
I just double checked and atplugininstaller reads from ExtensibilityXML first. It then injects the plugin name and updates ExtensibililtyXML and DefaultXML to the new value. I don't bother to read DefaultXML, I just override it since they both should be the same anyhow. I can change it to not override DefaultXML if users are having issues with it.
BTW, I'm glad to hear you got it working with additional layouts. I have the same feature in my latest Fave Contacts release. I was worried developers might have trouble because of case sensitivity. I use an XPath query and I'm not quite sure why the powers that be(W3C) decided XPath needs to be forced to case sensitive.
AppStar said:
I just double checked and atplugininstaller reads from ExtensibilityXML first. It then injects the plugin name and updates ExtensibililtyXML and DefaultXML to the new value. I don't bother to read DefaultXML, I just override it since they both should be the same anyhow. I can change it to not override DefaultXML if users are having issues with it.
BTW, I'm glad to hear you got it working with additional layouts. I have the same feature in my latest Fave Contacts release. I was worried developers might have trouble because of case sensitivity. I use an XPath query and I'm not quite sure why the powers that be(W3C) decided XPath needs to be forced to case sensitive.
Click to expand...
Click to collapse
huh, maybe just some weird issue I had going on then. After that first change up, everything after that didn't change my layout anymore. But I also updated chome editor to write to defaultxml too and reset my custom panels in after first change up, so maybe that fixed issue for me.
Yeah, got 4 or 5 different icon sets now, with different .plg files for each since most have different size icons and that was easiest way to have for future icon packs to be added without having to release new weather versions. Working on cab now, had trouble with install at first 'cause I was saving your ATPluginInstaller.exe to a subfolder under installation path, which is location I needed to work with my future addons. Got it sorted now(I think).
Is there a way to specify the CPR's to modify in the .plg file? I have made completely new CPR's for NeoTitanium. Instead of being Titanium_(Resolution).cpr, they are Neo_(Resolution).cpr, M2DNeo_(Resolution).cpr, & BWNeo_(Resolution).cpr. for the different themes. I did this so the user can swtich back and forth from NeoTitanium to Titanium (or the different themes) without uninstalling it.
Thank you soooo much. I am going to try this out.
drkfngthdragnlrd said:
Is there a way to specify the CPR's to modify in the .plg file? I have made completely new CPR's for NeoTitanium. Instead of being Titanium_(Resolution).cpr, they are Neo_(Resolution).cpr, M2DNeo_(Resolution).cpr, & BWNeo_(Resolution).cpr. for the different themes. I did this so the user can swtich back and forth from NeoTitanium to Titanium (or the different themes) without uninstalling it.
Click to expand...
Click to collapse
Hmmm... I was going to pull the CPR file name out of the registry, but decided against it because I didn't have any way of knowing that the PLG file was indeed targeted to that CPR anyhow. Adding a node to the PLG is a good idea. But we need to be very careful with distribution. If users got a hold of your PLGs and tried to use them with a Titanium layout they would not work.
Nice!
Very cool indeed.
Just the thing I'm looking for .
Was currently busy with pre-define cpr file to append at the titanium_(resolution_here).cpr, this surely helps a lot in making that happened.
Thanks!!!!!
I have a BIG question. In your ATFavePeople Cab you have a Setup.dll in the Main root of the cab but you don't talk about that. What is that Setup.dll for? I added the AtpluginInstaller, CESetupdll.dll, default.plg, and CHomeRefresh in the cab. Someone told the cab is unsuccessful when its installed and I can't quite figure out why.
JukEboXAuDiO said:
I have a BIG question. In your ATFavePeople Cab you have a Setup.dll in the Main root of the cab but you don't talk about that. What is that Setup.dll for? I added the AtpluginInstaller, CESetupdll.dll, default.plg, and CHomeRefresh in the cab. Someone told the cab is unsuccessful when its installed and I can't quite figure out why.
Click to expand...
Click to collapse
I replied to your private message but i'll repost here incase others need the info.
Hmmm.. There are a couple things you need to check. Make sure the have the CESetupdll.dll configured properly in your INF file.
To include your CESetupDLL.dll in the INF file (file used to build installation CAB file) you have to add the following string to the [DefaultInstall] section:
CESetupDLL = "CESetupDLL.dll"
Also make sure your cab file is extracting all the files to the same folder.
Just a heads up... I'll be leaving for a business trip tomorrow and won't be back till Monday. I'll get to any questions and/or fixes when I get back. Thanks guys!
SO what do I do about creating a setup.dll file when I don't have a program that can create .dll files.
Can someone tell me where the [Default Install] section is in CE Cab Manager.
AppStar said:
Hmmm... I was going to pull the CPR file name out of the registry, but decided against it because I didn't have any way of knowing that the PLG file was indeed targeted to that CPR anyhow. Adding a node to the PLG is a good idea. But we need to be very careful with distribution. If users got a hold of your PLGs and tried to use them with a Titanium layout they would not work.
Click to expand...
Click to collapse
This is why I was wondering if there was a way to call out a specific cpr file name. That way if the cpr doesn't exist on the "machine", the plg does nothing. Also, in the future on release you'll see a lot more custom named cprs. HTC I know uses their own naming. My smart phone has like 5 different sets of cprs on it.
Do you think there's a way to also include multiple plugins in the default.plg file?
I'm looking for a way to use the PluginInstaller to update existing .cpr default (Clock, Music, Photos, etc.) without messing up any additional/custom plugins people have put in.
Very nice. Thanks
Finally was able to install a plugin made by this installer...
Almost all my *.cpr files were read-only, so the plugin wasnt able to save them and kept giving me the "AtpluginInstaller.exe" error.
Changed them to non read-only with Resco Explorer and all worked fine.
Hi There.
don't know if I'm in the right topic if not I apologize.
I would like to know iif there is way to change the GUID of a "personnale" plugin. It seems that non standard plugin got the same guid, and on some case it makes trouble (I would like to put one of my personnal plugins by default when I press "hang" button).
Thanks

Categories

Resources