小编Mic*_* Z.的帖子

如何定义类型T必须在C#中的通用抽象类中具有字段"ID"

我正在尝试创建一个通用类,这将允许我保存/删除客户,产品,以便我可以在一个地方拥有所有基本实现.

public class Product : ItemDataService<Product>
{
public int id {get; set;}
}

public class Customer : ItemDataService<Customer>
{
public int id {get; set;}
}

public abstract class ItemDataService<T, V>
{
public T Item { get; set; }

public int Id { get; set; }

public ItemDataService(T item)
{
    Item = item;
}

public void SaveItem(T item)
{
    if (Item.Id <= 0)
    {
        InsertItem(item);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我如何在课堂上访问课程的Id属性,以便我可以检查customerItemDataServiceItem.Id <= 0

c# generics

6
推荐指数
1
解决办法
205
查看次数

检查CTRL + ALT + DEL屏幕是否可见的另一种方法

目前,我正在使用以下代码来测试CTRL+ ALT+ DEL屏幕是否可见以及是否按预期工作。问题是,轮询此信息会消耗CPU,并且我正在寻找基于事件的选项。有谁知道另一种方法来检测此屏幕是否可见?

我只需要知道何时关闭此屏幕。我不在乎它何时打开。只是它已经打开,现在已关闭。

老实说,我找到了这段代码,但我不确定它是如何具体针对我所指的屏幕的。它似乎在寻找任何进程创建和删除事件。这意味着该屏幕必须打开一个新进程。知道该进程名称也将有所帮助。

var interval = new TimeSpan(0, 0, 3);
const string isWin32Process = "TargetInstance isa \"Win32_Process\"";

// Listen for started processes.
WqlEventQuery startQuery = new WqlEventQuery("__InstanceCreationEvent", interval, isWin32Process);
var _startWatcher = new ManagementEventWatcher(startQuery);
_startWatcher.Start();
_startWatcher.EventArrived += OnStartEventArrived;

// Listen for closed processes.
WqlEventQuery stopQuery = new WqlEventQuery("__InstanceDeletionEvent", interval, isWin32Process);
var _stopWatcher = new ManagementEventWatcher(stopQuery);
_stopWatcher.Start();
_stopWatcher.EventArrived += OnStopEventArrived;
Run Code Online (Sandbox Code Playgroud)

该屏幕的名称是什么?以及如何检测这种类型的窗口?似乎与登录窗口的类型相同。

在此处输入图片说明

c# windows winapi windows-10

4
推荐指数
1
解决办法
673
查看次数

如何使用 C# 禁用/覆盖 Windows 10 热键

我正在尝试注册某些热键,但我不能,因为它们是 Windows 的默认值。

CTRL+WIN+1 minimizes the current window. I'd like it to do something else.
I'd like to completely disable WIN+LEFT/RIGHT.
I'm also trying to handle the CTRL+WIN+Arrow in my own virtual desktop manager.
Run Code Online (Sandbox Code Playgroud)

z虚拟桌面

如有必要,这必须使用 c# 和 Win32 API 来完成。它绝对不能使用 Autohotkey。

我找到的每一页都描述了如何使用 AutoHotKey 完成此操作。

我会发布代码,但我真的不知道从哪里开始。我使用 Win32 来注册热键。我认为有一种方法可以覆盖它们,但我找不到任何信息。

有没有人有想法?

c# hotkeys windows-10

1
推荐指数
1
解决办法
3809
查看次数

标签 统计

c# ×3

windows-10 ×2

generics ×1

hotkeys ×1

winapi ×1

windows ×1