jjzjj

MarshalAs

全部标签

c# - 如何使用 C# .NET 在 Windows 中使用 "unpair"、 "remove"蓝牙设备

我遇到了一个问题。我需要从Windows取消配对或删除蓝牙设备。在这里,我的手机Redmi已配对而且我需要取消配对,所以基本上我想达到与按下“删除设备”按钮相同的效果我试过这个,但它对我不起作用,因为这个解决方案断开了蓝牙设备,但它仍然保持配对:HowtodisconnectabluetoothdevicefromC#.NetinWin7我正在使用C#WPF和InTheHand库进行配对,但它没有取消配对功能我如何实现我的目标?谢谢 最佳答案 要取消经典蓝牙设备,您必须调用BluetoothRemoveDevice功能。对于.NET

c# - byte[] array to struct with variable length 数组

我正在从套接字接收一个字节数组,字节的结构只是一个固定宽度字符串的大字符数组。在某些情况下,最后一个字段是动态的(而不是固定长度),我正在尝试将字节编码为结构。我读过可变长度的char数组需要是IntPtr,但我还没有弄清楚如何用剩余的字节对其进行编码。我还在一些文章中读到我可能需要第二个结构,但仍然无法弄清楚如何正确地编码它。这是一个这样的site在结构中处理可变长度字符数组的正确方法是什么?结构:[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]publicstructHeader{#regionprivatemem

C# 互操作 : bad interaction between fixed and MarshalAs

我需要将C#4.0中的一些嵌套结构编码为二进制blob以传递给C++框架。到目前为止,我使用unsafe取得了很大的成功。/fixed处理基本类型的固定长度数组。现在我需要处理一个包含其他结构的嵌套固定长度数组的结构。我使用了复杂的变通方法来展平结构,但后来我遇到了一个MarshalAs的例子。看起来像它可以为我节省很多问题的属性。不幸的是,虽然它给了我正确的数据量,但它似乎也停止了fixed正如该程序的输出所示,数组不会被正确编码。您可以通过在最后一行放置断点并检查每个指针处的内存来确认失败。usingSystem;usingSystem.Threading;usingSystem.

c# - 获取 Windows 服务的 PID

谁能帮我知道如何获取Windows服务的PID?我需要获取PID才能运行以下命令:Process.Start(newProcessStartInfo{Filename="cmd.exe",CreateNoWindow=true,UseShellExecute=false,Arguments=string.Format("/ctaskkill/pid{0}/f",pidnumber)}); 最佳答案 其他答案忽略的事实是,单个进程也可以托管多个自治服务。svchost.exe进程的多个实例,每个实例托管几个服务,就是最好的例子。因此,

c# - MarshalAs(UnmanagedType.LPStr) - 这如何将 utf-8 字符串转换为 char*

题目基本上就是我想问的:[MarshalAs(UnmanagedType.LPStr)]-这如何将utf-8字符串转换为char*?当我尝试在c#和c++dll之间进行通信时,我使用了上面的行;更具体地说,介于:somefunction(char*string)[c++dll]somefunction([MarshalAs(UnmanagedType.LPStr)stringtext)[c#]当我通过c#将我的utf-8文本(scintilla.Text)发送到我的c++dll时,我在VS10调试器中显示:c#字符串成功转换为char*生成的char*在监window口中正确反射(re

windows系统桌面壁纸切换的三种csharp办法,兼容win10及旧版,还有一个现成桌面小程序

我自己用这些代码做的小app如下:第一种,user32.dll//////调用外部切换壁纸的方法//////////////////[DllImport("user32.dll",EntryPoint="SystemParametersInfo")]publicstaticexternintSystemParametersInfo(intuAction,intuParam,stringlpvParam,intfuWinIni);就是一种很常用,好像兼容性最好的办法吧,但是,使用的局限性很大,多显示器情况下会导致所有显示器使用相同的壁纸!而且无法区分多个显示器第二种,IActiveDesktop

windows系统桌面壁纸切换的三种csharp办法,兼容win10及旧版,还有一个现成桌面小程序

我自己用这些代码做的小app如下:第一种,user32.dll//////调用外部切换壁纸的方法//////////////////[DllImport("user32.dll",EntryPoint="SystemParametersInfo")]publicstaticexternintSystemParametersInfo(intuAction,intuParam,stringlpvParam,intfuWinIni);就是一种很常用,好像兼容性最好的办法吧,但是,使用的局限性很大,多显示器情况下会导致所有显示器使用相同的壁纸!而且无法区分多个显示器第二种,IActiveDesktop