如何在WINCE7 C#.net中将结构指针发送到DeviceIoControl API

我正在使用WIN CE平台,在C#.Net中开发Windows窗体。 DeviceIoControl API可以正常使用c ++控制台应用程序中的参数(如下所述)。 nuiouser.h中的PNIC_STATISTICS结构 global declarations : TCHAR PCI1_NAME[] = _T(“PCI\\ManiXX1”); TCHAR *AUB_NAME = NULL; AUB_NAME = PCI1_NAME; pNICStat = (PNIC_STATISTICS)malloc(sizeof(NIC_STATISTICS)) ; pNICStat->ptcDeviceName = AUB_NAME ; //wchar_t* ptcDeviceName DeviceIoControl( hUB94Port, //void* IOCTL_NDISUIO_NIC_STATISTICS, pNICStat, //PNIC_STATISTICS 0, pNICStat, //PNIC_STATISTICS sizeof(NIC_STATISTICS), &dwReturnedBytes, NULL ); 但是我在使用C#.Net CF为WIN-CE7实现相同的问题 我的WIN-CE代码如下: C#中的修改结构: [StructLayout(LayoutKind.Sequential,CharSet = CharSet.Unicode)] public struct __NIC_STAT { ulong […]

在C#中读取xml文件的节点

如何将以下xml文件读入List: 部分XML文件(data.log) Message 10/13/2016 11:15:00 AM N/A Sending ‘required orders’ email. Message 10/13/2016 11:15:10 AM N/A Branches Not Placed Orders – 1018 Message 10/13/2016 11:15:10 AM N/A Branches Not Placed Orders – 1019 … 这是数据访问层(DAL): public List Get() { try { XmlTextReader xmlTextReader = new XmlTextReader(@”C:\data.log”); List recordSet = new List(); xmlTextReader.Read(); while (xmlTextReader.Read()) { […]

如何在c#中停止ffmpegvideo录制?

我在应用程序中使用FFmpeg并且它完美地启动和录制video但是当我想要停止它请求按“q”时,我收到了System.EntryPointNotFoundException错误消息。 如何从应用程序向处于运行状态的进程发送消息“q” int key_q = 81; [DllImport(“user32.dll”, EntryPoint = “postmessage”)] private static extern bool postmessage(IntPtr hwnd, uint msg, int wparam, int lparam); private void button_stop_Click(object sender, EventArgs e) { string process = “ffmpeg”; Process[] pro = Process.GetProcessesByName(“ffmpeg”); pro[0].Refresh(); IntPtr h = pro[0].MainWindowHandle; postmessage(h, 0x100, key_q, 0); }

如何为多个进程共享SQL Server CE数据库文件(.sdf)?

我在SQL Server CE中有一个数据库。 将不同计算机的多个应用程序连接到数据库时会抛出exception。 这是例外: 存在文件共享冲突。 不同的进程可能正在使用该文件。 exception类型是“SqlCeException”。 这是我的连接字符串: Data Source=\\server\ProductionDB\ProductionControl.sdf;File Mode=Read Write; Max Database Size = 4000 SQL Server CE的版本是3.5 SP2

如何解决事件日志中的.NET 2.0错误报告消息?

我在一个名为EVEMon的开源产品上工作,用C#编写,面向.NET 2.0平台,我有一个用户遇到了我们无法解决的奇怪的.NET崩溃问题。 事件类型:错误 事件源:.NET Runtime 2.0错误报告 活动类别:无 事件ID:5000 日期:2009年4月29日 时间:晚上10:58:10 用户:N / A. 电脑:删除了这个 描述: EventType clr20r3,P1 evemon.exe,P2 1.2.7.1301,P3 49ea37c8,P4 system.windows.forms,P5 2.0.0.0,P6 4889dee7,P7 6cd3,P8 18,P9 system.argumentexception,P10 NIL。 数据: //以上描述的hex表示 应用程序本身崩溃而不显示错误(尽管有error handlingUI),上述消息被复制出Windows事件日志。 最终用户已重新安装.NET并更新到最新版本。 .PDB文件随程序的每个发行版本一起分发,以帮助调试和测试,有问题的用户可以获得正确版本的EVEMon的完整PDB文件。 是否有一种特定的,经过试验和测试的技术来分析和诊断这种类型的崩溃? 如果有的话,有哪些工具和技术可以帮助调试? 特别谢谢 我要特别感谢Steffen Opel,并强调他的答案虽然没有直接回答我提出的问题,但我的代码库解决了更大的问题,即全局error handling缺少一个重要组件。

DataPackage.SetDataProvider不等待(与其文档状态不同)

DataPackage.SetDataProvider的文档说明: 当您的应用程序…在目标应用程序请求之前不想提供数据时,请使用SetDataProvider方法。 但是当我运行以下代码时,它会立即调用回调方法。 static void CopyToClipboardReference(string s) { DataPackage dataPackage = new DataPackage(); reference = s; dataPackage.SetDataProvider(StandardDataFormats.Text, CopyToClipboardAction); Clipboard.SetContent(dataPackage); } static string reference; static void CopyToClipboardAction(DataProviderRequest request) { //Called immediately! request.SetData(reference); } 当我将StandardDataFormats.Text更改为StandardDataFormats.Html它确实按预期工作(延迟呈现)但是我没有在记事本等应用程序中获得“粘贴”选项。 我如何让它等待文本,直到它从目标应用程序调用,因为它应该按照其文档进行操作? 另外 : 不会引发DataTransfer.OperationCompleted事件。

在ASP.NET(C#)中实现安全,独特的“一次性”激活URL

我有一个场景,我正在构建的网站的用户需要能够在不必登录的情况下将一些基本信息输入到webform中。 该站点正在使用ASP.NET / C#开发,并使用MSSQL 2005作为其关系数据。 将向用户发送来自站点的电子邮件,为他们提供唯一链接以输入他们所需的特定信息。 该电子邮件与我们在注册论坛等网站时所获得的电子邮件风格非常相似,其中包含一个随机生成的唯一URL参数,专门用于单一目的(例如validation论坛的电子邮件地址)。 我的问题是关于这个问题的安全实现。 我正在考虑使用GUID作为唯一标识符,但我不确定它在安全领域的影响。 GUID是否足够长,以至于不能轻易猜到值(或随着时间的推移强迫)? .NET的GUID实现是否足够随意,因为在“密钥空间”中生成所有可能值的机会相等? 如果使用GUID是一种可接受的方法,那么网站是否应该通过URL重写或通过将数据表中的信息与GUID相关联来重定向到信息? 使用URL重写会隐藏数据的真正来源吗? 我应该考虑使用TSQL的SELECT NEWID()作为.NET实现的GUID生成器吗? 我对这个问题的处理方法完全错了吗? 非常感谢, 卡尔

如何使用restsharp上传多个文件?

我想上传文件到这个api https://support.crowdin.com/api/add-file/ 如何使用RestSharp创建名为files的参数并向其添加多个文件? 我到目前为止编写了这段代码,但它不起作用,RestSharp似乎没有按预期上传文件。 var addUrl = new Uri($”https://api.crowdin.com/api/project/{projectIdentifier}/add-file?key={projectKey}&json=”); var restClient = new RestSharp.RestClient(“https://api.crowdin.com”); var request = new RestSharp.RestRequest($”api/project/{projectIdentifier}/add-file”, RestSharp.Method.POST); request.AlwaysMultipartFormData = true; request.AddQueryParameter(“key”, projectKey); request.AddQueryParameter(“json”, “”); var files = new Dictionary { { “testfile”, File.ReadAllBytes(fileName) } }; request.AddParameter(“files”, files, RestSharp.ParameterType.RequestBody); var restResponse = restClient.Execute(request); 这给了我 { “success”:false, “error”:{ “code”:4, “message”:”No files specified in request” […]

System.Collections.Generic.List`1

我有以下类名为Node class Node { public int Id { get; set; } public int? ParentId { get; set; } public string Operator { get; set; } public Node Parent { get; set; } public IList Children { get; set; } public Node() { Children = new List(); } public override string ToString() { return “Node: ” […]

选择数组的备用项C#

我有一个数组statsname为 apple X banana Y Kiwi z 我需要把苹果,香蕉和猕猴桃放在一个数组Fruit和X,Y和Z中,这个数组叫做alphabets。 有什么简单的C#机制吗?