1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

TCMD console color palette

Discussion in 'Support' started by nikbackm, Nov 16, 2010.

  1. nikbackm

    Joined:
    May 30, 2008
    Messages:
    194
    Likes Received:
    1
    I've long had problems setting my preferred colors BLACK on WHITE at work (Windows XP SP3), while it seems to work as expected at home with Windows Vista.

    After some investigation it seems the order of the colors in TCMD's color palette does not match the one in Windows (for Console colors).

    From help file:

    "Tab Colors lets you define a custom color palette to use in the tab windows. Take Command will first try to retrieve a color palette from the console (Vista or later only). If the console app is using a custom palette, Take Command will use that palette for the tab window. (If you're using XP, Take Command will try to retrieve a default custom color palette from the registry.) If there is no custom palette defined for this console, Take Command will use the palette set by Tab Colors."

    In particular it seems TCMD has swapped the colors for BLACK and WHITE compared to the Windows settings. (Which would perfectly explain the situation).

    See embedded screenshot.

    (I've worked around the problem by swapping the colors again myself, i.e. I specify the opposite of what I want)


    Edit: Turns out I can also edit the Windows color palette for TCC consoles so it will match the one in TCMD/TCC dialogs, which is a better solution. But it would have been less confusing if TCMD had matched the Windows palette from the start.
    (I discovered the existence of these console palettes stored in the registry only today)

    Windows store the TCC values in "HKEY_CURRENT_USER\Console\c:_Program Files_JPSoft_TCMD12_TCC.EXE". I made sure that "HKEY_CURRENT_USER\Console" had no values when I started, so it should have been the Windows default values that caused my problems and not some system specific ones.
     

    Attached Files:

  2. rconn

    rconn Administrator
    Staff Member

    Joined:
    May 14, 2008
    Messages:
    9,854
    Likes Received:
    83
    First, you should *never* define the colors for TCC consoles via the awful Windows registry hack. There's no good reason to do this (and several bad ones), and it's useless (and slow), since TCC and TCMD already have the ability to set the screen colors.

    Second, TCMD does not look in the XP app-specific registry entries, it looks in HKCU\Console and reads the ColorTable settings from there (i.e., the default settings for all consoles). Looking at that table and the TCMD code, I cannot see any way that white & black could be getting confused (unless they were set that way in the registry). I cannot reproduce your problem here -- can you send me the values for that registry branch? (I.e., "ColorTable01" through "ColorTable15".)
     
  3. nikbackm

    Joined:
    May 30, 2008
    Messages:
    194
    Likes Received:
    1
    I don't think I've done that as I have no idea how to do it. :)

    The problem was that the values of ColorTable00-15 differed from the colors the TCMD option dialog displayed.

    At work ColorTable00 corresponded to White (value was c0c0c0), while ColorTable07 corresponded to Black (value was 0). This was reflected correctly in the color dialog for the Windows console properties (see attached screen-shot in first post).

    But the list in TCMD showed the first color in the listbox (of 16 values) as Black even though it apparently used the value from ColorTable00 (which was white). Similar for the 8th (ColorDir07) color in the list. Again see the attached screen-shot.

    Here at home the ColorTableNN values are as TCMD excepts, i.e. ColorTable00 is Black (value 0) and ColorTable07 is White.

    The strange thing is that the behavior at work did not change even though I renamed the "HKEY_CURRENT_USER\Console" key. Are there default values in any other place (in Windows) as well? Or maybe a reboot would be needed, which I did not try.

    Well, I fixed the problem at work by starting TCC.EXE outside of TCMD and modifying its console color properties (as well saving them for other consoles with the same title), and swapped the values for ColorTable00 and ColorTable07. This created a new subkey "HKEY_CURRENT_USER\Console\c:_Program Files_JPSoft_TCMD12_TCC.EXE" which contained the edited ColorTableNN values (00 as Black and 07 as white) and which TCC/TCMD now seems to use.

    I have no idea why the order of the ColorTableNN colors at work differed from the (apparently) normal order, but it might perhaps be useful for the TCMD option dialog to read the ColorTableNN values and display the same colors in its listbox instead of (as it seems) using a hard-coded list of values. Or maybe there is another location TCMD gets the colors for its list from?
     
  4. rconn

    rconn Administrator
    Staff Member

    Joined:
    May 14, 2008
    Messages:
    9,854
    Likes Received:
    83
    First, TCMD and TCC Vista and Windows 7 do not use the registry color settings, period. (They use a new Windows console API.) So the difference in settings there is irrelevant.

    Second, DO NOT use the registry settings in XP unless you want to cause yourself needless pain. You can set TCC's colors without them, by using the OPTION dialogs, and if you don't want to do it in TCC you can do it in TCMD (for all console tab windows).

    Third, the only time you should have values in the XP registry is if some other program (like PowerShell) put them there, and you're either stuck with them or want to use them for something OTHER than TCC (but not in TCMD).

    Fourth, 0 should be black and 7 should be white; I have no idea how they got reversed on your system, but it wouldn't have been by TCC or TCMD, which never write to that registry entry.

    Fifth, TCC (and TCMD) *do* read the registry (but only in XP) to get the ColorTablenn values, and then use that as the default in the color dialogs. BUT -- if you define it in Windows, which then creates a custom TCC registry entry, TCMD and TCC will never see it (though Windows will start TCC with those colors), because they're looking for global custom console colors, not per-app ones.

    Finally -- update to a Windows version written sometime in this century and your problems go away! :-)
     
  5. nikbackm

    Joined:
    May 30, 2008
    Messages:
    194
    Likes Received:
    1
    Makes sense I guess. I had XP at home previously as well, and did not remember this problem there at any time.

    I never used the registry directly. First I used TCMD and TCC settings (which gave me swapped b&w), and finally I used the Properties for the Windows console (opened from System menu of console window) to change the "black" and "white" colors.

    Windows itself seems to put them there when you use the properties dialog to change settings for a console window.

    I did not mean to suggest that TCC changed anything. Black was still 0, it just had a different position in this 16 item color list.

    That's what I thought. Just a bit confusing that TCMD did not seem to use the actual (oddly swapped) registry values.

    But who knows what custom settings and policies the IP department might have in effect.

    Hey! I have. At least at home. Will soon be moving to Windows 7 even. But I don't think the IT department at work will move away from XP anytime soon. :)

    Well, no matter, this is no longer a problem now that I discovered a work-around. Just thought to let people know if anyone else had a problem, and if TCMD should possibly take it into account in some way.
     

Share This Page