FreeRDP

深入了解 Freerdp:开源远程桌面协议的力量 Freerdp 是一个开源的远程桌面协议(Remote Desktop Protocol)客户端,它允许用户通过网络连接到远程计算机,并在本地进行操作和管理。作为一款强大的远程桌面解决方案,Freerdp 提供了稳定、高效的远程连接体验,支持跨平台的使用,并且具有良好的可定制性和扩展性。远程桌面协议是一种用于在远程计算机之间进行图形化操作和数据传输的网络协议。它允许用户通过网络连接到远程计算机,仿佛自己就像坐在远程计算机前一样进行操作,包括浏览文件、运行程序、修改设置等。客户端功能远程连接配置管理。 阅读详情

Wf_event.c

回调函数

①LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)

GetWindowLongPtr(hWnd, GWLP_USERDATA);在指定的窗口中获取信息。

GWLP_USERDATA 获取窗口关联的数据,是应用程序创建窗口时留给用户的数据。初始值是0。

 

②LRESULT CALLBACK wf_ll_kbd_proc(int nCode, WPARAM wParam, LPARAM lParam)

PKBDLLHOOKSTRUCT 是WH_KEYBOARD_LL钩子回调函数所使用的结构体。WH_KEYBOARD_LL是一个系统级的钩子“low-level keyboard Hook”,可以截获系统热键的消息。

MSDN中的结构说明和定义如下:

typedef  struct  tagKBDLLHOOKSTRUCT  {
    DWORD vkCode;      
// virtual key code
    DWORD scanCode;    // scan code
    DWORD flags;       // flags
    DWORD time;        // time stamp for this message
    DWORD dwExtraInfo; // extra info from the driver or keybd_event
}  KBDLLHOOKSTRUCT, FAR  * LPKBDLLHOOKSTRUCT,  * PKBDLLHOOKSTRUCT;
 
SHORT GetAsyncKeyState(int vKey); 参数vKey是某个按键的虚拟码(很多虚拟码跟其ASCII码数值上相等,但不代表全部。)
GetAsyncKeyState用于得到当前键盘、鼠标等按键的状态,因此,如果一个key它是一直处于down的状态,那么调用这个函数都可以获得它的状态。这在游戏控制中是非常有用的。

参数是VK_LEFT、VK_RIGHT、VK_UP、VK_DOWN之类的,具体可以参见MSDN的文档:http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

返回值是按键的状态,可以得到的状态是它是否按下,上一次调用此函数时,按键是否按下。
以下代码就是测试按键是否处于按下状态:
if( ::GetAsyncKeyState(VK_LEFT) & 0x8000f )
   do something... 
 
你不要简单地检测GetAsyncKeyState的返回值是否非零,因为如果在这个函数运行前指定的键已经被按过,则这个函数的返回值的位0为1;如果这个键目前处于按下状态,则位15为1。所以你检测位15是否为1就可以知道这个键是曾经被按过还是正在被按着。
 
还有一个API函数GetKeyState是只检测按键的当前状态的,但仍然要检测位15是否为1(位0为1表示开关键打开,即CapsLock、NumLock、ScrollLock键)。
 
调用GetAsyncKeyState函数得到某个键的状态,然后判断返回值的最高位是不是1,如果是表示这个处于按下状态
1、&与操作,&0x8000就是判断这个返回值的high-order bit(高位字节)
2、如果high-order bit是1,则是按下状态,否则UP状态

#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1) 
说明一下,带的参数要是虚拟打描码,比如"UP"的码是 VK_DOWN ,"ESC"是 VK_ESCAPE。

GetAsyncKeyState 取异步键状态。
比如,一般情况下,你可以在操作系统的控制面板中设置鼠标左右键的映射(实际的鼠标左键可以映射成右键点击事件),或者通过程序也可以这样设置,这样就产生了物理键状态(实际的),逻辑键状态(虚拟的,)。使用 GetKeyState,GetKeyboardState,等函数得到的就是逻辑键状态。
而GetAsyncKeyState 读取的是物理键状态,也是就是不管你怎么鼠标键盘映射,它只读取实际的按键状态。

FreeRDP在windows上的编译和使用 `FreeRDP` 是 `Windows`下远程桌面协议(RDP)的一种实现,类似于微软自带的`mstsc`,可以实现windows上的远程连接,特别是对于在`ubuntu`或者在`Mac`下,需要在局域网下实现到`Windows`的远程连接,这是一种不错的选择,对于在`Windows` 下已经有了`mstsc`,编译`FreeRDP` 是为了进行代码的学习。 阅读详情

相关推荐

freerdp 解压安装_Ubuntu下编译安装运作FreeRdp连接Windows

Ubuntu下编译安装运行FreeRdp连接Windows.linux下编译源码进行USB重定向到远程桌面的测试,经过参数的正确配置,可以正常的重定向。具体的操作步骤如下:⑴在虚拟机上安装git,安装命令如:sudo apt-get install git。⑵从GitHub下载FreeRdp源码,命令:git clone git://github.com/FreeRDP/FreeRDP.git⑶到...

weixin_36083434的博客 1985

freerdp获取cursor的方法

rdp协议中会把图像和鼠标样式分开发送,这样做的好处是,避免鼠标与图像一起绘制时会导致鼠标严重延迟,freerdp中可以很容易的获取鼠标样式的bitmap,但是在windows中,需要绘制ico就需要重建icoinfo文件,相对复杂,不是本文关心的内容,因此本文只介绍如何获取rbga内容。 入口函数 创建一个保存鼠标样式的数据类型,node_register_pointer函数需要在freerdp_connect函数中首先调用, typedef struct _NodePointer { rdpPoi.

Niap的博客 1020

Linux 环境下编译 freeRDP

RDP:远程桌面协议(Remote Desktop Protocol),是一个多通道的协议,可以让客户端或称 “本地电脑” 连上提供微软终端机服务的电脑(服务器端或称“远程电脑”) 一、准备: 1.环境:VMware 虚拟机,Ubuntu 64位镜像 关于下载 VMware 虚拟机和在 VMware 虚拟机中安装 Ubuntu,可查看 「Linux 环境下使用 OpenCV 显示图片」中下载虚拟机...

韭菜鲜肉大馄饨的专栏 3348

远程桌面协议(RDP)工具 FreeRDP

FreeRDP是一个免费开源实现的一个远程桌面协议(RDP)工具,用于从Linux下远程连接到Windows的远程桌面。FreeRDP 0.9版本是基于GPL开源协议,而自FreeRDP 1.0版本后是基于Apache许可协议发布。 freerdp代码结构 http://www.freerdp.com/api/annotated.html freerdp资料 https:/

xiaobeibeinihao的专栏 7861

ubuntu环境下编译安装和测试FreeRDP

简介:    RDP(Remote Desktop Protocol)是远程桌面连接协议,FreeRDP是RDP的一种实现而且重要的是它开源。RDP协议很复杂,包括BCGR、EUSB、EFS和ESC等等协议,而且连接有GateWay的网络还会涉及到RPC等协议。如果想要全部弄懂比较费时间和精力,如果真的感兴趣倒是可以一试。这里只是讲解一下,在ubuntu环境中如何编译FreeRDP的源代码,事实上...

VizXu的博客 7825

FreeRdp在Windows中的编译

网上大多数在windows下安装Freerdp的方法都是先编译openssl,然而编译需要安装perl和nasm,非常麻烦,然而这个工作可以完全交给vcpkg 编译环境 操作系统:Windows 10 1809 VisualStudio环境: Visual Studio Enterprise 2015 14.0 FreeRdp版本:2.0.0-rc4 编译过程 安装Cmake 注意勾选添加到桌...

Niap的博客 2144

【亲测免费】 推荐 FreeRDP: 开源的远程桌面协议实现库

是一个开源的远程桌面协议 (Remote Desktop Protocol, RDP) 实现库。它支持 Windows、Linux 和 macOS 等多种操作系统,并提供了命令行工具 `xfreerdp` 及图形化界面程序。 ## 什么是 FreeRDP? FreeRDP 是一款用于实现 RDP 协议的开源库。它可以让你在本地计算机上远程访问其他计算机的桌面环境,从而进行文件传输、软件开发、系...

gitblog_00052的博客 4510

FreeRDP的连接过程分析

代码如下: /** Creates a new connection based on the settings found in the "instance" parameter * It will use the callbacks registered on the structure to process the pre/post connect operations * that the caller requires. * @see struct rdp_freerdp in fre

道亦无名 2903

Windows编译FreeRDP

Windows编译FreeRDP需要准备的工具1、安装CMake (cmake-gui)2、安装`Visual Studio Community 2017`3、下载`FreeRDP`源码4、下载`libusb`5、安装`openssl `生成VS解决方案1、配置FreeRDP源码和生成路径2、选择要生成的解决方案3、配置libusb路径4、生成解决方案编译FreeRDP解决方案1、修改项目属性2、编译解决方案3、测试4、使用`wfreerdp.exe`时需要打包的dll(Release版) 需要准备的工具

5500

FreeRdp源码分析.7z

从main函数入手, 主要讲解了client的启动逻辑, channel如何建立以及channel组件的工作流程, 消息的接收和处理逻辑, 消息的发送逻辑

5.4 磁悬浮轴承控制系统仿真:在MATLAB/Simulink中搭建包含功放、传感器模型的闭环系统模型,进行稳定性与动态性能仿真

磁悬浮轴承控制系统仿真方法 摘要:磁悬浮轴承控制系统仿真需建立包含转子动力学、传感器、控制器、功率放大器和电磁执行器的高保真非线性模型。通过MATLAB/Simulink搭建闭环系统,重点建模传感器带宽限制与噪声、功放饱和特性以及电磁力非线性。仿真分析包括时域阶跃响应、扰动抑制测试,频域稳定性分析(伯德图、奈奎斯特图),以及参数摄动下的鲁棒性验证。关键要验证控制算法在非线性因素影响下的稳定性和动态性能,为实际系统实现提供可靠依据。仿真中需特别注意物理量单位一致性和数字控制离散化效应。

技术工作者 1106

【FreeRDP 】

Ubuntu 安装freerdp 远程连接window

zpz979994367的博客 5640

PHP+MYSQL宠物主题动态网页设计源码+数据库,大学生期末大作业,PHP课程设计

PHP+MYSQL宠物主题动态网页设计源码+数据库,大学生期末大作业,PHP课程设计提示:本文采用PHP对数据库进行操作:本文就介绍了PHP实现对MySQL数据库的增删改查操作基础内容。

899

freerdp 解压安装_FreeRDP的安装方法

偶然在网上看到了FreeRDP,编译安装后,果然好用。文档是记录整个安装过程的,备忘!官方网站:http://www.freerdp.com/安装完后运行的命令是:xfreerdp192.168.1.101-u administrator -p 123功能说明(摘自百度快照):1、连接机器ip地址是 192.168.1.101,2、登录远程机的账户密码是:-u administrator -p...

weixin_39530509的博客 1914

Windows 10/11 安装 HYSPLIT 气象模型全攻略(附必备工具包下载清单)

本文提供了一份详尽的Windows 10/11系统下HYSPLIT气象模型安装与配置全攻略。指南涵盖了从核心认知、必备工具包(Tcl/Tk、ImageMagick)下载,到分步安装、环境变量设置及首次运行验证的完整流程,旨在帮助研究者和学生高效部署这一用于大气轨迹模拟与污染物扩散分析的专业工具。

weixin_28335283的博客 608

手把手教你用Proteus仿真51单片机抢答器:倒计时+蜂鸣器报警完整项目

本文详细介绍了使用Proteus软件仿真51单片机智能抢答器的完整项目流程。通过系统架构设计、核心元件选型(如74LS30用于按键中断编码),结合状态机编程,实现了带可调倒计时、数码管显示和蜂鸣器报警的八路抢答器功能。项目涵盖了从原理图绘制到代码调试的全过程,是学习嵌入式系统开发的绝佳实践。

tcp8optimizer的博客 262

Freerdp2中sfreerdp在windows中运行

了解 \client\Sample 下的freerdp.c,有助于了解freerdp的结构。当然首先,需要先在windows 中成功编译freerdp链接。然后可以看到Debug目录下会生成freerdp2.lib、freerdp-client2.lib、winpr2.lib、cliprdr-client.lib等静态库,Include目录下有freerdp的头文件,\winpr\include...

Niap的博客 2455

基于STM32 FOC下桥三电阻采样方式的电机相电流重构方法

如何提高三电阻采样的调制率

wanrenqi的博客 9192

linux下freerdp编译,编译freerdp

freerdp-stable-1.0cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/freerdp-1.0 -DWITH_CUPS=OFF -DWITH_FFMPEG=OFF-DWITH_GSTREAMER=OFF -DWITH_XINERAMA=OFF -DWITH_XV=OFF -DWITH_XRANDR=ON -DWITH_NEON=OFFapt-get ...

weixin_42099815的博客 1420

Cesium 模拟飞机坠毁功能

Cesium 模拟飞机坠毁功能,粒子模拟

QQhelphelp的博客 1068

Visual Studio报错TRK0005找不到CL.exe?三步彻底解决环境变量问题

本文详细解析了Visual Studio报错TRK0005找不到CL.exe的根本原因,并提供了三步彻底解决环境变量问题的方案。从验证安装完整性到配置永久环境变量,再到注册表级修复,帮助开发者建立健壮的开发环境配置体系,确保编译链稳定运行。

weixin_30839881的博客 459

在Windows上编译FreeRDP

在Windows上编译FreeRDP FreeRDP是RDP协议的一个开源实现,像mstsc远程桌面也是RDP协议的一个实现微软把它预装在Windows系统中。今天我们就讲下如何在Windows下编译FreeRDP。 编译前准备 安装vs2019 (用vs2013以上的版本都行)安装CMake(生成.sln解决方案文件)下载FreeRDP源码下载libusb安装openssl 安装vs2019 下载链接 下载完成后自行安装,网上教程很多这里就不展开了。 安装CMake 下载地址 下载FreeRDP.

旋律的博客 2020

Python学习第32天:Web前端入门

本文介绍了Web前端开发三大核心技术:HTML、CSS和JavaScript。首先概述了HTML的发展历程和HTML5新特性,详细讲解了常用HTML标签如文本、列表、链接、图像、表格、表单等。其次介绍了CSS的基础语法、选择器、颜色字体设置、盒子模型和布局定位方法。最后简要提及JavaScript为网页添加交互功能的作用。文章为Python开发者提供了前端技术的基础知识,帮助理解网页的结构、样式和行为实现原理。

tigerhhzz的博客 1910

freerdp 解压安装_Linux下安装FreeRDP,连接Windows远程桌面好软件软件.doc

Linux下安装FreeRDP,连接Windows远程桌面好软件软件Linux下安装FreeRDP,连接Windows远程桌面的好软件软件偶尔也玩一下Linux,发现Linux下没有类似微软远程桌面的东西,当然可以安装VNC,但是VNC却不能连Windows的远程桌面,网上说可以用RDesktop,但又评论说RDesktop连接Windows机器太慢了,微软有专门为MAC系统的RDP客户端,却没看...

weixin_33739480的博客 394

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

FreeRDP客户端开发与实践指南

本文深入探讨了FreeRDP多平台客户端架构设计与实现细节,涵盖了X11、Wayland和SDL三种主流显示后端的架构设计理念、核心组件和优化策略。详细解析了客户端配置参数体系,包括连接设置、安全认证、设备重定向和性能优化等关键配置。同时深入分析了图形加速架构、SIMD指令优化、智能编解码选择等性能优化技术,以及音频重定向与设备映射的实现原理和多平台支持方案。 ## 多平台客户端架构设计(X11...

gitblog_00354的博客 1293

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mac系统编译FreeRDP

复制库文件 /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib,libcrypto.1.1.dylib到dylib/lib/目录。编译成功后文件在FreeRDP源目录下–client/Mac/cli目录MacFreeRDP.app。进入MacFreeRDP.app/Contents/MacOS目录修改库引用。将解压Xcode.app拖拽到系统APPLICATION目录。进入MacFreeRDP.app/Contents/新建文件夹 dylib/lib/

qq_43179046的博客 1269

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: MTK调试阅读
下一篇: TortoiseGit
Jackalfly
博客等级 码龄17年 96粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值