Topic: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim  (Read 65224 times)

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #340 on: October 02, 2019, 08:14:05 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Maybe this link can help:

_ttps://docs.microsoft.com/en-us/windows/win32/dwm/thumbnail-ovw

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #341 on: October 10, 2019, 05:04:32 AM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
Hi, lenug

Thanks for the sample code information, I used that code made a tech demo, yes, it works.
But for preview feature it needs more code to deal with:

* mouse hittest, mouse move event to update the preview window.
* preview window size with different screen resolutions.

I'm quit busy and no time to add the enhance feature in schedule.
It is on my TODO list, when I done I will reply you.

if you can program code, you can add the feature with https://github.com/slorelee/PExplorer
send me the patch code or make a pull request.

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #342 on: October 10, 2019, 04:12:05 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,

I don't know how to programe it sorry. But I found this:

PROGRAMMING THE WINDOWS VISTA DWM IN C#
_ttp://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx


This one uses part of the source code from the first link:

[C#] Desktop Window Manager functions - grab the rendered image?
_ttps://villavu.com/forum/showthread.php?t=101448


DWM FUNCTIONS List explained
_ttps://docs.microsoft.com/en-us/windows/win32/dwm/functions?redirectedfrom=MSDN


I found all of these links above after I read this:

C# - on mouseover at taskbar, a preview is generated. how can i achieve this by C# coding
_ttps://stackoverflow.com/questions/17484978/c-sharp-on-mouseover-at-taskbar-a-preview-is-generated-how-can-i-achieve-thi


____________________


If you don't have time to deal with this, maybe it's faster to getting VISUAL TOOLTIP working on winxshell:

_ttps://www.howtogeek.com/howto/windows/get-vista-taskbar-thumbnail-previews-in-windows-xp/

_____________________

Maybe this is ALL YOU NEED to know how the hover works:
"ViGlance is my own implementation of the Windows 7 Taskbar for Windows XP and Vista. It completely replaces your native windows taskbar. Stacks windows to their associated process in 1 neat group, previews window contents, gives you the ability to pin your favourite applications and it comes with the Windows 7 Start Orb."

_ttps://lee-soft.com/viglance/

Source code it's available: _ttps://github.com/lee-soft/ViGlance

_____________________________

Another interesting feature would be if you can show a second taskbar for extra monitors you can also check for the hover code in the source of Dual Monitor Taskbar:

_ttps://github.com/udaken/dualmonitortb

Dual Monitor Taskbar Is an Open Source Taskbar Extender for Windows 7
_ttps://www.howtogeek.com/94920/dual-monitor-taskbar-is-an-open-source-taskbar-extender-for-windows-7/

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #343 on: October 16, 2019, 04:52:37 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
"SBar" is a Taskbar replacement for Windows XP and Vista which brings the same Superbar functionality. Thanks to "DimitarCC" for creating this nice application.
"SBar" is a Taskbar replacement for Windows XP and Vista which brings the same Superbar functionality. Thanks to "DimitarCC" for creating this nice application.



Source code can be download here:
_ttps://archive.codeplex.com/?p=sbar

Direct link:

_ttps://codeplexarchive.blob.core.windows.net/archive/projects/SBar/SBar.zip


Updated version here:

_ttps://www.deviantart.com/dimitarcc/art/SBar-a-taskbar-replacement-125315154


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #344 on: October 16, 2019, 05:05:33 PM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
Hi, lenug

Thanks for your research. I don't check them all.

I see some source, and tested.

Most of them need Explorer.exe shell process. (strong dependency), like ViGlance.

AND they do not work well on Windows 10.

They are developing to bring new NT6~ features to old Windows, like XP.

I will reply more, when I have time to read/test/check the source what you mentioned.


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #345 on: October 18, 2019, 11:23:00 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,

I found another code to display thumbnail previews, it's based on autoit

[Final Update] Windows 7 Taskbar-Minimalistic  (by user picea892 from autoit)

You can download it here:

https://www.autoitscript.com/forum/topic/91183-final-update-windows-7-taskbar-minimalistic/

I managed to get the PicV1.au3 working which isn't the final version, you can try with finalversion2.zip but at least I can see some thumbnails and the X close button inside them.

If you want to try it, open PicV1.au3 and replace AdlibEnable by AdlibRegister in line 21:

AdlibEnable("Buttonhover", 100)
AdlibRegister("Buttonhover", 100)

then you will see the Script working if you open it in Autoit.

I can't get the other script working but you will see the thumbnail preview in this version

Autoit portable version .zip download:
https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.zip

Another version I found (by user picea892 from autoit) just now:

https://www.autoitscript.com/forum/topic/96558-windows-7-taskbar-redux-final/







I hope this help you to get the thumbnails working,


Thanks

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #346 on: October 22, 2019, 01:46:08 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,
I'm currently using WinXshell in a multi monitor config with an USB to VGA 3.0 display adapter, in the monitor connected to the adapter the image appears freezed when I maximize, minimize or drag a window. I realized this doesn't happen if I run in the background EmergeCore.exe from Emerge desktop. BTW I lost desktop icons if I run emergeCore and WinXshell can't run on top of it but the image doesn't freeze. May you implement some flag in the config file to get the auto-refresh working on multi monitor configs? I can make a gif/video explaining the problem better if you want. Basically when I minimize any window on the monitor attached to the usb to vga, the image of the minimized program remains on the screen but this is a ghost image because the minimize, maximize, close, drag functions works well, but I always get the image of the last program on the background.

So.. if I have chrome opened (background) and a file explorer opened (foreground) and I minimize file explorer, I see chrome correctly and the image in the monitor it's ok, but if I minimize chrome (last program on the background) the last image on the screen it's chrome with the hover on the minimize button in titlebar.

I tried running this: RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
after I read: _ttps://superuser.com/questions/398605/how-to-force-windows-desktop-background-to-update-or-refresh
but no lucky.

I tried installing EmergeDekstop and copying the installed files to a folder, then uninstalled it and running only EmergeCore.exe separated in a different folder with it's dlls and the monitor attached to usb-to-vga adapter works well. However I don't have desktop icons and winXshell remains on the background and it's unusable this way.
Why I'm talking about EmergeCore.exe ? because maybe it's useful to you so see what .dlls or what systems calls are the .exe of the program doing with ProcessHacker or similar. I don't know.

This is another problem I have in w10 but is not directly related to WinXshell: _ttps://www.reddit.com/r/sysadmin/comments/8imjva/windows_10_multi_monitor_maximized_window/e6jpu6i/

This fixes the two problems I explained here but can't be a fix because this switch off and on all the monitors:
Current workaround is http://www.nirsoft.net/utils/multi_monitor_tool.html - using .bat with

c:\mmtool\MultiMonitorTool.exe /SetPrimary 2
c:\mmtool\MultiMonitorTool.exe /SetPrimary 1


Well, the second problem it's probably related to Intel HD Graphics, but this doesn't happen on W8...  :sad:

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #347 on: October 22, 2019, 01:59:14 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
I think running a program with the desktop wallpaper in the background will fix the first problem I commented.

So the point will be this:
Something like the viewit-rev3.zip comment -> _ttps://superuser.com/questions/268521/can-i-sleep-one-of-the-displays-on-a-multi-monitor-setup
And after I get a black screen on bg I will need to change the position to the monitor with the problem I mentioned -> _ttps://www.reddit.com/r/techsupport/comments/7sxd48/force_program_to_open_on_a_specific_monitor_on_a/

This will fix the ghost image on the usb-to-vga monitor screen.

Maybe you know anything similar or can program something like this for secondary monitors. ( I currently use 3 monitors setup: 2 in Intel HD + 1 with the Usb to vga adapter )

Thanks for your support and congratulations for the amazing shell replacement called WinXshell

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #348 on: October 22, 2019, 02:51:29 PM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
Hi, lenug

I appreciate that very much, you share your research for the functional tools/codes of thumbnail preview.

The autoit Taskbar-Minimalistic the one, needn't explorer.exe,
but you can see it created lots of image files as the preivew windows.
pic1.bmp
pic2.bmp
...
pic20.bmp

and they are static window captures when Taskbar-Minimalistic get the Window first.
It won't update like Windows's preview window.

eg. you visit theoven.org website, the preview picture of Chrome or IE Window is theoven.org,
you change the url to www.bing.com, the preview is still show the theoven.org site.

AND I run it on Windows 10, didn't show good as your image, it is very ugly.

oneventtaskbar7.au3 has good view, but no thumbnail preview, and error on some time.


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #349 on: October 22, 2019, 03:09:42 PM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
About mutil monitor, I have only one monitor. I can't know and fix it very well.

I think it is real bug of WinXShell.exe. I just implemented very basic function of shell, not like Windows does.

* Missing taskbar group
* Missing theme
* Missing drop and drag/move the taskbar icon
* Missing mutil monitor support
* Missing Accessibility
...

MY intial goal is make a own customizable shell for Windows PE, and so good to see what it had evoluted,
but still lots of work to make it better.

And I don't have much time on it, I make it be open-source, but so far, no another contributor. I know someone build the WinXShell for ARM.

Personal, I will continue to improve it, but very slowly.

I noted the feedback, I will try to confirm it on a mutil monitor environment.
EmergeCore.exe is good open-source taskbar. I learn lot from it.
if it is easy to fix, I will update.


And there is a hidden option to only use the Desktop of WinXShell.
"JS_TASKBAR":{"notaskbar":true,...}

I don't know if it could work for you.



Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #350 on: October 22, 2019, 04:48:07 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Thanks for the quick reply, slore

I tried what you said, but the main problem is when I have only 1 window in the usb-to-vga monitor screen. If I minimize this window or move it to another monitor, a image of the window doesn't disappear from the monitor in question, maybe it's why I only have the desktop background and icons in the main monitor?

This doesn't happen if I don't run winxshell, but as we know, I don't have desktop icons and taskbar as a consequence. I tried with notaskbar:true, but nothing. It needs to be something related to the last window of this display or some system call missing I don't know.

But.. if I  have a full screen cmd on the background (last opened window and as example of a black image) in this monitor all works fine: moving windows across the display, minimizing or maximizing windows doesn't produce ghost images.

INTERESTING PART: I also tried setting the usb-to-vga monitor as the primary monitor, so WinXshell draws the desktop icons and wallpaper on this monitor and I don't have the problem in this and also in the other monitors attached (3 in total as I mentioned before).

So, maybe you can try to extend the desktop background to all the monitors as a fix because I currently have a extended desktop config and I see this:
black screen (left monitor intel output) + main monitor with desktop icons and background (center monitor intel output) + black screen  (right monitor usb-to-vga)

If you can't fix it drawing a transparent background image across the non-primary monitors (aka patch) or drawing/extending the desktop to these monitors (I think the correct way is this because I JUST TRIED to drag and drop an icon to another monitor and I can't because the cursor changed to prohibited icon, so I'm sure WinXshell only draws the desktop on the main display) I will try to run a transparent image on that particulary monitor as a "temporary fix/patch"

In conclusion, after what I tried now, the desktop BG and icons it's only drawn on the main monitor, is there any option to extend the desktop or to detect the other displays and extend the desktop ? do you know any software to put an image in the foreground?

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #351 on: October 22, 2019, 06:28:19 PM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
The background is redrawed by myself not by Windows API(don't work on win10).

I remember the drawed size is only main monitor size.
If I change it, may fix it.

But for wallpaper styles(center, tile, etc), I was painting in code for one monitor. For Multi-monitor, I think the draw process needs recalculation.

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #352 on: October 22, 2019, 10:40:45 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Oh slore, this will  be amazing! I'm sure drawing the wallpaper on each monitor will fix it.

I hope you can done it.

Lot of thanks

About the thumbnails, I have seen how it creates a lot of image files, it is ok, but instead of create the thumbnail when the window is created the thumbnail needs to be created when the mouse is hovering. Well, I know it's easy to write it.. but if you know how to detect the hover over an icon you may, probably update the thumbnail 1 time when the mouse is over the taskbar, and refresh/update the thumbnail one time again if the mouse leaves the taskbar and is again on the taskbar. In my opinion it's not necessary to update the thumbnail in real time when you're scrolling a webpage (exanple: you have the mouse over a thumbnail and you move the wheel of the mouse so the webpage is scrolling and you see it in the thumbnail image too, THIS IS NOT NECESSARY
because it's using GPU and we want minimal desktop as possible and less resource usage.

I found another application called Visual Task Tips but it probably needs explorer dependency like the other applications I mentioned. It is possible to rename WinXshell.exe to explorer.exe and simulate the explorer hover so these apps will try to draw the thumbnail like how it do it when Windows explorer is running?

Off topic:

Another question I have, if I run explorer.exe from windows 8.1 on Windows 10 it opens a file explorer without the taskbar. It is possible to get it working like how it works on w8.1 ? I tried using this: _ttps://msfn.org/board/topic/157302-windows-7-explorer-for-windows-8/ without luck, but maybe you know better than me how to do it. I read somewhere it is possible in compatibility mode but didn't work for me. But maybe you know some trick or you know how to make program like the one of the link..


Thanks for your great work!!


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #353 on: November 07, 2019, 10:05:41 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,

I discovered something about the problem I mentioned with multi monitor setup:

I think it doesn't matter if the monitor attached it's connected into the usb-to-vga adapter or directly to the Intel hdmi out because I just realized that any monitor configured at the right side of the main monitor (in Display Properties config) has the ghost image problem (config: [3][1 MAIN][2 PROBLEM]), However if I config the extra monitors in the left side of the main display, like this: [3][2][1 MAIN], I don't have the ghost image problem when I minimize a window.

In case it may help you developing it..

So, anything configured at the right side after the main display has problems in multi monitor configurations.

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #354 on: November 07, 2019, 10:06:49 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
BTW, drawing the desktop background image in all monitors will solve it, I think..

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #355 on: November 12, 2019, 11:21:14 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,

I just found more info about taskbar thumbnail creation / management, this time based on AutoHotkey and a library. I think this one doesn't have explorer taskbar dependencies but correct me if wrong. I hope you can take a look at this at tell your opinion:

Recreate Windows 10 alt-tab look & feel
https://www.autohotkey.com/boards/viewtopic.php?t=68401

[CLASS] LiveThumb - DWM thumbnail implementation
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=66585&p=286237#p286237

AHK wrapper for Vista/Win7 thumbnail functions
https://github.com/maul-esel/AeroThumbnail

This wrapper contains a library and a class that enable you to add Aero Thumbnails to AHK GUIs
and to control them.  The class is the prefered form, library support might be dropped.
http://maul-esel.github.com/AeroThumbnail/lib/docs/Thumbnail (library)
http://maul-esel.github.com/AeroThumbnail/class/docs/Thumbnail (class)

Vista's live thumnail view example:
https://autohotkey.com/board/topic/31384-vistas-live-thumnail-view/

Other interesting things I found TAKE A LOOK AT THIS ONE:

This one has some potential for WinXshell because it has an auto hide functionality when the mouse it's in the bottom part of the screen, just download it and right click on the tray icon, then Settings at check all.
Thumbnail window switcher
https://autohotkey.com/board/topic/88820-thumbnail-window-switcher/

Download compiled .rar containing the .exe of the application: http://atc101.narod.ru/100500winswithcer.rar

As you can see on the post (scroll down), an user called GEV added all used Gdip functions into one script so there are no more external dependencies".

What do you think slore?

Regards

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #356 on: December 05, 2019, 04:01:38 PM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
Maybe this link can help:

_ttps://docs.microsoft.com/en-us/windows/win32/dwm/thumbnail-ovw

Regards

Hi, lenug

Thank you, offer to many information on it, but as I stated:

Quote
« Reply #341 on: October 10, 2019, 12:04:32 AM »
ReplyQuoteModify
slore
Chef
***
Date Registered: Jun 2016
Posts: 452
Hi, lenug

Thanks for the sample code information, I used that code made a tech demo, yes, it works.
But for preview feature it needs more code to deal with:

* mouse hittest, mouse move event to update the preview window.
* preview window size with different screen resolutions.

I'm quit busy and no time to add the enhance feature in schedule.
It is on my TODO list, when I done I will reply you.

Well, I updated the demo program to adapter the size with MS' docs.
* preview window size with different screen resolutions.

I don't know where you use WinXShell. Normal Windows or Windows PE?

the demo programs needs the DWM.exe be running.

You can test it if works for you.

1). run a cmd or powershell windows, adjust the Console Window size as you like.
2). run WinPreviewTest.exe

You should see a preview windows on the left-top of the desktop, please tell the result.
If it could work, I will deal with:
* mouse hittest, mouse move event to update the preview window.

to make the feature be worked. But I won't be soon, maybe in 2020/02 or later.
I'm in quite busy time now, I even forget to release v4.2 here.

Regards


Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #357 on: December 08, 2019, 11:23:06 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
Hi slore,

I'm running full w10

It works, this shows a thumbnail of the CMD window (current window).

If it's too much work, you can maybe add an option into the config file to customize/tweak the taskbar infotooltips so I can change the background to black and the text to white color so I can see them quickly when the cursor is hovering an icon.

So the problem I have it's because I have big icons without labels in taskbar, like w7 & w8 default taskbar and, considering the taskbar combine option is not implemented I need to open and close every  browser icon to know what window it is, and waiting to read the infotip it's a loose of time and also the white background with the text not full black...

My taskbar config with Windows 8.0/8.1 default taskbar icons size, hidden labels and taskbar background color. (Only taskbar size is 3px bigger because of the cropped icon if I change it to 40px taskbar height):

"JS_TASKBAR":
  {
    "smallicon":32,
    "userebar": false,
    "theme":"dark",
    "height": 43,
    "bkcolor":[45,137,239],
   "task_line_color":[45,137,239],
   "no_task_title":true
  },

If you can add an option to fit the taskbar height adding a padding into the icon.. so when I click at the bottom part of the icon I will be able to hover/click the icon too (like in windows 7 & 8). In other words and fast impementation will be changing the task line color to clickable.

As you can see I'm using 43px for taskbar height but correct height of w7 and w8 taskbar is 40px, but if I change it to 40px maintaining default big icon size (32px) I have ugly cropped icons..

Combined icons + taskbar thumbnails will be the best shell ever made. Multitaskbar for multimonitor configs will also be great because I have a black empty space at the bottom on secondary screens, at least if you can fix the extra space..

Maybe while you don't implement combined icons functionality, maybe you can draw similar icons together? at least for Chrome browser windows because I need to go looking on entire taskbar where the application is opened, I know the main purpose of winXshell is doing the job for WinPE, but I'm telling this because maybe it's easy and fast to implement.

But I'm sure thumbnails will make WinXshell more usable, at least for the users who hide the labels.

Thanks for the amazing work!!

Regards



Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #358 on: December 08, 2019, 11:24:10 PM »

lenug

  • Jr. Chef
  • **
  • Date Registered: Apr 2019
  • Posts: 22
I will try to find an example related to this:

* mouse hittest, mouse move event to update the preview window.

Re: WinXShell - a portable shell and zero dependencies for boot.wim,winre.wim
« Reply #359 on: December 09, 2019, 05:03:56 AM »

slore

  • WimBuilder
  • Sr. Chef
  • ****
  • Date Registered: Jun 2016
  • Posts: 664
Thanks for your quick feedback.

Mouse HitTest's technology needs be done by myself.  It is WinXShell's behavior,  you need not search it on internet.

I know how to implement it,  also the combine icons. It just needs much time to implement well which is I don't have now.

When you combines them,  you needs a list to show it,  or better the thumbnail Windows like Windows 7/10 does,  this features needs lots of codes. I have the design in my mind,  but no request to implement.  Yes,  for Windows PE,  the less features lead less size and less life time on it.

 

Powered by EzPortal