Author Topic: 2 skin*-openshell.trid.xml for Classic/Open-Shell Windows style skin  (Read 1109 times)

jenderek

  • Sr. Member
  • ****
  • Posts: 375
Hello trid users,

Do you know why bees have yellow strips? Obviously to warn other animals and
also humans, that such an insect is dangerous and can hurt you with this
sting.

With Windows 8 Microsoft introduced the Metro design. There the program
icons in the start menu get colored squared background parts. This would
make sense if alert tools get a color like red. But instead in a random way
you get a rainbow color parquet. So your inner brain heritaged from stone
age cries "danger" all the time.  Luckily not all people at Microsoft are
stupid and so in Windows 11 this colored start menu is removed, but this
operating system is bad in some other aspects. So for me these are not
practicable things, but luckily there exist some alternative launchers. One
such tool is Open-Shell or formerly known as "Classic Shell". And the good
thing is that you can change the look and feeling of the program by loading
so called skin files via menu item Skin. The offered skins must have file
name extension skin or skin7 for Windows 7 style and must be located in
Skins sub directory inside shell program directory. Since Open-Shell has
become open source you can create your own skin. Or you search in the
internet for such skins made by other people.

When running TrID on such skin examples i get an unexpected output.
All examples are with low rate described as "DOS Executable Generic" by
exe-dos.trid.xml. With higher rate the examples are described as "Win32
Executable (generic)" by exe-win.trid.xml. Most correctly is description
"Win32 Dynamic Link Library (generic)" of few examples by dll.trid.xml.  All
this description are correct from generic point of view, but extensions EXE
and DLL are wrong (See appended output/trid-v-old.txt)

For comparison reason i check these examples by file command utility. When
running file command (version 5.41) all examples are descibed as "executable
(DLL)" for MS Windows (See appended output/file-5.41.txt).

Luckily on Classic Shell web site exist a page how to skin a start menu. So
this information is now shown inside new definitions by line like:
   <RefURL>
   http://www.classicshell.net/tutorials/skintutorial.html
   </RefURL>

After running tridscan to generate new definitions we can refine the
definitions. First XML construct looks like:
   <Bytes>4D5A90000300000004000000FFFF0000B800000000000000400
   <ASCII> M Z . . . . . . . . . . . . . . . . . . . . . . @</ASCII>
   <Pos>0</Pos>
That describes the starting magic with MZ as found similar inside
exe-dos.trid.xml.

To avoid running such MZ-executable made for Windows under DOS the files
contain an DOS stub. The default if you do not change the standard compiling
options is to display under DOS a text message "This program cannot be run
in DOS mode." So this fact is expressed by XML construct like:
 <ASCII> . . . . . . . . . . . ! . . L . !
 T h i s   p r o g r a m   c a n n o t   b e   r u n   i n   D O S   m o d e
 . . . . $
 </ASCII>
 <Pos>61</Pos>
And in global strings section this is expressed by line like:
   <String>THIS PROGRAM CANNOT BE RUN IN DOS MODE.</String>

In front block many short nil sequences occur like:
   <Pattern>
      <Bytes>00</Bytes>
      <Pos>216</Pos>
   </Pattern>
   ...
   <Pattern>
      <Bytes>00</Bytes>
      <Pos>1291</Pos>
   </Pattern>
Assuming that these are triggered by lucky circumstances or too few
inspected examples i delete these constructs.

The skins are described as "PE32 executable" and "Intel 80386" by file
command. These facts are expressed inside global strings section by line
like:
   <String>PE''L</String>

The skins have not their own mime type. So they get the mime type of
PE32. That is expressed by line like:
   <Mime>application/vnd.microsoft.portable-executable</Mime>

According to documentation side the only mandatory resource is a text
resource with ID=1 and type="SKIN". So apparently this is expressed by line
like:
   <String>S'K'I'N</String>

In global string section are still more lines. Some look like:
      <String>FOR TH</String>
      <String>PTION</String>
      <String>E IN</String>
      <String>NTER</String>
      <String>T TO</String>
I assume that these are created by lucky circumstances. So i delete such
lines.

Unfortunately i do not know which of the remaining lines are really required
and what are the exact difference between skin and skin7.

With the 2 trid definition and variant now all XPM examples are described (
see appended output/trid-v.txt). TrID definitions, few examples and output
are stored in archive Skins.zip. I hope that my XML files can be used in
future version of triddefs.

With best wishes
Jörg Jenderek

Mark0

  • Administrator
  • Hero Member
  • *****
  • Posts: 2731
    • Mark0's Home Page
Re: 2 skin*-openshell.trid.xml for Classic/Open-Shell Windows style skin
« Reply #1 on: July 14, 2022, 03:20:51 PM »
Thanks!