如何使用NAudio获取计算机上所有录制设备的列表?当你想要录制时,你必须给它你想要使用的设备的索引,但是没有办法知道它是什么设备.我希望能够选择Mic,Stereo Mix等.
我在详细信息模式下有一个ListView控件,只有一列.它位于一个仅用于键盘的表格上,主要是用于向上/向下箭头滚动和输入以进行选择.所以我真的不需要滚动条,只是想让它们看起来更干净.但是,当我将ListView.Scrollable属性设置为false时,我仍然可以上下移动所选项目,但只要它移动到当前不在视图中的项目,列表就不会移动以显示该项目.我已经尝试使用EnsureVisible以编程方式滚动列表,但在此模式下它什么都不做.
有没有办法手动移动列表上下滚动,但没有滚动条存在?
我想提供一个媒体播放器的选项,我正在努力使媒体键工作,即使它被最小化.在没有焦点的情况下,在C#中捕获和处理这些关键事件的最佳方法是什么?它甚至可能吗?
对于Windows Mobile上的C#UserControl(虽然如果您知道完整的Windows,请回答它可能有效)如何更改Control的公共属性之一的Designer Properties窗口中显示的内容.例如:
private Color blah = Color.Black;
public Color Blah
{
get { return this.blah; }
set { this.blah = value; }
}
Run Code Online (Sandbox Code Playgroud)
这显示为控件,但它在"杂项"类别中,没有描述或默认值.我尝试使用System.ComponentModel中的设置,如"DesignerCategory",例如:
[DesignerCategory("Custom")]
Run Code Online (Sandbox Code Playgroud)
但是说这只适用于类声明......可以发誓它是我以前用过的System.ComponentModel项目......
@John说:
DesignerCatogy用于表示类是表单,组件等.
试试这个:
[类别( "自定义")]
我需要使用特定的命名空间才能获得这些命名空间吗?我已经完全尝试过这些并且编译器无法识别它们.
在.NETCF中,我似乎从System.ComponentModel可用的是:
DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable
Run Code Online (Sandbox Code Playgroud)
它不会尖叫的唯一一个是EditorBrowsable
尽管主要是Windows用户,但我是rsync的忠实粉丝.现在,我不想争论rsync与任何其他工具的优点......这不是我的观点.
我在Windows上运行rsync的唯一方法是通过一个在Cygwin上运行的版本,并且因为Cygwin存在Unicode问题,所以rsync也是如此.
是否有人熟悉rsync的工作原理,说是否有任何真正的技术编程障碍将rsync移植到本机Win32二进制文件?
或者也许是因为Windows用户从来没有足够的兴趣去关注它?
部分我问,因为我正在考虑尝试开始一个端口的任务,但我想确保没有什么我不知道为什么它可能不可能.
我在本机DLL中有一个函数,定义如下:
#include <string>
void SetPath(string path);
Run Code Online (Sandbox Code Playgroud)
我试着将它放在微软的P/Invoke Interop助手中,但它在"字符串"类(我认为是来自MFC?)上窒息了.
我已经尝试将它编组为各种不同的类型(C#String,char [],byte []),但每次我得到一个NotSupportedException或一个Native Assembly Exception(取决于我试过的编组).
任何人都曾使用本机字符串类的Native/Managed Interop?有没有办法让这个元帅?我是否必须自己编写Marshaler?
我目前有一些代码可以在Windows服务(用C++编写)中设置连接的USB HID设备的通知.代码如下:
GUID hidGuid;
HidD_GetHidGuid(&hidGuid);
DEV_BROADCAST_DEVICEINTERFACE NotificationFilter;
ZeroMemory(&NotificationFilter, sizeof(NotificationFilter));
NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
NotificationFilter.dbcc_classguid = hidGuid;
HDEVNOTIFY deviceNotify = RegisterDeviceNotification(StatusHandle, &NotificationFilter, DEVICE_NOTIFY_SERVICE_HANDLE);
Run Code Online (Sandbox Code Playgroud)
然后通过SERVICE_CONTROL_DEVICEEVENT事件接收通知.(请记住,这是一个服务,所以没有WM_DEVICECHANGE).
我想我可以在RegisterDeviceNotification()调用中指定DEV_BROADCAST_DEVICEINTERFACE标志,这样它就会覆盖dbcc_classguid并获取所有设备,但事实证明Windows 2000不支持该标志,这对我来说是一个破坏者.此外,我猜这将返回的不仅仅是USB设备.
我应该如何修改它以获取所有 USB设备,而不仅仅是USB HID?它应该像提供不同的GUID一样简单吗?所有USB都有GUID吗?
我希望能够显示与Windows屏幕保护程序对话框显示的基本相同的列表,以及每个屏幕保护程序的名称.然而,我遇到的问题是,对话框下拉列表中显示的名称似乎与文件名,嵌入文件信息,注册表中的任何内容等无关.
例如,3D FlowerBox屏幕保护程序具有Direct3D FlowerBox的文件描述.我无法在任何地方找到"3D FlowerBox".
这些信息存储在哪里?我该如何检索它.
我有4个不同来源的多个数据列表,其中有一组共同的ID,我希望根据ID合并在一起,基本上以新列表结束,每个ID一个,每个源一个条目.
来自4个源中的每个源的输出列表中的对象看起来像这样:
type data = {ID : int; value : decimal;}
Run Code Online (Sandbox Code Playgroud)
所以,例如我会:
let sourceA = [data1, data2, data3];
let sourceB = [data1, data2, data3];
let sourceC = [data1, data2, data3];
let sourceD = [data1, data2, data3];
Run Code Online (Sandbox Code Playgroud)
(我意识到这段代码无效,只是试图给出一个基本的想法......列表实际上是从数据库中提取和生成的)
然后我想获取sourceA,sourceB,sourceC和sourceD并将它们处理成包含如下对象的列表:
type dataByID = {ID : int; valueA : decimal; valueB : decimal; valueC : decimal; valueD : decimal; }
Run Code Online (Sandbox Code Playgroud)
...然后我可以用CSV打印出来,其中第一列是ID,而coulmns 2-5是源A-D的数据,对应于该行中的ID.
我对F#完全不熟悉,那么处理这些数据的最佳方法是什么,以便我通过ID匹配所有源数据值?
我正在使用ItemsControl来显示数据绑定项的列表,因为DataTemplate的每个核心都是一个Grid,我已经放置了所有绑定控件.
我希望能够点击列表中每个项目的整个区域.但我无法弄清楚如何使该区域可点击.
任何关于如何使整个网格区域可点击的建议都会很棒.