在WPF中模拟鼠标/键盘输入
与模拟WPF中的鼠标/键盘输入有关(因此,Windows)有很多问题.我认为,我有一些不同的问题,我希望您的意见.我见过的大多数帖子都会牢记特定的更高级别的操作:我想单击此,我想将鼠标移动到此处等.为了模拟这些内容,可以简单地使用路由事件.但是,我希望从远程应用程序操作鼠标,并希望以低级输入鼠标事件:当前的鼠标位置为x,y和按钮状态,也是如此.我的目标框架是WPF,但是如果像通用的虚拟鼠标驱动程序一样,我也很酷.我没有安全问题:收到消息的应用程序将由我更高的级别编码,因此我不需要疯狂的黑客.我愿意使用托管或未托管的代码,并将兔子的洞尽其所深,但我不想重新发明轮子.我也可以在hwndhost或类似的情况下托管我的应用程序,以防万一我需要访问Windows消息. 想法? 解决方案 WPF具有一些内置的自动化功能.这有点复杂,我从来没有自己尝试过,但是我最近一直在阅读它 - 值得一看: MS747327.aspx 或搜索Google以获取" WPF自动化"
24 2024-04-26
编程技术问答社区
Windows通用应用程序中的StringWriter
我绝对是编程的新手. 我正在尝试创建一个非常简单的应用程序,其中包含三个文本框和一个最终的文本框架.我想在本地保存这三个文本框中的输入 我已经读到我应该使用的流曲机类是我应该使用的.我只是不知道从哪里开始... 到目前为止,基本上没有太多代码 public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); string name = tbxName.Text; string age = tbxAge.Text; string dinner = tbxDinner.Text; string[] answer = { name, age, dinner }; StringWriter saveText = new StringWrit
16 2024-04-26
编程技术问答社区
c# .net 4.0:可忽略的输入字符串参数和lambda表达式
我有以下方法: public IQueryable FindAllProfiles(string CountryFrom, string CountryLoc) { return db.Profiles.Where(p => p.CountryFrom.CountryName.Equals(CountryFrom,StringComparison.OrdinalIgnoreCase)); } 现在,它只是按国家/地区过滤,但我也需要按CountryLoc进行过滤. 那么如何修改Where滤镜呢? 此外,乡村可能是无效的,或者乡下可能是无效的.因此,如何将方法的签名修改为所有可无效的输入字符串参数. 我知道如何在SQL中执行此操作,但我不确定lambda表达式或linq. 谢谢 解决方案 您的问题实际上不是LINQ特定的.您可以将任何布尔条件放入所需的lambda中,例如: p => p.CountryFrom.
12 2024-04-26
编程技术问答社区
某些Python命令在Stdout中没有被捕获
我编写了一个简单的程序,该程序捕获并执行命令行Python脚本,但是存在问题.尽管我的程序捕获了Stdout,但该文本传递给Python输入功能并未写入我的程序. 例如: Python脚本: import sys print("Hello, World!") x = input("Please enter a number: ") print(x) print("This work?") 会写"你好,世界!"然后停下来.当我通过一个数字时,它将继续写入"请输入号码:3".到底是怎么回事?有解决方案吗?我的C#如下: public partial class PyCon : Window { public string strPythonPath; public string strFile; public string strArguments; private StreamWriter sw;
12 2024-04-25
编程技术问答社区
限制控制台中的输入
我正在做一个迷宫游戏.如何限制用户将在Console.Read()后输入的字符数? 我需要限制它,以便如果用户输入一个很长的字符串,它将覆盖我的迷宫. 如果您打算告诉我之后只是重写迷宫,我会说不.我不能.相信我,这将需要我另一个漫长的过程.我只想要一个限制输入的简单代码. 这是一个屏幕截图,证明了问题.您在屏幕上看到asdasjhasd....吗?看看它如何弄乱迷宫?我想限制用户可以输入的字符数量,以使其无法达到迷宫.你们能告诉我要使用什么代码? 已解决 string str = string.Empty; while (true) { char c = Console.ReadKey(true).KeyChar; if (c == '\r') break; if (c == '\b' ) { if (str != "") { str = str.Substring(
16 2024-04-24
编程技术问答社区
在Unity3D中打开一个类似于失忆症的前后门
我正在尝试实现类似于失忆症的功能:使玩家按住鼠标按钮并向前或向后拖动的黑暗下降以打开它(如果您不熟悉,请参见门示例在大约36:30). 我有以下代码,这是有效的,但是开口是抖动的,并来回反弹,我无法弄清楚我是否使用transform.Rotate. if (previousMousePosition == garbageVector) // if this is the first frame, create a reference for previousMousePosition previousMousePosition = Input.mousePosition; else { // else find the difference and rotate rotationAmount = (Input.mousePosition.x - previousMousePosition.x);
12 2024-04-24
编程技术问答社区
虚拟按键代码.MEDIA_PLAY_PAUSE不起作用
我希望你们能帮助我.我有一个用C#编写的小型Windows应用程序,该应用程序本质上是从Android设备中侦听HTTP调用的服务器.该应用程序基本上是一个遥控器 - 如果听到静音,它将静音计算机的音量,依此类推.我的问题是,我在暂停前景应用程序方面遇到了一些问题.我特别尝试模仿您如今在许多键盘上看到的播放/暂停按钮.我这样做的方法是使用Windows Input Simulator项目( http://inputsimulator.codeplex.com/a >)模拟该游戏/暂停键.不幸的是,我没有得到任何类型的可辨别响应 - 特别没有发生任何事情.由于担心我的设置,我将VirtualKeyCode.media_play_pause标志切换到静音键标志,并成功地静音了我的机器.请注意,我正在使用Windows Media Player,所以我相信它正在听电话. 我想知道的是,在暂停当前正在播放的任何媒体之前,我需要做任何额外的设置吗?还有其他方法可以实现我追求的目标,而不是模拟
8 2024-04-24
编程技术问答社区
C#相当于Java'的scn.nextInt( )
在Java中,如果我们想从控制台读取用户输入,我们可以执行以下操作. Scanner scn = new Scanner (System.in); int x; x = scn.nextInt(); //Receive integer input 在C#中,我假设我们这样做: int x; x = Console.Read(); //Receive integer input 但是当我输入7时,输出为55. 读取输入的其他2个选项是ReadLine(),可能用于读取字符串,ReadKey(),这通常用于检测您按下哪个键(如果我错了,请纠正我 ). 请不要告诉我我们必须使用readline并将整个值分析到每次int,这将是可怕的:-( 编辑:因此,提出了一个类似的问题( c#c​​onsole.read()和console.readline()问题),但是给出的所有解决方案都是使用int.TryParse和一系列代码,只是接收int或doubl
12 2024-04-23
编程技术问答社区
将多个用户输入添加到一个列表中 c#
我正在尝试从用户中获取用户输入,直到用户什么都没输入(因此输入键按),但似乎无法正常工作.用户应该能够添加尽可能多的数字,并且在未输入数字的情况下击中Enter键后,它应该显示它们. 代码: using System; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; using System.Collections.Generic; namespace Lab2 { class Program { static void Main(string[] args) { List numbersInput = new List(); Console.WriteLine("Please enter an intege
16 2024-04-23
编程技术问答社区
在控制台中检测Ctrl + S
我正在开发一个控制台应用程序,其中我需要检测几个热键,例如 ctrl + n , ctrl + o 和 ctrl + s .这是我用来识别这些热键的代码的一部分: ConsoleKeyInfo input = Console.ReadKey(true); if (input.Modifiers == ConsoleModifiers.Control) { if (input.Key == ConsoleKey.N) { // ... } else if (input.Key == ConsoleKey.O) { // ... } else if (input.Key == ConsoleKey.S) { //... } } 上面的代码在没有任何问题的情况下使用 ctrl + n 和 ctrl + o .但是,我无法为 ctrl + s 工作.经过一些快速测试
18 2024-04-22
编程技术问答社区
无法在Visual Studio Code'的C#输出上输入任何东西
所以我试图在VSCODE上运行一个真正的基本C#程序,这是代码: using System; namespace HelloWorld { class Program { static void Main(string[] args) { string Name; Console.Write("Input your username:\n"); Console.Write("u/"); Name = Console.ReadLine(); Console.Write("\nSo your username is u/" + Name); } } } 自然,它输出: 输入您的用户名: u/ 除了我无法在" u/"旁边输入任何内容,甚至不在下面. 它甚至没有冻结,弹
18 2024-04-22
编程技术问答社区
需要发送鼠标和键盘事件 WPF C#
我正在使用类似TeamViewer的应用程序(需要移动另一台PC的光标,并在此处查看我的键盘的键入).是否可以从我(客户端)(Mousemove,MouseButtondown等)捕获事件并将其直接注入另一个(服务器)侧? 我想知道是否存在像这样的WPF函数Win32: SendMessage(); PostMessage(); SendInput(); 如果没有,如何使用这些? 发送WPF事件 预先感谢 解决方案 您可以在这些冒泡的路由事件,即使处理的真实参数也会抓住所有事件,即使它们在子控制器内部.因此,将它们添加到视觉层次结构的顶部:) WPF处理程序 AddHandler(KeyUpEvent, new KeyEventHandler(OnKeyUp), true); AddHandler(MouseUpEvent, new MouseButtonEventHandler(OnMouseUp), true); private void O
14 2024-04-22
编程技术问答社区
需要发送鼠标和键盘事件 WPF C#
我正在使用类似TeamViewer的应用程序(需要移动另一台PC的光标,并在此处查看我的键盘的键入).是否可以从我(客户端)(Mousemove,MouseButtondown等)捕获事件并将其直接注入另一个(服务器)侧? 我想知道是否存在像这样的WPF函数Win32: SendMessage(); PostMessage(); SendInput(); 如果没有,如何使用这些? 发送WPF事件 预先感谢 解决方案 您可以在这些冒泡的路由事件,即使处理的真实参数也会抓住所有事件,即使它们在子控制器内部.因此,将它们添加到视觉层次结构的顶部:) WPF处理程序 AddHandler(KeyUpEvent, new KeyEventHandler(OnKeyUp), true); AddHandler(MouseUpEvent, new MouseButtonEventHandler(OnMouseUp), true); private void O
12 2024-04-21
编程技术问答社区
我应该用什么来代替OnMouseXXX事件处理程序?
我已经构建了一个小应用程序,其中我在某些对象中使​​用onmousedrag和onmousedown.我认为这将是最好的选择,因为此方法不含更新方法.但是,在编译应用程序时说:"游戏脚本或其他自定义代码包含OnMousexxx事件处理程序.此类处理程序的存在可能会影响手持设备上的性能." 所以...我应该使用什么而不是onmousedrag和onmousedown? 我已经看到我可以使用input.getmousebuttondown.但是,为此,我将不得不为具有OnMousedown的每个对象添加更新方法.这不是比拥有onmousedrag吗? ,为什么onMousexxx事件对手持设备的性能不利? 解决方案 ,为什么对手持式的表现不利 设备? 他们对性能还不错.我没有经历过任何不好的表现,但是您遇到这个错误的原因是因为Unity可能在移动设备上做更多的工作以使其正常工作.这不是为此做的,但是您不应该注意到仅通过使用它们的任何性能. 所以...
12 2024-04-21
编程技术问答社区
如何在C#中检测控制台的EOF?Console.ReadLine()在EOF时返回什么?
我想从控制台上读取线路直至EOF.我想出了这个解决方案,但我不知道它是否正确. String line; while ((line = Console.ReadLine()) != null) { } 解决方案 console. readline方法()返回: 输入流中的下一行字符,如果没有更多,则null 可用线. 问题:我提出了这个解决方案,但我不知道它是否正确! 答案:是的,您的代码正确. 另外,请在答案中浏览添加的链接,以了解有关其用途的更多信息.
18 2024-04-20
编程技术问答社区
拦截条码扫描器,完成后用焦点传递给应用程序?
是否有一种方法可以拦截USB条形码扫描仪输入,使用它,然后将其传递到具有焦点的应用程序? ? 我们目前将条形码扫描仪加载订单发货信息用于Endicia和FedEx.当这些应用程序启动时,查找字段将被焦点.扫描条形码时,文本将传递到字段中,然后将这些应用程序查找其余的客户信息.这个过程效果很好. 现在,我们试图通过将实际订单权重与应该的量度进行比较来限制选择错误.为了实时执行此实时,我需要拦截扫描仪输入并使用它检查数据库中计算的权重,以相对实际的比例权重.如果有很大的余量,我想显示警告消息. 我还需要能够将条形码传递回原始应用程序中的正确字段,以查找装运数据. 有人做过这样的事情吗?您能指出一些有关拦截输入的资源,然后将其冒泡回到聚焦的领域? 注意:这在Windows环境中.我最熟悉C#,但是VB.NET也可以工作. 解决方案 到计算机,条形码扫描仪就像键盘一样,没有密钥.扫描条形码时,扫描仪将条形码转换为键盘输入.为了捕获第二个程序中的输入,您需要使用
14 2024-04-20
编程技术问答社区
XNA | 鼠标.左键在更新中被执行了不止一次
我正在制作一款Tic-Tac-Toe游戏.我需要检查播放器是否正在单击他们已经单击的正方形. 问题是错误在第一次点击本身中显示. 我的更新代码是: MouseState mouse = Mouse.GetState(); int x, y; int go = 0; if (mouse.LeftButton == ButtonState.Pressed) { showerror = 0; gamestate = 1; x = mouse.X; y = mouse.Y; int getx = x / squaresize; int gety = y / squaresize; for (int i = 0; i
16 2024-04-19
编程技术问答社区
如何在所有应用程序中模拟键盘输入?
我正在编写一个应用程序(在C#中),作为其中的一部分,它必须模拟并将一些密钥笔触发送到另一个应用程序.我正在使用 http://inputsimulator.codeplex.com/用于模拟密钥的项目,并且它在许多应用中起作用,但是在某些应用中起作用,但是不是 - 即致命战斗4. 我已经搜索过它,发现"您必须使用xxx库"的"不可能"的许多答案.那个时候,但是... m $虚拟键盘有效.它在所有应用程序中都起作用.因此,有可能...你们中的任何人,聪明的家伙,知道我该如何实现吗? 解决方案 好吧,我想我终于可以工作了.我使用了由 Neal P 推荐的API监视器,它显示出OSK呼叫和我的差异很小.过了一会儿,我尝试使我的呼叫线程在发送和发布键发送消息之间的时间. . 其他解决方案 尽管您能够实现自己的目的,但实现的方式并不能从根本上回答您的问题:如何在所有应用程序中模拟键盘输入? 在许多情况下,通用用户模式Microsoft API已经提到了,例如使
14 2024-04-19
编程技术问答社区
Windows.Form不能触发keyDown事件
private void screensaverWindow_Load(object sender, System.EventArgs e) { this.BringToFront(); this.Focus(); this.KeyPreview = true; this.KeyDown += new KeyEventHandler(onkeyDown); } onKeyDown()从未调用.知道为什么? 编辑: 这在发布模式下起作用!我想这一定是视觉工作室调试器干涉 的地方 解决方案 似乎对我有用: public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.BringToFront();
12 2024-04-18
编程技术问答社区
在Windows Phone 7中似乎无法从TouchPanel获得触摸输入
我已经在Visual Studio中启动了一个新项目,并一直在尝试使用静态触摸板类获取输入.我已经通过enabledgestures属性启用了" tap"手势,但是当我点击屏幕时,手势没有注册(即touchpanel.isgestureavailable returns false). 其他事物,例如mouse.getState().leftButton == buttonstate.pressed.classed永远不会证明是正确的,即使在我以前的项目(基于Microsoft示例项目)中,它总是没有任何问题. 有人有任何想法,为什么我似乎无法从设备中获得任何形式的投入? 解决方案 这是我进行设置的方式 - 在页面构造函数中,我设置了手势类型: // Constructor public MainPage() { InitializeComponent(); TouchPanel.EnabledGestures = GestureType.Tap;
16 2024-04-17
编程技术问答社区