jjzjj

c# - .NET - 从代码设置电源选项

我想用C#编写非常简单的代码-一个简单的2按钮应用程序,它允许我更改盖子关闭时执行的操作。从“休眠”到“不行动”,反之亦然。我发现它以某种方式连接到WMI-但没有关于如何实现这一点的实际信息。帮助将不胜感激。谢谢! 最佳答案 这是一个非常古老的帖子,但令人惊讶的是,在其他地方很难找到答案。这是我控制电源按钮的解决方案。希望它可以帮助某人。尽管服务于不同的目的,这篇文章帮助很大:https://www.codeproject.com/Tips/490390/How-to-disable-the-Sleep-button-while-y

c# - 在单声道中编译时 C# List 的问题(与作业相关)

我承认这是我的功课。任务说明说我必须编写一个程序来查找将由标准输入输入的图的拓扑顺序。然后我需要将其提交到教授的服务器上进行评分。现在不是算法问题了。这更像是一个技术问题。在我的计算机中,我使用.NET编译器(csc),而教授的评分机使用某种形式的单声道。效果很好,直到评分员说我得到了30/100。我的一个friend建议我使用评分员的“手动输入系统”,所以我开始,我让它为邻接列表创建了100000个列表的数组。评分员在几秒钟后报告说我的程序崩溃了。Stacktrace:at(wrappermanaged-to-native)object.__icall_wrapper_mono_ob

c# - 将指针数组转换为 IntPtr 数组

我被困在一个看似微不足道的任务上,需要你的帮助。我需要编写一个具有以下签名的方法:System.ArrayToIntPtrArray(System.Arraya)其中实际参数可以是任何pointertype的数组(例如int*[]、long**[]、void*[,])并返回具有相同形状的元素数组类型System.IntPtr具有与输入数组的元素相同的数值。问题是如果我事先不知道指针的类型,我不明白如何提取指针的数值。例如,如果我事先知道我的参数始终是void*[]类型,我可以按如下方式编写方法:unsafeIntPtr[]ToIntPtrArray(void*[]a){varresul

c# - 从 Selenium webdriver 的当前窗口 GUID 获取窗口句柄 (IntPtr)

我正在trycatch整个浏览器屏幕(例如任何工具栏、面板等)的屏幕截图,而不仅仅是整个页面,所以我得到了这段代码:using(FirefoxDriverdriver=newFirefoxDriver()){driver.Navigate().GoToUrl(url);ScreenCapturesc=newScreenCapture();//HowcanIfindnaturalIntPtrhandleofwindowhere,usingGUID-likeidentifierreturningbydriver.currentWindowHandle?Imageimg=sc.Capture

c# - 使用反射确定 .Net 类型在内存中的布局方式

我正在尝试用C#优化解析器组合器。当序列化格式与内存中格式匹配时,一种可能的优化是只对要在该类型的一个实例或什至多个实例上解析的数据执行(不安全的)memcpy。我想编写代码来确定内存格式是否与序列化格式匹配,以便动态确定是否可以应用优化。(显然,这是一个不安全的优化,可能由于一大堆微妙的原因而无法工作。我只是在试验,不打算在生产代码中使用它。)我使用属性[StructLayout(LayoutKind.Sequential,Pack=1)]强制不填充并强制内存中的顺序与声明顺序匹配。我用反射检查该属性,但实际上所有这些都确认是“无填充”。我还需要字段的顺序。(我强烈希望不必为每个字段

c# - 为什么 EnumChildWindows 会跳过 child ?

在使用WindowsAPI方法EnumChildWindows时,我遇到了奇怪的行为。好像不是接一段儿的windows。当我使用Spy++向下钻取时,我可以看到child,但当我执行我的代码时,它不会返回我在Spy++中看到的child。我在Spy++中看到的WhatIseeinSpy++http://img24.imageshack.us/img24/9264/spyhandles.png这是我的代码:publicdelegateboolEnumWindowProc(IntPtrhWnd,IntPtrparameter);[DllImport("user32")][return:Ma

c# - 如何将 IntPtr 转换为 int

窗口句柄有时是int类型,有时是IntPtrint示例:[DllImport("user32.dll")]staticexternuintGetWindowThreadProcessId(inthWnd,intProcessId);IntPtr示例:[DllImport("user32.dll",CharSet=CharSet.Auto)]staticexternIntPtrSendMessage(IntPtrhWnd,uintMsg,intwParam,StringBuilderlParam);我似乎无法从一个转换/转换为另一个。当我尝试this.ProcessID=GetWindo

c# - 如何从 C# 调用 CPU 指令?

我的处理器(Inteli7)支持POPCNT指令,我想从我的C#应用程序中调用它。这可能吗?我相信我在某处读到它不是,但是如果JIT发现它可用,它会调用它,但是我必须调用什么函数可以用这样的指令代替?Popcount在一个循环中被调用了数百万次,所以如果可能的话,我希望能够进行这种CPU优化。 最佳答案 你想玩火,我们这里喜欢玩火...classProgram{constuintPAGE_EXECUTE_READWRITE=0x40;constuintMEM_COMMIT=0x1000;[DllImport("kernel32.dl

c# - Process.MainWindowHandle 的意外行为

我一直在努力理解Process.MainWindowHandle.根据MSDN;"主窗口是进程启动时创建的窗口。初始化后,可能会打开其他窗口,包括Modal和TopLevel窗口,但与进程关联的第一个窗口仍然是主窗口"(强调已添加)但是在调试时我注意到MainWindowHandle似乎改变了值...这是我没有预料到的,尤其是在查阅了上面的文档之后。为了确认行为,我创建了一个独立的WinForms应用程序,它带有一个计时器,每100毫秒检查一次“DEVENV”(VisualStudio)进程的MainWindowHandle。这是这个测试应用程序的有趣部分...IntPtroldHWn

C# 释放 IntPtr 引用的内存

我正在使用一些非托管代码,这些代码将指针(IntPtr)返回到大型图像对象。我使用引用,但在处理完图像后,我需要释放指针引用的内存。目前,唯一能释放内存的是关闭我的整个应用程序。我需要能够从我的应用程序内部释放该内存。这是分配内存的调用。hbitmap是返回的指针,需要释放。[DllImport("twain_32.dll",EntryPoint="#1")]publicstaticexternTwainResultDsImageTransfer([In,Out]Identityorigin,[In]Identitydest,DataGroupdg,DataArgumentTypeda