[HowTo][JMLToday] How to create a skin for JMLToday v6.00 - Windows Mobile Apps and Games

<<< How to create your own Skin for JMLToday v6.00 >>>​!!! UNDER CONSTRUCTION !!!​
Intro:
Hello World - You like the funktions of JMLToday, but you would like to chance its appearance?
Then you are at the right Thread! Here you can learn how to change Icons, their function, add some new Funtions, change languages and much more!
JMLToday is concepted to be FULL CUSTOMIZEABLE as far as Windows Titanium allows you
Take some time (you will need to have some) and a lot of Ideas and mix them together with your learnt Basics here out of this thread to create YOUR OWN SKIN!
Feel free to Post your Ideas / Questions / Screenshots / Thanks / and other useful stuff!
So let's start customizing!
Overview:
This Post: Basics about JMLToday
2nd Post: How to change Background / WeatherIcons / TodayIcons / JMLPictures
3rd Post: How to change Positions of Icons
4th Post: How to change the Action of Icons / Buttons / Softkeys
5th Post: Commands / available Attributes / aso. for creating a new skin
6th Post: Creating a brand new skin
Basic Folder Structure of JMLToday:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Here is an explanation of folders and their functions:
JMLToday:
Here you can find all Tools (JML[...].exe) which make JMLToday possible. They all are doing the work (like updating registry / building pictures / aso.) for JMLToday and are running in Backgound.
For more Information about JMLTools you schould read this Post: >>> JMLTools <<<
In this Folder there are also all .mnu and .xmu files stored.
.mnu files are "old styled" Menus if you click a defined Icon of JMLToday
.xmu files are "new Sense styled" Menus if you click a defined Icon of JMLToday
Read more about JMLMenuSense and how to create custom Menus here: >>> JMLMenuSense <<<
The last file of this folder you should heard about is JMLToday.ini
Code:
[SIZE="3"]
[RunAt]
enable=1
time=07:00
every=120
endTime=21:00
pgm=%JMLTODAY%\JMLMeteo.exe;-jmltoday
[Email]
account=ActiveSync
[Hook]
Screen=1
[Offsets]
New York=-6:00
Moscou=3:30
[/SIZE]
This .ini file controls: AutoUpdate [RunAt]; defaultEmailAccount ; FullscreenMode [Hook] and Time Offsets [Offsets]
[B][U]lang:[/U][/B]
[IMG]http://img132.imageshack.us/img132/9964/contentlangfolder.png[/IMG]
Here are all language translation files stored. One .ini for each language. You can add one in your language if you want - you only have to translate like this:
[CODE][SIZE="3"]
[...]
Parameters=Parameters
CONTACTS=Translation of "CONTACTS" in your preferred language
TASKS=And the same here for "TASKS"
Program=...
[... and so on ...]
[/SIZE][/CODE]
[QUOTE]
[!] Don't change the english description before "=" or correct capital Letters - If you change those the translation won't work!
[!] If you have created a new lang.ini in your language please send it to JMLToday_Team so it can be implemented in updated Versions!
[/QUOTE]
In folder lang is also a [B]Ephemeride2011.fr[/B] existent. This file has to end with your language shoutcut like Ephemeride2011.de or Ephemeride2011.it.
Here you can enter all your birthdays / events / aso. for the whole year. They will be displayed in the left top Corner of JMLToday View under the current date.
[CODE][SIZE="3"]
31/12 New Year's Eve
30/12 Mom
29/12 Dad
28/12 ...
[... and so on ...]
[/SIZE][/CODE]
[QUOTE]
[!] One day per line!
[!] Keep format: Day/Month Event (there's a Tab between Month and Event)!
[!] You have to make a list for every new year!
[/QUOTE]
[B][U]skin:[/U][/B]
In this folder there are all available skins of JMLToday stored (in this Tutorial only "default")
Content of default:
[IMG]http://img715.imageshack.us/img715/2016/contentdefaultfolder.png[/IMG]
In all folders of default there are the needed .png files stored. (The foldernames are explanation enough)
JMLToday_Bkg.png = your current JMLBackground
JMLLang.ini = Translation for right Softkey
JMLSkin.ini = Installation file for new Skins (read more in following Posts)
JMLToday[...].ini = Update files / Registry for you current skin (read more in following Posts)
default.plg = Icon Placement (read more in following Posts)
default.pnx = Icon Action (read more in following Posts)
.xml = Files for JMLPicture (Read JMLTools Thread for more Infos)
[B][U]Basic Registry Structure of JMLToday:[/U][/B]
[U]HKCU:[/U]
All your Data and Settings you need for JMLToday is mainly stored in your Registry under:
[QUOTE]HKCU > Software > JML[/QUOTE]
Here you will find some Keys called:
[QUOTE]Calendar = Subkeys (Cal1 - 5) containing Data of your 5 current Appointments
Comm = Data for your Connections
Contacts = Subkeys (Anniversaries1 - 2) containing Data for your next two BirthdayFavorites
Date = Data for Date
Favorites = Subkeys (Favorite1 - 12) containing Data for your Favorite Program or Contact
Meteo = Subkeys (Current; Day1 - 5) containing Weather Data
Sms = Subkeys (Sms1 - 5) containing last received SMS with according Contactinfo
System = Data of battery / RAM / ROM
Tasks = Subkeys (Task1 - 5) containing your next 5 Tasks
Tel = Telephone Data
Time = Time Data
Total = Missed Calls / eMail / SMS / VoiceMail
[/QUOTE]
All this RegKeys are automatically updated if some Value is changed or created.
Example (not the exactly way but understandable): You enable Bluetooth
Click BLTH.png => JMLComm.exe enables BLTH => JMLComm.exe updates HKCU => JMLComm.exe calls JMLTodayComm.ini => JMLTodayComm.ini updates HKLM => JMLToday displayes new BLTHenabled.png
[U]HKLM:[/U]
While your RawData is stored in HKCU, your needed Data for JMLToday is stored in HKLM.
This has the advantage that you can control (by JMLToday[...].ini files) which Items and Values should be displayed in JMLToday (read more in following Posts)
All Data is stored under:
[QUOTE]HKLM > Software > Microsoft > CHome > JMLToday[/QUOTE]
Here you will find some Keys (every Key is representating one Site of JMLToday) called:
[QUOTE]Calendar = Data for your CalendarPage
CondensedPage = Data for the Page if JMLToday is not active
Favorites = Data for your FavoritesPage
Home = Data for your HomePage
Meteo = Data for your WeatherPage
Param = Parameters for JMLToday
Sms = Data for your SMSPage
Tasks = Data for your TasksPage
[/QUOTE]
Every Value of this Keys is used as "ID" by JMLToday (Example: ID='Time') and this Values are displayed in JMLToday (Example: Here the current Time).

<<< How to change Background / WeatherIcons / TodayIcons / JMLPictures >>>​!!! UNDER CONSTRUCTION !!!​
Before you start:
- Copy folder "\JMLToday\skins\default" to your PC as a saving if something goes wrong or you would like to get back to default appearance!
Click to expand...
Click to collapse
Only changing Icons is the easiest way to get a new look of your skin.
Remember the folder structure of "\JMLToday\skins\default"
You can change / replace:
Background:
JMLToday_Bkg.png
This is the Background Picture of JMLToday. Just take another Picture you like and replace it on your DEVICE.
Then you have to change your Skin to "default" again to override the old Picture (Menu\Change Skin => default) and you are done.
[!] Don't change filename!
[!] Don't use another file format (.png)!
Click to expand...
Click to collapse
WeatherIcons:
accu = Accu Weather Icons
google = Google Weather Icons
msn = MSN Weather Icons
Just search for new weather Icons and compare them to the old one. Mostly you have to rename the new Icons to 1-X.png according your weather service.
If you compared them correctly (Example: Sun=1.png / Rain=14.png) simply replace them on your DEVICE.
After this do a weather update and you are done.
[!] Use Weather Icons with the same dimensions as the JMLToday ones to avoid distorsions!
[!] Take some time and compare correctly. If not, your weather could be displayed wrong (Sun is displayed at rainy days)
Click to expand...
Click to collapse
TodayIcons:
batt = Battery Icons
cal = Calendar Icons
clock = Digital Clock Icons
clockA = Analoge Clock Icons
programs = Here are all custom ProgramIcons (for your Favorites) stored
sys = Icons for JMLToday
zodiacs = All zodiac sign Icons
Here you can check what the original Icons display and simply replace them on your DEVICE.
Do a SkinChange to default and you are done.
[!] Don't change file names!
[!] Use Icons with the same dimensions to avoid distorsions!
Click to expand...
Click to collapse
JMLPictures:
JMLPicture is a simply way to create one Icon out of several Pictures and Texts. (More Infos: >>> JMLTools <<<)
Example:
To get this image:
you have to write an .xml file with this content:
Code:
[SIZE="3"]
<Picture Width="400" Height="200" Bkg="192,192,192" ID="XMLTime" Target="%APPDIR%/ClockText.png">
<Image Left="0" Top="0" ID="BGAMPMALARM" Page="Home" />
<Image Left="20" Top="40" ID="H1" Page="Home" />
<Image Left="100" Top="40" ID="H2" Page="Home" />
<Image Left="225" Top="40" ID="M1" Page="Home" />
<Image Left="305" Top="40" ID="M2" Page="Home" />
<Text Left="15" Top="140" Value="AM" Color="128,0,0" FontFamily="Tahoma" FontSize="8" FontStyle="Bold,Italic" />
<Text Left="15" Top="160" ID="City" Page="Meteo" FontFamily="Tahoma" FontSize="6" FontStyle="Italic" />
</Picture>
[/SIZE]
Short explanation:
<Picture> [...] </Picture> = Is MainTag you need for creating
=> Width & Height = Dimension of created Picture
=> Bkg = BackgroundColor in RGB-Format
=> ID = RegValue the Picture is saved in
=> Target = Place to save created Picture
<Image/> = Displaying an Image in your Picture
=> Left & Top = Pixels from Left 6 Top of Picture (not TodayScreen)
=> ID = RegValue of this Image you would like to implement in your Picture
=> Page = In which Page (see RegistryStructure) is the ID stored (here Home or Meteo)
<Text/> = Displaying a Text in your Picture
=> Left & Top = Pixels from Left 6 Top of Picture (not TodayScreen)
=> Value = Custom Text (not variable - its static)
=> ID = RegValue of this text you would like to implement
=> Rest = selfexplanatory
So feel free to adjust height / dimensions and places of the Icons which are used in .xml
[!] Don't change filename of .xml
[!] Don't change the content of <Picture> Line
[!] Check first if "ID" is existent under your Page in Registry
Click to expand...
Click to collapse

<<< How to change Positions of Icons >>>​!!! UNDER CONSTRUCTION !!!​
How to change your Icons you have learned already so: How to change their positions?
For this you have to know something about default.plg. This file consists the parameters of every item which is shown on your screen.
Basic Structure:
Code:
[SIZE="3"]
<?xml version="1.0" encoding="utf-8"?>
<plugin>
<name>JMLToday</name>
<position>0</position>
<layouts>
<layout screenWidth="240" screenHeight="320">
<Layer ID="JMLTodayExpanded" nil="False" Width="240" Height="82" Clip="False">
<Keypad ID="Buttons" Width="240" Height="170" Clip="False">
[...]
</Keypad>
<Layer ID="Page" Clip="False">
[...]
</Layer>
</Layer>
<Layer ID="JMLTodayCondensed" Visible="False" Width="240" Height="34">
<Layer ID="Page">
[...]
</Layer>
</Layer>
</layout>
<layout screenWidth="480" screenHeight="640">
<Layer ID="JMLTodayExpanded" nil="False" Width="480" Height="164" Clip="False">
<Keypad ID="Buttons" Width="480" Height="340" Clip="False">
[...]
</Keypad>
<Layer ID="Page" Clip="False">
[...]
</Layer>
</Layer>
<Layer ID="JMLTodayCondensed" Visible="False" Width="480" Height="68">
<Layer ID="Page">
[...]
</Layer>
</Layer>
</layout>
[... AND SO ON FOR ALL RESOLUTIONS YOUR SKIN SHOULD SUPPORT ...]
</layout>
</layouts>
</plugin>
[/SIZE]
Explanation of some Basics:
Code:
[SIZE="3"]
<?xml version="1.0" encoding="utf-8"?>
<plugin>
<name>JMLToday</name>
<position>0</position>
<layouts>
[...]
</layouts>
</plugin>
[/SIZE]
- This is the header Text which is essential for making Titanium - don't change anything!
Code:
[SIZE="3"]
<layout screenWidth="240" screenHeight="320">
<Layer ID="JMLTodayExpanded" nil="False" Width="240" Height="82" Clip="False">
<Keypad ID="Buttons" Width="240" Height="170" Clip="False">
[...]
</Keypad>
<Layer ID="Page" Clip="False">
[...]
</Layer>
</Layer>
<Layer ID="JMLTodayCondensed" Visible="False" Width="240" Height="34">
<Layer ID="Page">
[...]
</Layer>
</Layer>
</layout>
[/SIZE]
<layout screenWidth="240" screenHeight="320"> = This layout is for TodaySreens with a resolution of 240x320 (for 320x240 there is another layout in .plg)
<Layer ID="JMLTodayExpanded" nil="False" Width="240" Height="82" Clip="False"> = JMLToday will be displayed at 240x82
<Keypad ID="Buttons" Width="240" Height="170" Clip="False"> = The Dimension of JMLToday ClickArea will be 240x170. Here are your Parameters of your Background stored
<Layer ID="Page" Clip="False"> = Here are all your Item Parameter stored
<Layer ID="JMLTodayCondensed" Visible="False" Width="240" Height="34"> = This is the area if your JMLTodayPanel is not active
Click to expand...
Click to collapse
You don't have to know all of this .plg. Only concentrate on the area <Layer ID="Page" Clip="False"> of your Resolution
Don't mess up with starting and closing characters (<Layer> & </Layer>) - If you forget one (or accidentally deleted one) your skin won't work!
You will recognize that, if your Skin is not properly installed, or if you cannot click something or your right Softkey isn't working...
So now let's rearrange some Items!
[!] Save the original .plg first
Click to expand...
Click to collapse
Open your .plg under "\JMLToday\skins\default\default.plg" (on PC or PPC as you want and with any Editor you prefer) and scroll to your resolution you would like to change your Skin for.
In your <Layer ID="Page" Clip="False"> you will find two different part of Items: <Image/> & <Text/>
[!] < opens a line and /> close this one - don't forget or delete them
[!] Obey the code: value="parameter"
Click to expand...
Click to collapse
Possible Attributes for <image>:
Always use this line for displaying an Image:
Code:
[SIZE="3"]
<Image [...] />
[/SIZE]
ID = How the value is called in Registry - Don't change it! (Example: ID="Time")
Left = Position in Pixels from the left
Top = Position in Pixels from the top
Width = Width of your Image
Height = Height of your Image
ScaleStyle = Decide how your Image is displayed: "Stretch" or "Fit" For Stretch it will distored to the dimensions you declared with Width&Height and for Fit it will be rescaled to the biggest possible Image fitting in your With&Height
ScalingAlgorithm = No need to change it
HorizontalAlignment = Choose "Left", "Center" or "Right"
VerticalAlignment = Choose "Top", "Middle" or "Bottom"
Clip = no need to change it
Opacity = You wish transparency? 1.0 = full visible / 0.5 = partly visible (50%) / 0.0 = full invisible
Click to expand...
Click to collapse
Possible Attributes for <text>:
Always use this three lines for displaying a text:
Code:
[SIZE="3"]
<Text [...] >
<TextStage [...] />
</Text>
[/SIZE]
ID / Left / Top / With / Height = the same as <image/>
FontFamily = Decide which Font you would like to use (has to be installed before)
FontSize = what do you mean???
FontStyle = "Bold" / "Normal" / "Italic" (you can use all if you want (Example: FontStyle="Bold,Normal,Italic")
Wrap = "True": You text will be displayed in more lines if it is too long / "False": now it will be cut off
HorizontalAlignment / VerticalAlignment = the same as <image/>
Click to expand...
Click to collapse
[!] Don't forget that other users maybe don't have the same fonts (FontFamily) as you!
[!] VerticalAlignment="Middle" isn't available for Titanium (Yea, a bug!)
Click to expand...
Click to collapse
For: <TextStage/>
- TextOffsetType = "TextOffsetNone" is only Text - If you want to have an Offset (Shadow or something) read *1
- Color = Enter Hex Code for your Textcolor ([E] Color="#0064FF")
(R)ed=0 (G)reen=100 (B)lue=255 => #0064FF (use any better ImageApp than "Microsoft Paint" )
[!] Don't forget # before color code
Sometimes your color isn't displayed as you entered the code - It's simply "inverted"
=> Solution: instead of #0064FF you insert #FF6400 (or: instead of RGB you insert GBR)
Click to expand...
Click to collapse
*1:
Add the following line before <TextStage TextOffsetType="TextOffsetNone" [...] />:
Code:
[SIZE="3"]
<TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="0" BlurFactor="0" Alpha="1.0"/>
[/SIZE]
TextOffsetDropBottomRight adds a Shadow with black Color and no Blur or additional Offset (full visible) to your text.
Experiment a little bit, to get satisfied!
With this knowledge you can adjust all those Items you want...
Save your new .plg (copy it back to your device in "\JMLToday\skins\default") and reinstall the default Skin.
Of course you have to experiment a lot to get this Items rearranged correctly and it can cost you alot of time - don't panic

<<< How to change the Action of Icons / Buttons / Softkeys >>>​!!! UNDER CONSTRUCTION !!!​

<<< Commands / available Attributes / aso. for creating a new skin >>>​!!! UNDER CONSTRUCTION !!!​

<<< Creating a brand new skin >>>​!!! UNDER CONSTRUCTION !!!​

Related

Change the display of the clock in the taskbar

i have tried this hack and it does not work for me. i have the htc x7500
does it work for you
thanks
Change the display of the clock in the taskbar
The clock in the taskbar can be changed to show not only the time, but also the date, or just the date, or nothing at all.
To show nothing:
HKLM\Software\Microsoft\Shell\TBOpt = 0 (DWORD decimal)
To show just the clock:
HKLM\Software\Microsoft\Shell\TBOpt = 1 (DWORD decimal)
To show just the date:
HKLM\Software\Microsoft\Shell\TBOpt = 2 (DWORD decimal)
To show both the date and the clock:
HKLM\Software\Microsoft\Shell\TBOpt = 3 (DWORD decimal)
date and time on the tb
for me following cab works ok, but I have other problem - when keyboard is closed on the visible bar I see only full hours - instead of 22:36 I see only 22:00 till 23. Anyone has a clue how to change it?
try moving the volume button up when the mini display is on
irus said:
try moving the volume button up when the mini display is on
Click to expand...
Click to collapse
Wow, I didn't even know that the mini display changed! I didn't have any problems showing the minutes, but I did not know about the volume button changing the display
thanks for the suggestion.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\
Create a binary value named "TBOpt" and set its value to "13 00 00 00
then
1) Open ur registry editor (either PHM Registry Editor or Resco Explorer 2003).
2) Go to HKEY_LOCAL_MACHINE\nls\overrides
3) Create 1st String Value: Name = S1159 & String = Am
4) Create 2nd String Value: Name = S2359 & String = Pm
5) Create 3rd String Value: Name = STFmt & String = hh:mm t'M '
6) Soft-reset.

UPdate album art directly from your device (HELLO S2P users!)

I have a script which will look for album art from albumart.org and place it in the proper folder. This is great if you use S2P.
The script assumes a couple things:
- you music is in \storage card\music\$artist\$album
-YOu will need GSFinder
-the folder view dropdown is visible (I scrape the path in the top dropdown to get the artist and album.
-You need to be able to execute the script from within GSFinder. (map script to button, or use a cascading menu that allows you to select the script file)
THe script basically sends the artist and album to the website,
parses the page
then pulls the image that has atag that matches the album
I get about 70% success rate....which is FINE WITH ME!
---------------------------------------------------------
musicroot = "\Storage Card\Music\"
d = windowtext(30,30)
message(d)
d = replace(d,musicroot,"")
arrMusic = split(d,"\")
theartist = arrMusic[1]
thealbum = arrMusic[2]
#message (theartist)
#message (thealbum)
thepath = "\Program Files\MortScripts\"
thefile = "dl1.html"
#connect("Data Network Connect")
connect("The Internet")
Download ("http://albumart.org/index.php?srchkey=" & theartist & "+" & thealbum & "&itempage=1&newsearch=1&searchindex=Music",thepath & thefile)
strParse = ReadFile(thepath&thefile)
mainleft = find(strParse,"main_left")
#message(mainleft)
arttitle = find(strParse, "title=", mainleft)
#message(arttitle)
if (arttitle>0)
srcstart=find(strParse, "src=", arttitle)
imagestart = srcstart + 5
#message("imagestart:" & imagestart)
imageend = find(strParse, ".jpg", imagestart) + 4
#message("imageend:" & imageend)
imagepath=substr(strParse,imagestart,imageend-imagestart)
message(imagepath)
Download (imagepath,musicroot&theartist & "\" & thealbum & "\folder.jpg")
message("refresh folder")
endif
--------------------------------------------------
Hope you enjoy it....I LOVE IT!

[APP][RC3.1][24Oct09]TICS-Installer-install plg in all cpr's[RC-THREAD][6.5]

Hi,
ATPluginInstaller was a great idea-but we missed some things-and TICS can do it -especially installing a .plg in EACH .cpr!
TICS is short for Titanium Installator Controller Saver
TICS is upward-compatible to ATPluginInstaller in its Doing - but will do much more.
To introduce it, a little example to call TICS_installer, so you can already see, what's now possible:
TICS_installer.exe -addchange -plg:\\Internal Storage\\Sandbox\\default.plg -cpr:currentPortrait -silent
but also possible:
TICS_installer.exe -addchange -plg:\\Internal Storage\\Sandbox\\test.plg -cpr:\\Internal Storage\\Sandbox\\Titanium_480x640.cpr
and:
TICS_installer.exe -delete -plugin:Test -cpr:currentLandscape
Direct Download of TICS_installer - new RC3.1
Now, you have seen the "specials" of TICS - but the first question of te Plugin-Makers will be: "what about the setup.dll?"
And that's very easy: ATPluginInstaller installed or uninstalled only the default.plg in Titanium_<res>.cpr - so it was possible.
TICS has to much options for this - and so you need another interface -but you already have it:
The Setup.dll from Mortscript calls "install.mscr" after installing a cab - and "uninstall.mscr" before uninstalling a cab.
The only MUST is: the Mortscript.exe, TitaniumRefresh.exe and the both mscr-Files and TICS_installer.exe must be installed in your main Directory of your Plugin.
But so we can also be asure, that each Plugin has now its right MortScript-Version - and everybody of us has a simple-to-use interface.
I will post an example for an install.mscr in Post #2
But now the Syntax of TICS-installer(and 4 now it's changeable, after Release no more! It can only be expanded - but each Skinner, Themer, Plugin-Developer,... must rely on, that the Parameters from TICS_installer always be upward-compatible)
Usage:
Install/Change:
TICS_installer.exe -addchange -plg:<absolutePathToPlg> -cpr:currentPortrait|currentLandscape|<absolutePathToCpr> [-silent]
Uninstall:
TICS_installer.exe -delete -plugin:<PluginName> -cpr:currentPortrait|currentLandscape|<absolutePathToCpr> [-silent]
The Example in Post #2 will show the same thing as that was ATPluginInstaller did... almost... because "current" is the ative cpr - e.g. if you are using NeoTitanium - then TICS will install the .plg in NeoTitanium...
For whom it is needful to use TICS in future?
For the Users of course - no more problems to install Skins to whatever he uses in Titanium
For Developers of Plugins: their Plugins can now be used in each Titanium-Theme without adapting of the Theme-Makers - only depends from the ideas of the Skinners. Also they have a new interface after installing/before uninstalling a .cab - and Mortsript-knowledge would be enough
For Titanium-Theme-Makers: Now they can get help from the Skinners and the Plugin-Makers for a specific Plugin and no more for a whole cpr. Also the additional Parameters will help them, too
For Skinners: Much more possibilities to skin now Only by making that, what they can: Making great .plg's and Images!
TICS is free - like ATPluginInstaller - for each non-profit CHome-/Titanium-Plugin - so I'm only interested in enjoying this new possibilities of ech of you, too
Some important explanations:
- TICS_installer will only write in "ExtensibilityXML", "DefaultXML" and "Plugins" to CHome-Registry, if the Parameter for CPR is a "current..."-Parameter
- but then in "HKCU/Software/TICS" - with "newExtensibilityXML","new..."
- TICS uses "ExtensibilityXML" and "CPRFile" from CHome-Registry to identify the current CPR - it's automatically set by Windows-system because of ExtensibilityXML
- and you can use them by simple Registry-Copy in install.mscr or your Program like you need it for your Plugin
- You must set the <Position> in .plg - but if the Plugin already exists, then TICS ignores the Position in .plg - because it assumes, that the User has moved the Plugin to a better place for him (e.g. with CHome-Editor) - so it's more User-friendly
- TICS has definite Error-Messages and Number - which you can capture&handle while Installing a .plg - everything to find in "HKCU/Software/TICS"
- TICS recognizes your current resolution of your device - and only installs in the .cpr of this Resolution - no more in the other unused one
- Code optimization fast&small
- TICS makes a different between portrait and landscape in the .plg - so you have to call TICS twice if you want the same behaviour like ATPluginInstaller- but so you can also handle the different Sizes or can install different .plgs to Landscape and portrait... nice opportunity for Skinners
- it creates two temporary files direct in MainStorage "tempTitaniumLandscapeCpr.txt" and "tempTitaniumPortraitCpr.txt" which are the output files of - also a successful like a buggy call, too - of TICS - so you can handle it without need to copy something from Windows-Directory.
Of course will TICS change the current .cpr, too. And overwrite the temporary Files after next call of TICS
Everything else is already explained with ATPluginInstaller - but don't forget: CESetupDLL = "setup.dll" in TICS! :
http://forum.xda-developers.com/showthread.php?t=509492
Only a summary of the new advantages of TICS:
- fast - written in C with MSDN - nothing else! Needs only 20ms for a complete operation on a .cpr
- You can handle EACH .cpr now The most important of all
- .plg can be everywhere - you can also save the .plg in Internal Storage together with the Images to copy full Skins to your Plugins
- Post-Installation-Hook - you can handle everything which you need for yor Plugin now while installing the cab (install.mscr)
- Pre-Deinstallation-Hook - you can handle everything which you need for yor Plugin now before uninstalling the cab (uninstall.mscr)
- in pre- and post- un/installation you can handle everything also before calling TICS and also after calling TICS
-Detailed Error Messages and Numbers to handle them
- Special support-parameters for JMLToday & TitaniumRSS and some other Plugins
- Silent-Mode - TICS can suppress the Error-Messages and only write them to Registry - and you can handle them on your own
- Change View of Titanium to TitaniumListView or BronzeListView (disabled in Beta)
- Makes differences between portrait and landscape - and so the possibiity to have abolutely different Skins in this directions
- only installs in your Resolution - so it's fast and need less storage in your Windows-Directory
- User-friendly (e.g. Position - see above)
- Let you handle the both last calls of TICS by providing everything about them in Registry.
Download attached
Please: It's a RC: Before you try it - save your .cpr and the Values "ExtensibilityXML" and "Plugins" in Registry of CHome.
First File is Mortscript.exe (4.2-feel free to use,what you want) , TitaniumRefresh.exe, the setup.dll and an example for install.mscr and uninstall.mscr
Second File is TICS_installer.exe itself as zip
-------
last change 3.1:
- "-change" to TitaniumListView bugfix
*FULL CHANGELOG*
-------------
Thanx to Mort for providing the Setup.dll!!!
And AppStar for his great initial concept of ATPluginInstaller!!!
And I'm looking forward to new Themes & Skins, which are now much easier possible
Cheers & Thanxs
Micha
Like my work? For a new device to test, motivation, better developing environment and especially coffee - to spend much more nights, you can donate a cup of coffee for me.
Short Description: HowTo easily change your Plugin from ATPluginInstaller to TICS_installer (for Plugin-Developers) - needs only some minutes :
1. use the attached install.mscr and uninstall.mscr from Post #1 ("SetupDll_and_Mort.zip")
2. In install.mscr only put these Lines:
Code:
instPath = SystemPath( "ScriptPath" )
plgPath=instPath\"test.plg"
callParameter="-addchange -plg:"&plgPath&" -cpr:currentPortrait"
RunWait(instPath\"TICS_installer.exe", callParameter)
callParameter="-addchange -plg:"&plgPath&" -cpr:currentLandscape"
RunWait(instPath\"TICS_installer.exe", callParameter)
RunWait(instPath\"CHomeRefresh.exe","")
If you use another .plg - not default.plg - just change second line to the name of the .plg you want to install with .cab
3. In uninstall.mscr only put these Lines:
Code:
instPath = SystemPath( "ScriptPath" )
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:[I]YourPlugin[/I] -cpr:currentLandscape")
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:[I]YourPlugin[/I] -cpr:currentPortrait")
RunWait(instPath\"CHomeRefresh.exe","")
Only replace "YourPlugin" with the name of yourPlugin - e.g. "CNitrogen"
4. Put this install.mscr, uninstall.mscr, TICS_installer.exe, setup.dll, MortScript.exe (don't forget! use Version, you want) and CHomeRefresh.exe to your Main Directory of your Plugin. Delete "ATPluginInstaller.exe" and "CEsetupDLL.dll"
5. Add the new Files to your .inf-File
6. Change in [DefaultInstall]-Section of your inf the Line to: CESetupDLL = "setup.dll"
7. Cab your Plugin - ready - now your Plugin works with TICS - and therefore for all Themes
Longer Example MortScript:
Here's the Mortscript, what would almost do the same while installing a cab for a Titanium Pluing like ATPluginInstaller,
but with the difference: In the current (=active) CPR - it's also attached as example in Post #1 as download
Code:
### Sample: Installation for TICS - called by setup.dll
instPath = SystemPath( "ScriptPath" )
### Code before call of TICS_Installer ###
# empty
### TICS_Installer call portrait ###
plgPath=instPath\"test.plg"
callParameter="-addchange -plg:"&plgPath&" -cpr:currentPortrait"
message(callParameter)
RunWait(instPath\"TICS_installer.exe", callParameter)
### Handle here returned Error-Code: portrait ###
errorcode=RegRead("HKCU", "Software\TICS","ErrorNumber")
if (errorcode ne "0")
messagetext="Portrait Installation failed: "& RegRead("HKCU", "Software\TICS","ErrorDescription")
message(messagetext)
exit
endif
### TICS_Installer call landscape ###
plgPath=instPath\"test.plg"
callParameter="-addchange -plg:"&plgPath&" -cpr:currentLandscape"
RunWait(instPath\"TICS_installer.exe", callParameter)
### Handle here returned Error-Code: portrait ###
errorcode=RegRead("HKCU", "Software\TICS","ErrorNumber")
if (errorcode ne "0")
messagetext="Landscape Installation failed: "& RegRead("HKCU", "Software\TICS","ErrorDescription")
message(messagetext)
exit
endif
### Code after call of TICS_Installer ###
Sleep(500)
RunWait(instPath\"CHomeRefresh.exe","")
message("finished")
exit
An example for uninstallation (parly) - it will uninstall your Plugin with the Name "Test" - replace it with the Name of your Plugin and it will work
Code:
...
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:Test -cpr:currentLandscape")
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:Test -cpr:currentPortrait")
...
Some other possible calls - e.g. also from C-/C++/-C#-/Whatever-Program:
// LPCWSTR ganzPar= L"-addchange -plg:\\Interner Speicher\\Sandbox\\test.plg -cpr:\\Interner Speicher\\Sandbox\\Titanium_480x640.cpr" ;
// LPCWSTR ganzPar = L"-addchange -plg:\\Interner Speicher\\Sandbox\\test.plg -cpr:currentPortrait";
// LPCWSTR ganzPar = L"-addchange -plg:\\Interner Speicher\\Sandbox\\test.plg -cpr:currentLandscape -isTICSSystemCall";
// LPCWSTR ganzPar = L"-delete -plugin:JMLToday -cpr:\\Interner Speicher\\Sandbox\\Titanium2_480x640.cpr";
// LPCWSTR ganzPar = L"-delete -plugin:Test -cpr:currentPortrait";
// LPCWSTR ganzPar = L"-delete -plugin:Test -cpr:currentLandscape";
// LPCWSTR ganzPar = L"-delete -plugin:Testplugin -cpr:all";
// LPCWSTR ganzPar = L"-delete -plugin:Testplugin -cpr:\\Interner Speicher\\Sandbox\\Titanium_480x640.cpr";
And here the Listings of the Registry-Keys in HKCU/Software/TICS :
callAction: Last kind of Call, e.g. addchange
callCPR: full-qualified path of CPR which should be changed
callOrgDefaultXML/callOrgExtXML/callOrgPlugins: Saves the DefaultXML/ExtensibilityXML/Plugins before Changing
callOverall: All Parameters which were given to TICS_installer
callPLG: full-qualified path of PLG which should be injected
callTypeCPR: direct or current
ErrorDescription: Long description of Error Message
ErrorNumber: Number of the Error
last...: The same as above for the Call before
new...: The changes of TICS in Registry - with "current" also in your Titanium - otherwise only here, so you can copy it after installation e.g. in install.mscr
Nice day 4 U
Micha
Changelogs of former Versions:
changelog ReleaseCandidate 3.1:
- -change to TitaniumListView now works (not necessary to update from RC3.0 if you are a Plugin-Developers, who doesn't use "-change")
changelog ReleaseCandidate 3.0:
- Wrong Upload - therefore RC2.0 no more exists
- Bugfix: in seldom constallations other Plugins disappeared
- Added 2 more understandable Error Messages
changelog ReleaseCandidate 1.0
- added "ForbiddenList"
- added check of ExtensibilityXML to get the correct cpr-Name
- added possibility to change a cpr to TitaniumListView / BronzeListview
- increased speed - reduced filesize
Changelog Beta2:
- Made a Fix to Compiler-Options - in the optimization it made something wrong sometimes in .exe
- Some Bugfixes because of Feedback (now it's stable with changing the Windows-CPR)
- Implemented this to JMLToday-cab and tested it: All works - and if this works, so we can be very sure, that it works for all Plugins instead of ATPluginInstaller
- added Parameters:
-- The Version-Number of TICS will alway be transmitted to Registry HKCU/Software/TICS:Version
-- "-nochangechomereg" : Independent from -current..., TICS_installer won't change the Registry of CHome - only create the key in HKCU/Software/CHome, which you can copy or use afterwards.
-- "-nochangecpr" : Independent from -current..., TICS won't write back the cpr-File to the original and will only provide the temp-File, which you can use by your install-script
-- "-isTICSSystemCall": This will be a reserved Parameter for the whole TICS-System - and you can never rely on,what it does-so never use it - it's only for "C" and "S" of TICS - and can change its behaviour
- Some small optimizations in code
- Tested it very hard
-------
OK - I must go now for today - thanx for Feedback, how we can alltogether get it appropriate for each special wishes of the Themers, Skinners and Plugin-Developers.
Have Fun with TICS-Checking
Micha
Nice, now if someone wants a specific plugin for say my NeoTitanium or the Windows 7 Titanium or any other Titanium skin that uses custom named CPR's, the developer can make the layout or any skinner can make their own. Will make my job a lot easier, Thank you!!!
Enjoy your coffee, it's well earned.
Unique Transaction ID #4HH62607UX4580321
You have really outdone yourself Micha, that is great.
I am no skinner and also cannot program, but i will dig into this to understand it fully as it very interesting and opens a lot of possibilities.
Thank you! I'm looking forward to everything what the Skinners will do with your NeoTitanium
Thanx, too, Claus! You had so much effort increating and providing your cpr's for all resolutions and themes - I hope it's now much easier for you.
And hey - there's no need to programming - only using the Parameters
I hope some Plugins will test soon the changing of the files (setup.dll, TICS_installer.exe) - and the most of them can overtake almost blind (only changing the PluginName) the install.mscr and uninstall.mscr of the download (and shown in Post #2) - it would almost do the same as PluginInstaller before - but now for each Titanium-Theme - and I think that's interesting for all Plugin-Developers.
I will insert it also in JMLToday andsend it to JMHL afterwards - but there will be much more needed than only the Installation-Part.
The same later on with TitaniumRSS (because TitaniumRSS has already since the first Release TICS inside for changing to FullView and some more things- so I learned, what's important).
I want to explain some additional Parameters here - only to discuss, if they would be necessary for you:
- The Version-Number of TICS will alway be transmitted to Registry - better then a "-version"-Parameter - ok?
- There will be a "-change" - Parameter - e.g. then with "-cprchange:titaniumlistview|bronzelistview" - I don't think I have to explain, what it means
- Perhaps some Parameters there in "-change" which changes the Action-Areas and some more (proposals... we will see)
- "-nochangechomereg" : Independent from -current..., TICS_installer won't change the Registry of CHome - only create he key in HKCU/Software/CHome, which you can copy or use afterwards.
- "-nochangecpr" : Independent from -current..., TICS won't write back the cpr-File to the original and will only provide the temp-File, which you can use by your install-script
- "-isTICSSystemCall": This will be a reserved Parameter for the whole TICS-System - and you can never rely on,what it does-so never use it - it's only for "C" and "S" of TICS - and can change its behaviour
I didn't write this proposals of the Parameters to Post #1 (some of them are already implemented, but disabled in Beta) - not toconfuse to much - they would be seldom used - and the most important for Plugin-Developers,Skinners, Theme-Makers,... are in Post #1
But nevertheless: If you want something special of functionality for your Theme oder your Plugin or to help for skinning .plg's - it's the best now before Iwill open the Release-Thread of TICS.
Later on - I will add each Betas here - and the Releases with the official implemented and upward-compatible functionalities in the Release-Thread of the whole TICS-Suite.
Especially from Theme-Makers and Plugin-Developers: I hope you have a look at the Parameters of Post #1 - and can tell me, what you would like to have for your Plugin.
Cheers
Micha
Ok - thanx for the Feedbacks (better here in Thread as via PN - so I would see it much faster)
I have changed the things - and deleted Beta1 from Download and added Beta2 in Post #2
I have tested it hard - and I already integrated it in JMLToday.cab to see, if everything will work (JMLToday is very complex in installing and using .plg) - and it's stable with TICS Beta2 - so you can test it also with your Plugins.
Also I had to optimize the code a little bit and added some of the Parameters, I mentioned.
I only want to run it with some further informations - therefore the .exe is a little bit bigger now. But no bad effect on the speed.
I also have put each "Beta"-Status out of the Beta - no limitations and also no more messages and Silent-Mode is activated, if set.
The Message - if activated - are now also shown in Foreground
Works really stable to integrate it.
So - Beta2 is also Release Candidate 1
Please Feedback for wishes,...
Cheers
Micha
It would be nice to have a replacement for CHomeRefresh
After each CHomeRefresh, some keys I deleted from the registry get restored, amongst other things.
We could perhaps call it via:
TICS_Installer.exe -refresh
You now already have a replacement, adwin - because it's only called from the mortscripts
I did it on purpose So everybody can choose if he wants to handle the Return-Values before or make a Refresh.
So - TICS.exe will NEVER call a Refresh by itself - you can rely on
So you can use RedrawToday from Mortscript or RefreshToday.exe or nothing (or something else - there are some more programs). What's better for you (Therefore also the additional parameters, which only write to shadows)
Don't forget - now you have an Interface while installing/uninstalling the cab. So I had no reason to integrate the Refresh into the TICS-exe.
And because of the Restored Keys after Refresh - Beta2 also sets DefaultXML now - just uploaded some minutes before to Post #1
OK so?
Micha
mind realeasing the jmltoday version with this
n if possible have it take the red f the main clock in the bliss theme
Yes - but please: TICS is for all Plugins and Themes - and so please ask in the Plugins and Themes you use, if the could integrate TICS, so that everybody can enjoy each Plugin in each Theme.
I can only provide the Files - and it's simple to swap ATPluginInstaller.exe with TICS_installer.exe and also the cesetupdll.dll with setup.dll and add the 2 Scripts and only make a few simple modifications to them (which .plg - I set in Scripts still default.plg as example).
So each Plugin would automatically work with each themes - without anything more to do.
The Tests are fine - and ok - JMLToday - I'm involved and already made the new cab with TICS - but that must also be published according with JMHL. (and you were not the first who asked for JMLToday with TICS - I won't forget it, sure )
But it works for all Plugins & Themes - so please ask them also direct in their Thread.
OK?
Greetings
Micha
@Micha : You can publish your version of JMLToday5.4 with TICS (no problem).
I have lot of work (business-work, plugins in progress....) and i have not time to make all...
A++
OK - I've uploaded it meanwhile, until you have more Time:
JMLToday 5.4 installed by TICS as cab - Download-Post :
http://forum.xda-developers.com/showthread.php?p=4629986#post4629986
Then everybody can begin with making Skins for all the other Themes, like Bliss, NeoTitanium,...
Greetz
Micha
ok,thanx for the messages.I would only now need a feedback from somebody with QVGA or WQVGA-device. indifferent if you only inserts a single .plg or tried the link above from jmltoday.
But it's really an app for Developers,Theme-Makers to check it.
Like wished, I will add the "ForbiddenList" ((I will explain it) and then I will release TICS_installer as first app from the TICS-Suite.
Works fine so far
Micha
Thanx for the Feedbacks (I still don't understand, why you don't make it here in Thread...)
I added the wishes - I didn't changed the main features - so description is still the same to replace ATPluginInstaller with TICS_Installer - here are the adds of the First Release Candidate:
- added "ForbiddenList"
If you have a special .cpr - and you want to prevent it temporary from changes by Plugin-Installations - you only have to add the name of the cpr to /HKCU/Software/TICS -> "ForbiddenList" - enclosed with semicolons,
e.g. ForbiddenList=";TitaniumRSS;;Specialcpr;"
Then TICS would also if "currentPortrait" or "currentLandscape" is set for cpr - only make the temporary Files for this cpr and also the temporary Registry-Entries - but wouldn't change the Titanium system.
- added check of ExtensibilityXML to get the correct cpr-Name
TICS uses normally "CPRFile" in CHome to identify the current cpr - but now it also looks into ExtensibilityXML - and if there is another cpr-Name - then TICS uses this CPR-Name and also sets "CPRFile" this name (it's really better for TitaniumSystem- that both settings are switched, also if you think, that ExtensibilityXML would be enough)
- added possibility to change a cpr to TitaniumListView / BronzeListview
with
Code:
TICS_installer.exe -change -view:TitaniumListView -cpr:currentPortrait
the current protrait cpr would be change to TitaniumListView - so that e.g. JMLPanex would also work with Titanium7Project.
With:
Code:
TICS_installer.exe -change -view:BronzeListView -cpr:currentPortrait
it would be switched back
- increased speed - reduced filesize
you will see it .exe is now 35kb - and also for big cpr-Files very fast.
I don't want to add new functionalities for 1.0 now - but this Beta-Thread will remain also after Release - to add this things to next versions.
But the main-calls to -addchange and -delete, which are in 1.0 - will remain forever in each next update - so only expansions ae possible after Release.
So you can be sure, tht all Plugins, which are installed by TICS - remain upward-compatible for the future.
Please tell me, if you'd see any bug in RC1 - but it was good tested and has almost no differences to Beta2 in the MainStream (but faster &smaller) - so it's not necessary to wait too long until RC1 will be 1st Release.
Please report anything, what you see in trial.
Thanx & have fun with making your Plugins installable for all Titanium-Themes
Micha
BTW: If you need a further example how to use TICS RC1 - it's used inside this .cab :
http://forum.xda-developers.com/showpost.php?p=4683099&postcount=298
and still runs fine - otherwise just write it here (no more by PN please )
Micha
Thanx for the hint, Tb1502!
I wrote in Post #1 that:
CESetup.DLL = "setup.dll" should be the .inf-Entry for a Plugin, but it should be of course without the . :
CESetupDLL = "setup.dll"
in .inf to use the new setup.dll
Thanx again & Sorry
Micha
OK - after Feedback: RC1 is also first Release - all works fine.
I won't make a new Thread at the moment for the Release - think I will make this Thread after I have the most implemented "C" and "S" of TICS for the users.
I have added a short description to Post #2, how to change your Plugin from ATPluginInstaller to TICS_Installer. A few simple steps - takes only some minutes:
1. use the attached install.mscr and uninstall.mscr from Post #1 ("SetupDll_and_Mort.zip")
2. In install.mscr only put these Lines:
Code:
instPath = SystemPath( "ScriptPath" )
plgPath=instPath\"test.plg"
callParameter="-addchange -plg:"&plgPath&" -cpr:currentPortrait"
RunWait(instPath\"TICS_installer.exe", callParameter)
callParameter="-addchange -plg:"&plgPath&" -cpr:currentLandscape"
RunWait(instPath\"TICS_installer.exe", callParameter)
RunWait(instPath\"CHomeRefresh.exe","")
If you use another .plg - not default.plg - just change second line to the name of the .plg you want to install with .cab
3. In uninstall.mscr only put these Lines:
Code:
instPath = SystemPath( "ScriptPath" )
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:[I]YourPlugin[/I] -cpr:currentLandscape")
RunWait(instPath\"TICS_installer.exe", "-delete -plugin:[I]YourPlugin[/I] -cpr:currentPortrait")
RunWait(instPath\"CHomeRefresh.exe","")
Only replace "YourPlugin" with the name of yourPlugin - e.g. "CNitrogen"
4. Put this install.mscr, uninstall.mscr, TICS_installer.exe, setup.dll, MortScript.exe (don't forget! use Version, you want) and CHomeRefresh.exe to your Main Directory of your Plugin. Delete "ATPluginInstaller.exe" and "CEsetupDLL.dll"
5. Add the new Files to your .inf-File
6. Change in [DefaultInstall]-Section of your inf the Line to: CESetupDLL = "setup.dll"
7. Cab your Plugin - ready - now your Plugin works with TICS - and therefore for all Themes
OK - the Tests were all ok - some Plugins use it meandwhile - and hey.. you are using Beta2 - But RC1 is the new one!
It's running faster and is smaller - I think I will make sooner a Release Thread,than I wanted
But in Release - it will be the same as RC1 - so please use this (Just compare the changelog - the main functions are the same, but there's some differences between older Beta2 and RC1 - for special use - if you need it)
And Beta2 is good tested, but RC1 is better tested, because it's already running in some Pugins
Greetings
Micha

[WM6.5] [Programs] JML.... tools (02-Nov-2010)

Programs Used in JMLToday <= 5.92​
Post#2 : Programs Informations
JMLPicture.exe See Post#3
Build a picture from multiple images/texts
JMLMenu.exe
Displays a context popup menu.
JMLComm.exe
Phone on/flight-mode, Wifi on/off, BT on/off/discoverable, Data on/off
JMLCalendar.exe
Saves the next appointments in registry
JMLSms.exe
Saves SMS in registry
JMLContacts.exe
Saves the next birthdays/anniversaries AND Favorites contacts in registry
JMLMeteo.exe
Saves the MSN or ACCU or GOOGLE weather informations in registry
JMLTasks.exe
Saves the next tasks in registry
Programs Informations ​
JMLMenu v1.80
The menu is configurable via a .mnu file :
- The main menu is [Menu]
- One element per line of menu : label= program;parameters
- One section per submenu : use [] -> label=[mysubmenu]
- External submenu (.mnu file) : use {} -> label={filesubmenu.mnu}
- Separator : sepX=SEPARATOR (X=unique number)
Parameters :
Code:
[b][color=red]-execute[/color][/b] if menu as once choice, it execute it immediately (menu not show)
[b]-x:[/b]X = X coordinate (X clic per default)
[b]-y:[/b]Y = Y coordinate (Y clic per default)
[b]-timeout:[/b]N = timeout in seconds to hide menu (10s per default)
Example : JMLAction.mnu
Code:
[Menu]
Restart Titanium=%JMLTODAY%\JMLToday.exe;-refresh
Update=%JMLTODAY%\JMLToday.exe;-update
Weather=%JMLTODAY%\JMLMeteo.exe;-jmltoday
Configuration=[color=blue][b][Config][/b][/color]
Parameters=[color=blue][b]{JMLParameters.mnu}[/b][/color]
[color=blue][b][Config][/b][/color]
Clock=%WINDOWS%\ctlpnl.exe;cplmain.cpl,16,0
Skin=%JMLTODAY%\JMLTodaySkins.mscr
City=%JMLTODAY%\JMLTodayVille.mscr
Language=%JMLTODAY%\JMLLang.mscr
To Launch :
- in a .pnx file : %JMLTODAY%\JMLMenu.exe;JMLAction.mnu
- in a .mscr script : Run(instPath&"\JMLMenu.exe","JMLAction.mnu")
---------------------------------------------------------------------------------
JMLComm v1.98
Parameters :
Code:
[color=red]-vibrate:duration[/color] = make a vibration (duration=25ms per default)
[color=red]-volume[/color] = toggle vibrate/mute/normal mode[color=red]
-volume:mode[/color] = volume mode : [b]vibrate,mute, normal[/b]
[color=red]-volume:level[/color] = volume level : [b]silent,verylow,low,medium,high,loud[/b]
[color=red]-backlight[/color] = toggle auto/manual mode
[color=red]-backlight:mode[/color] = backlight mode : [b]auto,manual[/b]
[color=red]-backlight:level[/color] = backlight level : [b]mini,low,medium,high,maxi[/b]
[color=red]-gps:timeout[/color] = store latitude/longitude in HKCU\\Software\\JML\\Comm (timeout=60s per defaut)
[color=red]-status[/color] = store some informations in HKCU\\Software\\JML\\Comm
-data = toggle on/off data-connection
-data:on = switch ON data-connection
-data:off = switch OFF data-connection
-phone = toggle on/off phone
-phone:on = switch ON phone
-phone:off = switch OFF phone
-flight = toggle on/off flight-mode
-flight:on = switch OFF phone, wifi, bluetooth
-flight:off = switch ON phone
-bt = toggle 3 states bluetooth
-bt:on = switch ON bluetooth
-bt:discoverable = switch ON with discoverable mode bluetooth
-bt:off = switch OFF bluetooth
-bt2 = toggle on/off bluetooth
-bt2:on = switch ON bluetooth
-bt2:off = switch OFF bluetooth
-wifi = toggle on/off wifi
-wifi:on = switch ON wifi
-wifi:off = switch OFF wifi
Example : turn OFF bluetooth
Code:
instPath = SystemPath( "ScriptPath" )
RunWait(instPath&"\JMLComm.exe", "-bt:off")
exit
---------------------------------------------------------------------------------
JMLCalendar v2.45
Registry structure:
Code:
[HKEY_CURRENT_USER\Software\JML\[color=green][b]Calendar[/b][/color]]
"total" = dword: number of appointments found
[HKEY_CURRENT_USER Software\JML\[b]Calendar[/b]\Cal[color=orange][b]N[/b][/color]]
"oid" = oid item in poom database
"allday" = 0=FALSE, 1=TRUE
"categories" = list of categories
...
"subject" = subject
Parameters for searching :
Code:
-max:N = maximum number wanted (5 per default)
-days:N = number of days involved (5 per default)
-reg:key = registry key to store ("[color=green][b]Calendar[/b][/color]" per default)
Parameters for appointment :
Code:
-dateview:[color=orange][b]N[/b][/color] = open poutlook.exe to view the appointment number N
-deleteall:end = delete all [b]ended[/b] appointments (except reccurring appointments)
-deleteoid:oid = delete an appointment identified by his oid
-notifyoid:oid = show an appointment identified by his oid
---------------------------------------------------------------------------------
JMLSms v1.80
Registry structure:
Code:
[HKEY_CURRENT_USER\Software\JML\[b]Sms[/b]]
"total" = dword: number of SMS found
[HKEY_CURRENT_USER Software\JML\[b]Sms[/b]\Sms[color=orange][b]N[/b][/color]]
"oid" = oid item in SMS in database
"unread" = 1 if unread SMS, 0 otherwise
...
"subject"= subject
Parameters for searching :
Code:
-max:N = maximum number wanted (5 per default)
-read:all = last all type SMS (last unread per default)
-reg:key = registry key to store ("[color=green]Sms[/color]" per default)
Parameters for sms :
Code:
[color=red]-phone:phone-number[/color] = Call a phone number
-reply:[color=orange][b]N[/b][/color] = Send a response SMS
-reply:[color=orange][b]N[/b][/color] = [color=red]-text:"my text"[/color] = Send a pre-defined text response SMS
-mark:[color=orange][b]N[/b][/color] = Mark as read the SMS
-mark:all = Mark as read all SMS
-markid:oid = Mark as read the SMS identified by his oid
-delete:[color=orange][b]N[/b][/color] = Delete the SMS
-delete:all = Delete all SMS
-delete:unread = Delete all Unread SMS
-deleteid:oid = Delete the SMS identified by his oid
-call:[color=orange][b]N[/b][/color] = Call in response to SMS (in order if exist : sender, mobilePhone, homePhone)
-notify:[color=orange][b]N[/b][/color] = show the SMS
-notifyid:oid = show the SMS identified by his oid
-sms:phone-number = Send a response SMS
-sms:phone-number = [color=red]-text:"my text"[/color] = Send a pre-defined text response SMS
---------------------------------------------------------------------------------
JMLContacts v1.95
Registry structure :
Code:
[HKEY_CURRENT_USER\Software\JML\[b]Contacts[/b]\Anniversaries]
"total" = dword: number of contacts found
[HKEY_CURRENT_USER Software\JML\[b]Contacts[/b]\Anniversary[color=orange][b]N[/b][/color]]
"oid" = oid of Contact in database
...
[b][/b]
"picture"= full path of picture file name (in \My Documents\My Pictures...)
Idem for Favorites : in [HKEY_CURRENT_USER\Software\JML\Contacts\Favorites]
Parameters for searching :
Code:
-max:N = maximum number wanted (5 per default)
-days:N = number of days involved (30 per default)
-reg:key = registry key to store ("[color=green][b]Contacts[/b][/color]" per default)
-anniversaries = search in 'Anniversary' field of contact
-birthdays = search in 'Birthday' field of contact
-anniversaries -birthdays are per default
Parameters for contact :
Code:
[color=red]-call:N[/color] = Call a contact
[color=red]-email:address -account:account[/color] = Send a email from an account-name (Outlook per default)
[color=red]-addfavorite:N[/color] = Add a new favorite contact
[color=red]-removefavorite:N[/color] = Remove a favorite contact
[color=red]-callfavorite:N[/color] = Call a favorite contact
-phone:phone-number = Call phone number
-sms:phone-number = Send SMS to phone number
-smsoid:oid = Send SMS to phone number to contact identified by his oid
---------------------------------------------------------------------------------
JMLMeteo v2.55
Registry structure:
Code:
[HKEY_CURRENT_USER\Software\JML\Meteo]
"total" = dword: number of days found
...
[HKEY_CURRENT_USER Software\JML\Meteo\Current]
...
[HKEY_CURRENT_USER Software\JML\Meteo\DayN]
...
Parameters :
Code:
[color=red]-gps[/color] : acquire gps location (as JMLComm.exe)
-msn:code = city code (ex. : [b]FRXX0016[/b])
-lang:ll-ll = language (en-en per default)
-degree:C = C or F (C per default)
-map:m = number of map to download
-accu:code = city code (ex. : [b]EUR|FR|FR002|BORDEAUX[/b])
-metric: = 1 or 0 (1 per default)
-google:code = city code (ex. : [b]Bordeaux[/b])
-lang:ll = language (en per default)
-degree:C = C or F (C per default)
GPS location with built-in jmlPosition:
Code:
-gps
-accu:[b]jmlPosition[/b]
-metric: = 1 or 0 (1 per default)
OR Acquire GPS-location with JMLComm.exe and next call JMLMeteo with :
Code:
-accu:[b]jmlPosition[/b]
-metric: = 1 or 0 (1 per default)
GPS location with Sleuth's myLocation Service :
- first, install http://forum.xda-developers.com/showthread.php?t=607102
- use it to update Latitude/Longitude coordinates
- next, call JMLMeteo.exe with these parameters :
Code:
-accu:[b]myLocation[/b]
-metric: = 1 or 0 (1 per default)
GPS location with Google Latitude:
- first, copy your googleLatitude account in google.ID file.
- next, call JMLMeteo.exe with these parameters :
Code:
-accu:[b]googleLatitude[/b]
-metric: = 1 or 0 (1 per default)
---------------------------------------------------------------------------------
JMLTasks v1.40
Registry structure:
Code:
[HKEY_CURRENT_USER\Software\JML\[color=green][b]Tasks[/b][/color]]
"total" = dword: number of tasks found
[HKEY_CURRENT_USER Software\JML\[b]Tasks[/b]\Task[color=orange][b]N[/b][/color]]
"oid" = oid item in poom database
"categories" = list of categories
...
"subject" = subject
Parameters for searching :
Code:
-max:N = maximum number wanted (5 per default)
-days:N = number of days involved (5 per default)
-reg:key = registry key to store ("[color=green][b]Tasks[/b]][/color]" per default)
-withCompleted = show all tasks
-sort:due = sort by due tasks
-sort:start = sort by date (per default)
manila = store all tasks in HKEY_LOCAL_MACHINE\Software\HTC\\Manila
Parameters for task :
Code:
-view:[color=orange][b]N[/b][/color] = open poutlook.exe to view the task number N
-delete:[color=orange][b]N[/b][/color] = delete the task number N
-complete:[color=orange][b]N[/b][/color] = complete the task number N
-deleteall:due = delete all [b]due[/b] tasks
-deleteall:completed = delete all [b]completed[/b] tasks
-deleteoid:oid = delete the task identified by his oid
-completeoid:oid = complete the task identified by his oid
---------------------------------------------------------------------------------
JMLFavorites v1.00 (SOON)
Registry structure :
Code:
[HKEY_CURRENT_USER\Software\JML\[b]Favorites[/b]]
[HKEY_CURRENT_USER Software\JML\[b]Favorites[/b]\Favorite[color=orange][b]N[/b][/color]]
"type" = type of favorite : '[color=orange]contact[/color]' or '[color=orange]program[/color]'
"picture"= full path of picture file name
"label"= fistname for contact, filename for program
...
Parameters for favorite :
Code:
-call:N = CALL a contact or RUN a program
-add:N = Add a new favorite (contact per default)
-type:contact = with -add parameter, add a '[color=orange]contact[/color]'
-type:program = with -add parameter, add a '[color=orange]program[/color]'
-remove:N = Remove a favorite
---------------------------------------------------------------------------------
JMLPicture Thank you for offering me a beer. All donations (3€, 5$, +) are appreciated !
Build a picture from multiple images/texts (see picture below).
<Picture...> Parameters :
Code:
[b]Width[/b] result picture with
[b]Height[/b] result picture height
[b]Bkg[/b] initial background color (RGB format)
[b]Transparent[/b] set one color of result picture as transparent (RGB format)
[b]Target[/b] png file name of result picture
[b]Source[/b] png file name of background picture
<Image...> Parameters :
Code:
[b]Left[/b] left-coordinate
[b]Top[/b] top-coordinate
[b]Width[/b] with of displaying picture (with of picture per default)
[b]Height[/b] height of displaying picture (heigh of picture per default)
[b]ScaleStyle[/b]
[b]Alignment[/b]
[b]ID[/b] JMLToday ID ITEM (Page is required)
[b]Page[/b] JMLToday Page ITEM (ID is required)
<Text...> Parameters :
Code:
[b]Left[/b] left-coordinate
[b]Top[/b] top-coordinate
[b]Width[/b] with of displaying text
[b]Height[/b] height of displaying text
[b]Value[/b] text value
[b]FontFamily[/b] font name
[b]FontSize[/b] font size
[b]FontStyle[/b] font style : 'italic', 'bold'
[b]Color[/b] text color (RGB format)
[b]Alignment[/b] 'center', 'right' or 'left' (per default)
[b]ID[/b] JMLToday ID ITEM (Page is required)
[b]Page[/b] JMLToday Page ITEM (ID is required)
Example : ClockText.xml
Code:
<Picture Width="400" Height="200" Bkg="192,192,192" Target="%APPDIR%/ClockText.png">
<Image Left="0" Top="0" ID="BGAMPMALARM" Page="Page1" />
<Image Left="20" Top="40" ID="H1" Page="Page1" />
<Image Left="100" Top="40" ID="H2" Page="Page1" />
<Image Left="225" Top="40" ID="M1" Page="Page1" />
<Image Left="305" Top="40" ID="M2" Page="Page1" />
<Text Left="15" Top="140" Value="AM" Color="128,0,0" FontFamily="Tahoma" FontSize="8" FontStyle="Bold,Italic" />
<Text Left="15" Top="160" ID="City" Page="Page1" FontFamily="Tahoma" FontSize="6" FontStyle="Italic" />
</Picture>
@all : add some program informations ..... in Post#2
A++
Hi.
I sure do love command-line tools! I added them to the Mortscript Source Compendium's list.
And to facilitate my testing them to see if magically they will work with wm5 smartphones, I added a Command-Line tester to The Mortifier. So we can browse to the exe and enter our command line parameters. Keeps the old exe and parameters in memory so you can re-test them easily.
Thanks for these.
Hi.
So i was using Message2reg.exe. It seems with wm653 m2reg gives an error.
I am trying to use jmlsms.exe to see if that can work.
Code:
RunWait(SystemPath("ScriptPath") \ "\Utility\JMLSms.exe","-read:all")
MsgSender = RegRead(HKCU, "\Software\JML\Sms\Sms1", "sender")
MsgBody = RegRead( HKCU,"\Software\JML\Sms\Sms1", "subject")
Think that looks good?
@howdykeith : Yes I think it should work.
StatusTicker and JML...
Hi,
So i incorporated JMLsms.exe and JMLcomm.exe into the StatusTicker.
Works super great!
In future version I will include more of you apps infos... I also will make sure to include the URL to your apps as well.
Thanks much!
Hello,
I'm trying to use JMLContacts.exe to have birthdays on my WAD2 Skin.
I've installed JMLToday and everything worked fine and registry was filled by next 5 birthdays information.
Now I'm trying to update information outside of Titanium/JMLToday and to do it I'm using a mortscript.
Inside script I wrote the following line:
RunWait("\Storage Card\Program Files\UtilsExe\JML\JMLContacts.exe", "-max:3")
Unfortunately it seems not working, at least registry values are not updated. I double checked path and it appears absolutely correct.
More I tried to simply launching JMLContacts.exe directly from TCMD, and I expected it worked with all default values, but of course it didn't... Is my supposition a wrong one?
Meanwhile, thanks a lot to let available for us those little but great tools
@dagosjt :
you must use also -days (0 per default), -birthdays (and /or -anniversaries) parameters
example :
-max:3 -days:365 -birthdays
Ok ? thanks for feedback.
A++
PS : i think i 'll change the default parameters values in a next version...
JMHL said:
@dagosjt :
you must use also -days (0 per default), -birthdays (and /or -anniversaries) parameters
example :
-max:3 -days:365 -birthdays
Ok ? thanks for feedback.
A++
PS : i think i 'll change the default parameters values in a next version...
Click to expand...
Click to collapse
Yes!
Works perfect now I thought days:0 meaning was "all days", sometime it happens in software
HI JMHL
I want to know if JMLMeteo can search for a location based on latitude and longitude
@saeli : not for the moment. Next feature perhaps if more people are interested and if it's easy to hard-coded.
A++
@jmhl: perhaps ypu can use this for location awareness:
forum.xda-developers.com/showthread.php?t=607102
then it could work
Salut
Micha
@Micha : thanks, i look ....
@saeli : ok, weather location based on latitude and longitude certainly in next version.
@micha : thanks for the tips.
A++
JMHL,
Still no HD2 ?
@Zepiii : no. waiting more operator points to change....
A++
@saeli & @all : location based on latitude and longitude in next version of JMLMeteo (in next JMLToday v5.80).
2 ways :
- Sleuth's myLocation Service
- google Latitude
A++
JMHL said:
@saeli & @all : location based on latitude and longitude in next version of JMLMeteo (in next JMLToday v5.80).
2 ways :
- Sleuth's myLocation Service
- google Latitude
A++
Click to expand...
Click to collapse
this is a wery fantastic news
when you think to release new version ?

Question Windows 11 doesn't remember folder settings

Windows 11 how do I make all files and folders appear as General items and always sorted by date modified and detailed view?
I'm doing the usual ways through file options, but it doesn't work.
In all folders and for some reason it doesn't remember what settings I saved. Is there a way or reg file to make it sealed in the system and that can't be changed?
Chat gpt gave this yet to try ( didn't worked )
Spoiler: Windows Registry Editor Version 5.00
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"
[HKEY_CURRENT_USER/Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}
"LogicalViewMode"=dword:00000001
"Mode"=dword:00000004
"SortColumn"="prop:System.DateModified"
"SortOrder"="dword:00000001"
Also when win+e it opens home and there are a bunch of things and it slows down, there is a change button to open my computer but it also changes back
When I press saved shortcuts favorites on the left side of the Quick access toolbar, it finds the folder it is in and the view jumps down, and every time I have to scroll up again and again each time I press any favorite.
And when, for example, I need to select a file to upload somewhere, it also does not save the settings and every time hell need yi change the view manually
Please help to sort these problems
Thanks
chat gpt gave this script for PowerShell, not sure if it works
Spoiler: # Specify the view mode and sorting options $viewMode = 1
# Specify the view mode and sorting options
$viewMode = 1 # 1 for Details view
$sortColumn = "System.DateModified"
$sortOrder = 1 # 1 for ascending order, 0 for descending order
# Function to update the view settings for a folder
function UpdateFolderView($folderPath) {
# Path to the desktop.ini file
$desktopIniPath = Join-Path -Path $folderPath -ChildPath "desktop.ini"
# Check if the desktop.ini file exists
if (!(Test-Path -Path $desktopIniPath)) {
# Create the desktop.ini file
New-Item -Path $desktopIniPath -ItemType File | Out-Null
}
# Set the attributes of the desktop.ini file to be hidden and system
(Get-Item -Path $desktopIniPath).Attributes = 'Hidden', 'System'
# Update the content of the desktop.ini file
@"
[ViewState]
Mode=$viewMode
Vid=$sortColumn
Sort=$sortOrder
"@ | Out-File -FilePath $desktopIniPath -Encoding ASCII
}
# Specify the drive letters to target
$driveLetters = 'C', 'F'
# Loop through each drive
foreach ($driveLetter in $driveLetters) {
$drivePath = "$($driveLetter):\"
# Get all folders, including hidden ones, on the drive
$folders = Get-ChildItem -Path $drivePath -Directory -Recurse -Force -ErrorAction SilentlyContinue
# Loop through each folder and update the view settings
foreach ($folder in $folders) {
$folderPath = $folder.FullName
try {
UpdateFolderView -folderPath $folderPath
} catch [System.UnauthorizedAccessException] {
Write-Warning "Skipping folder: $folderPath. Access denied."
} catch {
Write-Warning "An error occurred while processing folder: $folderPath."
}
}
}
Best Windows 11 Folder Settings [Tips & Tricks]
If you wish to keep your PC folder organized, you must check out these Windows 11 folder settings tips and tricks.
windowsreport.com

Categories

Resources