我正在尝试创建一个通用类,这将允许我保存/删除客户,产品,以便我可以在一个地方拥有所有基本实现.
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
目前,我正在使用以下代码来测试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)
该屏幕的名称是什么?以及如何检测这种类型的窗口?似乎与登录窗口的类型相同。
我正在尝试注册某些热键,但我不能,因为它们是 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)
如有必要,这必须使用 c# 和 Win32 API 来完成。它绝对不能使用 Autohotkey。
我找到的每一页都描述了如何使用 AutoHotKey 完成此操作。
我会发布代码,但我真的不知道从哪里开始。我使用 Win32 来注册热键。我认为有一种方法可以覆盖它们,但我找不到任何信息。
有没有人有想法?