Tag: c ++

鼠标在外部C#代码中移动到游戏窗口中

我正在玩游戏,每次我需要移动鼠标并点击进入游戏的屏幕以获得游戏点,所以我试图通过c#编写代码来自动点击并移动游戏屏幕中的鼠标..我得到了一些帮助,所以鼠标点击问题解决了,但我无法在游戏的屏幕上移动鼠标..你能告诉我该怎么办? 我应该使用“SetWindowsHookEx”或其他方法在游戏窗口中移动鼠标吗? 请告诉我该怎么办.. 我点击下面的“点击”代码,工作正常: public class ClickGameScreen { [DllImport(“user32.dll”)] static extern bool ClientToScreen(IntPtr hWnd, ref Point lpPoint); [DllImport(“user32.dll”)] internal static extern uint SendInput(uint nInputs, [MarshalAs(UnmanagedType.LPArray), In] INPUT[] pInputs, int cbSize); internal struct INPUT { public UInt32 Type; public MOUSEKEYBDHARDWAREINPUT Data; } [StructLayout(LayoutKind.Explicit)] internal struct MOUSEKEYBDHARDWAREINPUT { [FieldOffset(0)] public MOUSEINPUT Mouse; } internal struct MOUSEINPUT { […]

如何“刷新”TCP客户端缓冲区?

我从几个示例中提取了一个连接到服务器的全双工C#TCP客户端。 基本概念是客户端和服务器都发送/接收消息(命令和事件)。 因此,我开发了一个FullDuplexSocket类,它公开了一个Send方法来向服务器发送消息,以及一个事件处理程序来接收来自服务器的消息。 一切正常,除了我似乎无法刷新从服务器收到的消息的缓冲区。 每次服务器发送新消息时,套接字中的缓冲区都包含所有旧消息(已读取) 和新消息。 我可以通过已知的分隔符(/ r / n)拆分消息并跟踪它们,但这可能是长时间运行通信时内存问题的根源。 [编辑:将代码更新为不再存在缓冲区问题并且工作正常的解决方案]。 有没有人有什么建议。 总重写??? 代码如下,希望它能帮助他人。 这是FullDuplexSocket类: using System; using System.Text; using System.Net.Sockets; namespace Utilities { public class StateObject{ public Socket workSocket = null; public const int BUFFER_SIZE = 1024; public byte[] buffer = new byte[BUFFER_SIZE]; } public class FullDuplexSocket : IDisposable { public event NewMessageHandler OnMessageReceived; […]

使用asp文件上传器的Uplaod图像超过4 mb?

我正在使用一个asp文件上传器,通过它上传一个按钮点击图像。每当我上传超过4 mb的图像它崩溃。如果我在配置中为maxrequestlength定义一个大小然后如果我再次超过文件大小它崩溃。如果上传了大文件,是否可以限制用户并显示免责声明消息。 我的意图是让用户知道文件很大。 aspx页面 Image Upload   <%—-%> <%—-%> .cs页面事件。 protected void btnUpload_Click(object sender,EventArgs e){try {//hfCurrentId.Value =“work item id:”+ hfWorkItemID.Value; if(fileUploader.HasFile){if(fileUploader.PostedFile.ContentType.Contains(“image”)&& fileUploader.PostedFile.ContentLength <= 3145728){ if (ddlImageType.SelectedValue == “1”) { Session[“FileBytes”] = fileUploader.FileBytes; hfImage1Byte.Value = Convert.ToBase64String(fileUploader.FileBytes); imgPreview.ImageUrl = “~/Handlers/ImageHandler.ashx?workItemId=” + workItemId + “&imageTypeId=” + ddlImageType.SelectedValue; } else { Session[“FileBytes2”] = fileUploader.FileBytes; hfImage2Byte.Value = Convert.ToBase64String(fileUploader.FileBytes); imgPreview2.ImageUrl = […]

Reflection.Emit构建实体图

我花了一些时间尝试使用Reflection.Emit动态构建实体图。 使用新的平面类型(类)创建程序集,实例化它并使用reflection很容易并且工作正常。 但是当涉及到构建具有另一个动态类的generics列表的结构时,它变得更加复杂并且我被卡住了。 基本上,我想动态构建以下结构: public class Head { public string HeadId { get; set; } public AssignmentType HeadType { get; set; } public int TestIndicator { get; set; } public List Items { get; set; } public Head() { Items = new List(); } } public class Item { public string ItemId { get; set; […]

性能计数器读取访问速度非常慢 – 任务管理器如何执行此操作?

我试图实现一个性能监视工具,我想监视内存和CPU等基本内容。 我试图通过使用性能计数器这样做,因为我相信这也是任务管理器在幕后使用的。 我不知道任务管理器是如何做到这一点的,但对我而言,使用此方法检索过程数据似乎需要花费很长时间: class Program { static void Main(string[] args) { while (true) { var pcs = Process.GetProcesses() .Select(p => new PerformanceCounter(“Process”, “Working Set – Private”, p.ProcessName)); var sw = Stopwatch.StartNew(); foreach (var pc in pcs) pc.NextValue(); Console.WriteLine($”Time taken to read {pcs.Count()} performance counters: {sw.ElapsedMilliseconds}ms”); Thread.Sleep(1000); } } } 有没有人有任何关于如何做到这一点或任务管理器或Process Explorer如何做到这一点的建议?

WebBrowser快捷方式无法在PowerPoint加载项中运行…但WebBrowserShortcutsEnabled为true

我正在构建一个基于嵌入式浏览器的powerpoint插件。 但是,出于某种原因,标准快捷方式不起作用。 WebBrowserShortcutsEnabled属性设置为true(尽管我甚至尝试将其设置为false,以防我处于倒退世界)。 将它剥离到裸露的骨头,我的重复步骤是: 创建一个新项目,选择PowerPoint 2013外接程序项目类型 将新的用户控件添加到项目中 将WebBrowser添加到该控件,从工具箱中拖动它 在该属性面板中将该WebBrowser上的URL设置为例如google 将此代码添加到ThisAddIn_Startup方法,以便面板立即显示: private void ThisAddIn_Startup(object sender, System.EventArgs e) { var ctrl = new UserControl1(); var ctp = this.CustomTaskPanes.Add(ctrl, “test”); ctp.Visible = true; } 在PowerPoint中键入WebBrowser工作正常,但Ctrl + X / C / V,Del,Tab等都没有效果。 我已经尝试在Web浏览器上覆盖OnKeyPress方法,并添加了一个PreviewKeyDownEventHandler,但这两种方法中的断点都没有被击中。 我还validation了WebBrowserShortcutsEnabled在运行时仍然是真的并且没有以某种方式被更改。 我开始怀疑它可能是一个环境问题,但我不知道根本原因是什么。 我正在运行Windows 8.1,VS 2012和PowerPoint 2013,目标是.NET 4.5。 我也尝试在Windows 7上的PowerPoint 2010上安装相同的基本插件,结果相同。 有没有人能够了解我可能出现的问题? 谢谢

如何为多个动态文本框启用Google Transliteration(ASP.Net)

以下是在ASP.Net Pages中集成Google Transliteration代码的示例(随处可用)代码。 但我的问题是,如何在运行时生成的TextBoxes中启用音译? 此脚本需要文本框的ID才能应用Transliteration。 但我的文本框将在运行时生成。 需要替代此代码行: control.makeTransliteratable([ ‘transliterateTextarea’]); //Script Starts here // Load the Google Transliterate API google.load(“elements”, “1”, { packages: “transliteration” }); function onLoad() { var options = { sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH, destinationLanguage: [google.elements.transliteration.LanguageCode.HINDI], shortcutKey: ‘ctrl+g’, transliterationEnabled: true }; // Create an instance on TransliterationControl with the required // options. var control = new […]

由Windows.Security.Cryptography.CryptographicBuffer中的方法生成的IBuffer对象是否具有安全function?

Windows.Security.Cryptography.CryptographicBuffer类包含用于在字符串和可由加密函数使用的IBuffer实现对象之间进行转换的静态方法。 这些对象是否在内部具有特殊的安全措施,例如防止分页到磁盘,静态加密和/或在释放对象时擦除? 如果没有,还有其他选择吗? 对于替代方案,首选C#/ .Net for Windows Universal Apps; 必要时使用C ++ / CX。 编辑:在这里问问题的第二部分: Windows.Security.Cryptography.CryptographicBuffer中的方法生成的IBuffer对象是否具有安全function?

使用字符串分隔对字符串进行标记

如果我有一个字符串 “这是一个将被这个和那个分开的字符串” 我想把拆分结果作为 “是一个将被拆分的字符串” “然后” “这是一个字符串” “将由此分裂,” 1和2被“this”分开3和4被“that”分开 我的解决方案是使用字符串映射到字符串并将结果存储在相同类型字符串到字符串的另一个映射中。 然而,对于更复杂和更长的文本,存储在映射中的结果变得重复,即如在上面的1和3中那样重复子串“是字符串”并且该冗余产生不正确的统计结果。 您能否提供一个更好的解决方案来使用不同长字符串的分隔符来标记长字符串?

C#InstallUtil / ManagedInstallerClass:为什么键值对不会传递给安装程序上下文参数集合?

我将服务名称传递给参数列表,但是当我查看安装程序上下文时,它不存在: args = new[] { Assembly.GetExecutingAssembly().Location, “/ServiceName=WinService1” }; ManagedInstallerClass.InstallHelper(args); 为什么键值对不会传递到安装程序上下文中? public override void Install(IDictionary stateSaver) { foreach (var param in Context.Parameters) { // ServiceName is not available in the Parameters collection } }