- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 VSTO 应用程序级 Word AddIn 和一个 WPF 应用程序,这两个应用程序都需要在系统进入休眠状态并随后恢复时得到通知。我已将我的事件处理程序绑定(bind)到每个应用程序中的 SystemEvents.PowerModeChanged 事件,但由于某种原因,当系统进入休眠或恢复时它仍然不会被调用。只是为了测试,我只是想在系统进入休眠状态时写入控制台。我也试过设置断点,但也没用;尽管我不确定他们是否会这样做,因为系统正在暂停应用程序。无论哪种尝试,它都不会打印或中断:
VSTO 插件
void ThisAddIn_Startup(object sender, EventArgs e)
{
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(powerModeChanged);
}
public void powerModeChanged(object sender, PowerModeChangedEventArgs args)
{
Console.WriteLine("Sleeping.....");
}
WPF
internal MyControl()
{
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(powerModeChanged);
}
public void powerModeChanged(object sender, PowerModeChangedEventArgs args)
{
Console.WriteLine("Sleeping!!");
}
我曾尝试将事件处理程序的访问级别从公共(public)更改为私有(private),再更改为内部,反之亦然,并将绑定(bind)移动到每个应用程序代码的其他部分,但这并没有解决问题。任何帮助将不胜感激,谢谢!
解决方案:根据评论和有用的答案,事件没有触发,因为我正在通过 VirtualBox VM 运行 Windows。一旦我的同事在本地 Windows 机器上运行代码,它就成功了。
最佳答案
试试这个:
XAML:
<Window x:Class="WpfApplication279.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:WpfApplication279"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<ListView x:Name="listView1" Margin="0">
<ListView.View>
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
</Grid>
主窗口:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
}
private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
listView1.Items.Add(string.Format("{0} : Power mode changed = {1}", DateTime.Now, e.Mode));
}
}
为了在 Windows 10 机器中触发事件,请右键单击开始 按钮,然后:
通过超时让机器进入休眠模式的方法相同。这些是我的设置:
同样的结果:
关于c# - 在 VSTO 和 WPF 应用程序中未调用 SystemEvents.PowerModeChanged 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39356696/
我在.NET 4.5上有一个C#Windows窗体应用程序。 该应用程序连接到USB设备。 我想同时支持多个 session 。 为此,我需要在 session 锁定时从该设备断开连接,以允许新 se
我正在尝试想出一种方法来引发可以被多个应用程序看到的公共(public)事件。首先想到的是 SystemEvents。 有没有一种方法可以“定义”一个新的 SystemEvent,甚至是一个多个应用程
我有一个 WinForms 应用程序,它跟踪系统何时进入挂起状态( sleep )和何时恢复。应用程序使用 SystemEvents为此目的的类。它在我的机器上运行良好。然而,对于某些用户来说,事件似
我遇到过a question在此站点上,提到触发 SystemEvents.UserPreferenceChanged 事件时 UI 挂起的可能性。现在,我还没有在我的应用程序中遇到过这种情况,但我想
我遇到过a question在此站点上,提到触发 SystemEvents.UserPreferenceChanged 事件时 UI 挂起的可能性。现在,我还没有在我的应用程序中遇到过这种情况,但我想
我需要创建一个 RichTextBox 子类,除了不订阅 UserPreferenceChanged 之外,它在所有方面都以相同的方式工作。此事件导致我的应用程序挂起。我必须使用 RichTextBo
我在我的 Windows 应用程序中使用事件 SystemEvents.TimeChanged,它触发了两次。我使用的代码: using System; using Microsoft.Win32;
想象一下,我正在创建一个应用程序来测量某个用户登录计算机的时间(我正在编写的实际应用程序是不同的,但这并不重要)。 我需要跟踪用户何时登录、退出、何时挂起计算机(“关闭”菜单中的“待机”选项)以及计算
我正在使用 SystemEvents.SessionSwitch 事件来确定运行我的进程的用户是否被锁定,但该事件不会让您知道哪个用户被锁定/解锁。我怎样才能得到这个信息(从一个低特权用户拥有的进程)
我想要什么 每当 Windows 中的时区更改时,我都想做一些事情。 到目前为止我有什么 为此,我实现了事件 SystemEvents.TimeChanged,如下所示: 在构造函数中: System
我编写了这个简单的控制台应用程序来测试当我们使用设置日期时间窗口在 Windows 7 上手动更改时区时是否触发 timechange 事件?答案是肯定的,它触发了,但我正在打印当前时间,但显示不正确
我在非托管 WinAPIs 环境中使用 C++ 进行编码。 最佳答案 您正在寻找 WM_ENDSESSION 窗口消息 http://msdn.microsoft.com/en-us/library/
我的 WinForm 应用程序有挂起问题。发生的情况是,客户有时会让应用程序运行一整夜,而当他们早上回来时,应用程序通常处于挂起状态。这是我在主线程的转储文件中看到的。我不明白的是什么可以调用 Sys
我一直在处理客户端安装中的一个奇怪的应用程序挂起问题。在尝试了几件事之后,我得出的结论是,如果没有转储,它就无法工作。所以我在挂起时间从我的一位客户那里转储。我必须指出,它只发生在我的安装中,而不发生
我正在开发一个 VSTO 应用程序级 Word AddIn 和一个 WPF 应用程序,这两个应用程序都需要在系统进入休眠状态并随后恢复时得到通知。我已将我的事件处理程序绑定(bind)到每个应用程序中
我是一名优秀的程序员,十分优秀!