GVKun编程网logo

在Linux C控制台应用程序中模拟按键(在linux c控制台应用程序中模拟按键运行)

9

本文将介绍在LinuxC控制台应用程序中模拟按键的详细情况,特别是关于在linuxc控制台应用程序中模拟按键运行的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将

本文将介绍在Linux C控制台应用程序中模拟按键的详细情况,特别是关于在linux c控制台应用程序中模拟按键运行的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于.NET 控制台应用程序中的全局异常处理程序、c# – 在.net控制台应用程序中显示消息框、hangfire控制台应用程序中添加控制面板、Linux 下 Mono 4.0 如何才能编译 X64位 控制台应用程序?的知识。

本文目录一览:

在Linux C控制台应用程序中模拟按键(在linux c控制台应用程序中模拟按键运行)

在Linux C控制台应用程序中模拟按键(在linux c控制台应用程序中模拟按键运行)

有没有办法用C模拟 Linux中的按键?

在我的特定情况下,我使用的是Ubuntu 9.04并且需要一个简单的应用程序,在启动时调用“暂停”按钮.这将在Firefox中使用Javascript刷新iframe.

解决方法

我认为你的意思是“X11应用程序” – 从你的描述中你并不完全清楚你打算做什么.下面的代码片段将“暂停”键代码发送到当前在X11下使用XTest扩展键盘输入焦点的应用程序 – 从我所读到的这是“伪造”键盘事件的最兼容的方式.看看你是否可以将它应用到您的场景中(没有错误检查XOpendisplay是否成功,以使其更简单).
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
...
display *display;
unsigned int keycode;
display = XOpendisplay(NULL);
...
keycode = XKeysymToKeycode(display,XK_Pause);
XTestFakeKeyEvent(display,keycode,True,0);
XTestFakeKeyEvent(display,False,0);
XFlush(display);

您需要链接-lX11 -lXtst.

显然火狐需要在那个时候关注.

但是,我很想知道你要完成的更大任务是什么 – 我怀疑应该有一个比欺骗按键事件更优雅的解决方案.

.NET 控制台应用程序中的全局异常处理程序

.NET 控制台应用程序中的全局异常处理程序

问:我想在我的控制台应用程序中为未处理的异常定义一个全局异常处理程序。在asp.net中,可以在global.asax中定义一个,在windows应用程序/服务中,可以定义如下

AppDomain currentDomain = AppDomain.CurrentDomain;currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyExceptionHandler);

但是如何为控制台应用程序定义全局异常处理程序?
currentDomain 似乎不起作用(.NET 2.0)?

编辑:

啊,愚蠢的错误。
在VB.NET中,需要在currentDomain前面加上“AddHandler”关键字,否则在IntelliSense中看不到UnhandledException事件……
这是因为VB.NET和C#编译器对事件处理的处理不同。

答案1

小编典典

不,这是正确的做法。这完全按照应有的方式工作,您可能可以从中工作:

using System;class Program {    static void Main(string[] args) {        System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;        throw new Exception("Kaboom");    }    static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) {        Console.WriteLine(e.ExceptionObject.ToString());        Console.WriteLine("Press Enter to continue");        Console.ReadLine();        Environment.Exit(1);    }}

请记住,您无法以这种方式捕获由抖动生成的类型和文件加载异常。它们发生在您的 Main()
方法开始运行之前。捕捉这些需要延迟抖动,将有风险的代码移动到另一个方法中并对其应用
[MethodImpl(MethodImplOptions.NoInlining)] 属性。

c# – 在.net控制台应用程序中显示消息框

c# – 在.net控制台应用程序中显示消息框

如何在.net c#或vb控制台应用程序中显示一个消息框?
就像是:
Console.WriteLine("Hello World");
 MessageBox.Show("Hello World");

要么

Console.WriteLine("Hello")
MsgBox("Hello")

在c#和vb分别.
可能吗?

解决方法

我们可以在控制台应用程序中显示一个消息框.但首先在vb.net或c#控制台应用程序中包含此引用
System.Windows.Forms;

那么您可以为c#控制台应用程序执行以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {


            MessageBox.Show("Hello World");
        }
    }
}

对于vb.net应用程序,您可以在包含上述参考之后简单地编写代码

Module Module1

    Sub Main()
        MsgBox("Hello")
        Console.ReadKey()


    End Sub

End Module

参考:

要在vb.net程序中添加引用,请在您的项目名称上单击(在解决方案资源管理器中)>然后添加参考 – >然后.Net->然后选择System.Windows.Forms.
要在c#程序中添加引用,请右键单击在解决方案资源管理器中显示的项目文件夹中添加引用 – > .Net – >选择System.Windows.Forms.

改编自this回答相关问题.

hangfire控制台应用程序中添加控制面板

hangfire控制台应用程序中添加控制面板

1.使用nuget 管理包安装 Microsoft.AspNet.WebApi.OwinSelfHost 

2.根目录添加新建类 名为:Startup.cs

public class Startup
    {
        // This code configures Web API. The Startup class is specified as a type
        // parameter in the WebApp.Start method.
        public void Configuration(IAppBuilder app)
        {

            app.UseHangfireDashboard();
        }
    }

3.打开Program.cs

static void Main(string[] args)
        {
            GlobalConfiguration.Configuration
               .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
               .UseSimpleAssemblyNameTypeSerializer()
               .UseRecommendedSerializerSettings()
               .UseSqlServerStorage("Server=.;User ID=sa;Password=sasa;database=Hangfire;", new SqlServerStorageOptions
               {
                   CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
                   SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
                   QueuePollInterval = TimeSpan.Zero,
                   UseRecommendedIsolationLevel = true,
                   UsePageLocksOnDequeue = true,
                   DisableGlobalLocks = true
               });
            using (var server = new BackgroundJobServer())
            {
                BackgroundJob.Enqueue(() => Console.Write("11"));
                string baseAddress = "http://localhost:9001/";
                using (WebApp.Start<Startup>(url: baseAddress))
                {
                    Console.WriteLine("Hangfire Server started. Press any key to exit...");
                    Console.ReadKey();
                }
            }
        }

4.在浏览器中打开:http://localhost:9001/hangfire 即可访问

Linux 下 Mono 4.0 如何才能编译 X64位 控制台应用程序?

Linux 下 Mono 4.0 如何才能编译 X64位 控制台应用程序?

大家好, 利用 Mono , 我实验使用的 ide 是 monodevelop 在 Linux 下 或者 Windows 下都没办法生产 x64位的 控制台应用程序, 请问大家, 是否是 Mono 目前无法生产 X64位的 exe ?

今天的关于在Linux C控制台应用程序中模拟按键在linux c控制台应用程序中模拟按键运行的分享已经结束,谢谢您的关注,如果想了解更多关于.NET 控制台应用程序中的全局异常处理程序、c# – 在.net控制台应用程序中显示消息框、hangfire控制台应用程序中添加控制面板、Linux 下 Mono 4.0 如何才能编译 X64位 控制台应用程序?的相关知识,请在本站进行查询。

本文标签: