我正在用NW.JS(node-webkit)编写桌面应用程序.在我的应用程序中,用户可能会打开许多窗口,我想将它们从程序切换器(alt + tab)和任务栏中隐藏起来.我已经找到了从taksbar隐藏窗口的选项,但找不到任何方法将其隐藏在程序切换器中.它甚至可能吗?或者至少可以将所有窗口组合为一个(就像在Windows上的Sticky Notes中一样)?
我有一个需要坐在后台的程序,当用户连接到RDP会话时,它会进行一些环境设置,然后启动一个程序.当程序关闭时,它将执行一些内务处理并注销会话.
我目前的做法是让终端服务器启动这个应用程序.这是作为Windows窗体应用程序构建的,以防止控制台窗口出现:
public static void Main()
{
//(Snip...) Do some setup work
Process proc = new Process();
//(Snip...) Setup the process
proc.Start();
proc.WaitForExit();
//(Snip...) Do some housecleaning
NativeMethods.ExitWindowsEx(0, 0);
}
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢这个,因为任务栏中没有任何项目,并且alt-tab中没有任何内容显示.但是为了做到这一点,我放弃了对void WndProc(ref Message m) So等函数的访问权限.现在我无法收听Windows消息(喜欢WTS_REMOTE_DISCONNECT或者WTS_SESSION_LOGOFF)并且没有使用的句柄,因为bool WTSRegisterSessionNotification(IntPtr hWnd, int dwFlags);我希望我的代码更强大,所以它会做清理工作如果用户在关闭程序之前注销或断开会话.
关于我如何吃蛋糕和吃它的任何建议?
我想从任务菜单(Alt+Tab)中隐藏具有WindowStyle="None",AllowTransparency="True"和的 WPF 窗口。ShowInTaskbar="False"
我已经对此进行了研究,但所有结果似乎都是针对 WinForms 的,或者没有答案。以下是我已经研究过的一些来源:
这是我的 XAML 代码:
<Window x:Class="DesktopInfo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DesktopInfo"
mc:Ignorable="d"
Title="MainWindow" SizeToContent="WidthAndHeight" WindowStyle="None" AllowsTransparency="True" Background="Transparent" ShowInTaskbar="False" Loaded="FormLoaded">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Testing" Name="UsernameTextBlock" FontSize="20" FontWeight="Bold" Foreground="White"/>
<TextBlock Name="ComputernameTextBlock" Grid.Row="1" FontSize="20" FontWeight="Bold" Foreground="White"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是我的 C# 代码:
using System;
using System.Windows;
using System.Windows.Forms;
namespace DesktopInfo
{
/// <summary>
/// Interaction logic for …Run Code Online (Sandbox Code Playgroud) c# ×2
handle ×1
javascript ×1
message-pump ×1
node-webkit ×1
node.js ×1
nw.js ×1
wpf ×1
xaml ×1