精华内容
下载资源
问答
  • 在日常软件中,常见有一种功能,存在某个tips窗口,或者某些虚控件,需要在其所在窗口移动或者大小改变时重新调整位置。目前本人想到的可能存在的几种情况: 虚控件 虚控件不是win32中的window,所以需要开发者...

    在日常软件中,常见有一种功能,存在某个tips窗口,或者某些虚控件,需要在其所在窗口移动或者大小改变时重新调整位置。目前本人想到的可能存在的几种情况:

    1. 虚控件
      • 虚控件不是win32中的window,所以需要开发者自行控制
    2. 非子窗口
      • tips窗口可能并不是所在窗口的子窗口(可能是拥有者关系而不是父子关系)
    3. 位置是根据屏幕位置进行更新,而不是根据所在窗口相对位置

    因此需要在下列两种情况下重新调整位置:

    1. 位置改变
    2. 大小改变

    对于继承MFC的CWnd窗口来说,可以分别使用下列两个窗口消息处理函数:

    1. afx_msg void OnSize(UINT nType, int cx, int cy);
    2. afx_msg void OnMove(int x, int y);

    只要在上述两个函数中,加入重新调整虚控件(或者非子窗口的tips窗口)的位置或者大小的逻辑,就可以实现上述的效果了。

    转载于:https://www.cnblogs.com/HelloGreen/p/11522749.html

    展开全文
  • 输入法发送候选文字到光标所在处是怎么做到的? 这个问题折磨我将近半个月,今天终于搞定,分享下 ...本人亲自试了下,一共捕捉到这几个消息: WM_IME_STARTCOMPOSITION WM_IME_COMPOSITION WM_IME_CHAR WM_IME

    输入法发送候选文字到光标所在处是怎么做到的?

    这个问题折磨我将近半个月,今天终于搞定,分享下

    用spy++可以捕获当我们当输入完文字按空格时,输入法调用哪些windows消息机制来完成文字从输入法候选列表被放到光标所在处。因输入法只涉及到IME消息机制,所以我们监控只监控IME消息即可,如下图所示:
    本人截图
    本人亲自试了下,一共捕捉到这几个消息:

    WM_IME_STARTCOMPOSITION
    WM_IME_COMPOSITION
    WM_IME_CHAR
    WM_IME_NOTIFY
    WM_IME_REQUEST
    WM_IME_SETCONTEXT
    

    本人发现了WM_IME_CHAR 这个关键信息,以前用过WM_CHAR发送过英文字母,于是自然而然的会好奇这个跟WM_CHAR有什么区别呢?继续百度一下

    WM_CHAR:未经输入法而直接送人程序中的字符会响应WM_CHAR消息
    WM_IME_CHAR:所有经由输入法产生的字符都会产生WM_IME_CHAR消息
    

    此时恍然大悟,原来如此,如果我们输入汉字的话,就必须要用WM_IME_CHAR,如果仅发送由键盘操作的英文字母、阿拉伯数字等只需使用WM_CHAR即可。当然也可使用WM_IME_CHAR,系统底层会帮你转为WM_CHAR

    好了,调试到这里我们大概知道是怎么实现的了,不就是通过postMessage发送的,然后调用了windows的消息机制,从而把输入法候选列表中的文字送到当前光标所在位置,话不多说直接上代码

    c++实现:

    #include <windows.h>
    using namespace std;
    int main()
    {
    	Sleep(3000);
    	// 窗口句柄
    	HWND wnd;
    	// 获得当前激活的窗口句柄
    	wnd = GetForegroundWindow();
    	// 获取本身的线程ID
    	DWORD SelfThreadId = GetCurrentThreadId();
    	// 根据窗口句柄获取线程ID
    	DWORD ForeThreadId = GetWindowThreadProcessId(wnd, NULL);
    	// 附加线程
    	AttachThreadInput(ForeThreadId, SelfThreadId, true);
    	// 获取具有输入焦点的窗口句柄
    	wnd = GetFocus();
    	// 取消附加的线程
    	AttachThreadInput(ForeThreadId, SelfThreadId, false);
    	if (wnd) {
    	   // 发送消息
    		PostMessageA(wnd, WM_CHAR, (WPARAM)'a', 0);
    		PostMessageA(wnd, WM_IME_CHAR, (WPARAM)'测', 0);
    		PostMessageA(wnd, WM_IME_CHAR, (WPARAM)'试', 0);
    	}
    	return 0;
    }
    

    java实现:

    <dependency>
    	<groupId>net.java.dev.jna</groupId>
    	<artifactId>jna</artifactId>
    	<version>5.7.0</version>
    </dependency>
    
    <dependency>
    	<groupId>net.java.dev.jna</groupId>
    	<artifactId>jna-platform</artifactId>
    	<version>5.7.0</version>
    </dependency>
    
    package com;
    
    import com.sun.jna.Library;
    import com.sun.jna.Native;
    import com.sun.jna.platform.win32.User32;
    import com.sun.jna.platform.win32.WinDef;
    import static com.sun.jna.platform.win32.WinUser.WM_CHAR;
    import com.sun.jna.win32.W32APIOptions;
    
    /**
     * Created by administor on 2021/3/17.
     */
    public class CursorDemo {
    
        public interface MyUser32 extends Library {
            MyUser32 INSTANCE =  Native.load("user32.dll", MyUser32.class, W32APIOptions.DEFAULT_OPTIONS);
            WinDef.HWND GetFocus();
        }
    
        public interface MyThread32 extends Library {
            MyThread32 INSTANCE =  Native.load("api-ms-win-core-processthreads-l1-1-0.dll", MyThread32.class);
            int GetCurrentThreadId();
        }
        
        public static void main(String[] args) throws InterruptedException {
            Thread.sleep(3000);
            // 窗口句柄
            WinDef.HWND wnd;
            // 获得当前激活的窗口句柄
            wnd = User32.INSTANCE.GetForegroundWindow();
            if (wnd != null) {
                //获取本身的线程ID
                int SelfThreadId = MyThread32.INSTANCE.GetCurrentThreadId();
                //根据窗口句柄获取线程ID
                int ForeThreadId = User32.INSTANCE.GetWindowThreadProcessId(wnd, null);
                //附加线程
                User32.INSTANCE.AttachThreadInput(new WinDef.DWORD(ForeThreadId), new WinDef.DWORD(SelfThreadId), true);
                //获取具有输入焦点的窗口句柄
                wnd = MyUser32.INSTANCE.GetFocus();
                //取消附加的线程
                User32.INSTANCE.AttachThreadInput(new WinDef.DWORD(ForeThreadId), new WinDef.DWORD(SelfThreadId), false);
               // 发送消息
                User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('a'), new WinDef.LPARAM(0));
                User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('测'), new WinDef.LPARAM(0));
                User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('试'), new WinDef.LPARAM(0));
            }
        }
    }
    

    java中还有一种方法实现就是把上图用c++写好的函数封装成dll文件,java直接调用即可,原理类似

    本人用java编写时遇到了很多问题,总结如下
    1、jna中不存在GetFocus方法
    解决方法:定义接口MyUser32见代码
    2、jna中不存在GetCurrentThreadId方法
    解决方法:定义接口MyThread32见代码
    3、Dependency Walker用来查看user32.dll缺失什么文件
    本例中,因为在jna中找不到GetCurrentThreadId,所以就反编译了下user32.dll,被我发现这个函数在api-ms-win-core-processthreads-l1-1-0.dll这个包里,windows系统自带,直接调用即可
    本人截图

    备注:
    1、如果需要往javaFx窗口上光标处发送文字,需要如下实现,最后一个参数改成1,代表数字个数,不然没有效果,java同c++

    	PostMessageA(wnd, WM_CHAR, (WPARAM)'a', 1);
    	PostMessageA(wnd, WM_IME_CHAR, (WPARAM)'测', 1);
    	PostMessageA(wnd, WM_IME_CHAR, (WPARAM)'试', 1);
    
    	User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('a'), new WinDef.LPARAM(1));
        User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('测'), new WinDef.LPARAM(1));
        User32.INSTANCE.PostMessage(wnd, WM_CHAR, new WinDef.WPARAM('试'), new WinDef.LPARAM(1));
    

    2、Spy++的使用(区分32位跟64位,取决你的系统):
    https://www.cnblogs.com/chenyangchun/p/7262457.html

    3、Dependency Walker的使用(区分32位跟64位,取决你的系统):
    https://blog.csdn.net/lsq2902101015/article/details/46911457

    4、windows需要的dll如果你的电脑没有,可以到这里下载https://www.dll-files.com/

    展开全文
  • 在 ListBox 之中, 如何检测鼠标所在位置的选项? VB技术很实用的源码VB经典源码,别的地方都找不到,本人长期提供原创源码,请到我的博客www.cpu7.net编程资料栏获取。
  • 记录原因是因为本人最近在调试spark 数据输入到hive中,经常本地调试,但是本地连接远程hive需要远程hive的hive-site.xml文件,CDH中不太好找,记录下来以供大家方便,也给自己做个笔记 登陆CDH控制台 进入hive...

    记录原因是因为本人最近在调试spark 数据输入到hive中,经常本地调试,但是本地连接远程hive需要远程hive的hive-site.xml文件,CDH中不太好找,记录下来以供大家方便,也给自己做个笔记

    1. 登陆CDH控制台
    2. 进入hive组件
    3. 进入任意一台 Hive Metastore Server 中
    4. 选择 “进程” ,其中就有配置文件

    hive-site.xml 配置文件

    直接右键打开即可

    注意:这里的hive连接mysql元数据库的密码为加密方式,如果本地调试,需要更改。

    参考连接: cdh版 hive hive-site.xml 位置

    展开全文
  • 在初次使用PyCharm编译器运行Python程序时就出现了系统找不到指定文件所在位置的问题。 在上网看了许多人提供的解决方案之后,我从中浏览几个与所出现问题相近的答案,并结合本人运行程序时出现的问题将解决方法...

    对于许多程序初学者来说可能会碰到许多问题,首先可能在编译器运行程序时就会出现各种问题。我就是这样的一个程序员小白。在初次使用PyCharm编译器运行Python程序时就出现了系统找不到指定文件所在的位置的问题。

    在上网看了许多人提供的解决方案之后,我从中浏览几个与所出现问题相近的答案,并结合本人运行程序时出现的问题将解决方法作为学习笔记记录在此。希望对我今后的学习以及对于那些像我一样的初学者能够提供一些帮助。

    使用PyCharm运行程序时出现系统找不到指定文件位置的错误的解决:

    第一步:看到错误提示【Configure Python Interpreter】,点击此提示或者从File\rightarrowSettings\rightarrowProject Interpreter;

    第二步:点击设置选择框后边的齿轮按钮;

    第三步:在弹出的菜单里面选择Add;

    第四步:在Add Python interpreter界面选择[System interpreter]设置,点击右侧的【...】;

    第五步:浏览并选中已安装好的python.exe(提前安装好Python解释器);

    第六步:点击OK确认修改即可。

     

     

     

     

    展开全文
  • (注:知识浩瀚,本人能力有限,定有不足,往各位多多指点,不足之处定要指出,俺好随时改进,小的无以为报,在此鞠躬致谢…) 根据自身经纬度,查询周围一定范围内的地理位置(经纬度),这在很多需要定位的项目中经常...
  • 采用独创的第三代IP地址主动探测技术,配合在线获取地理位置信息功能,及囊括全国数万乡镇、街道的IP 信息库,真正做到准确高效显IP,好友上网地点一网打尽! 利用隐身特征值获取及分析技术,及多种显隐身方式相互...
  • 今天给大家介绍一下,不知道大家在使用Git进行代码管理时,是如何提交代码的,应该有很多人都是使用AS自身/Sourcetree等等,很多方式去实现,本人比较喜欢使用Git命令进行提交,但是每次提交的时候,为了做到“只...
  • 今天安装了一个office document Image Writer虚拟打印机,office版本是2003,装完后office打开时提示一个错误——如下图所示。网上查了一下类似错误导致的... 本人的解决方法是这样子的:(结果是成功的)  1. 运
  • 用户位置及其活动特点和趋势与其所在位置的实际状况及本人意愿密切联系,用户所在位置的资源和状况信息直接影响了用户的位置行为。本文引入小世界网络模型分析用户的位置行为特征,发现用户基于位置的行为属性和聚类...
  • 查找字符的位置

    2017-01-02 23:04:51
    假如有一个字符串 “abc,def,ghi,jkl” 用indexOf(",")能够查找到第一个“,”号所在位置 但如果我要查找第二个和第三个的“,”的位置要如何实现呢 谢谢各位前辈 本人刚刚接触
  • 更改默认 nginx.conf 配置文件位置

    万次阅读 2019-02-25 11:49:20
    nginx默认配置 安装时 nginx.conf所在位置为:/usr/local/nginx/conf/nginx.conf 本人需要将其移动到 /xxx/nginx 下   1、将原文件移动到自己需要更改的目录 mv /usr/local/nginx/conf/nginx.conf /xxx/nginx/...
  • <div><p>本人所在位置是上海的普陀区,此次更新后一打开就收到了一个“普陀区气象台”的大雾预警,但上海的普陀区根本就没有自己的气象台,于是就怀疑是不是错拉了浙江舟山普陀区的数据,...
  • nginx默认配置 安装时 nginx.conf所在位置为:/usr/local/nginx/conf/nginx.conf 本人需要将其移动到 /xxx/nginx 下 1、将原文件移动到自己需要更改的目录 mv /usr/local/nginx/conf/nginx.conf /xxx/nginx/ 2...
  • 1.描述  本人最近参与基于MVC5+EF6+ Bootstrap3的食品安全监管系统设计、开发... 根据选择的产品生产批次信息,查询统计产品销售到哪些省市,省市有多少家单位,根据单位地址,使用百度地图显示单位所在省市位置。  
  • create database LtsDatabase \\创建数据库 on ( name=LtsDatabase_data,\\数据库名称 ...filename='d:\temp\LtsDatabase_data.mbf',\\文件所在位置,扩展名.mdf size=6, \\数据库文件初始化大小 maxsize=12, ...
  • 但在非Windows Server平台下(楼主本人使用的XP系统),却没有这个选项,只有右击鼠标,选择... 可修改注册表,使其右键菜单也支持直接打开文件所在位置。  将如下注册表文件内容添加到注册表即可。 Wind...
  • 当word文件页数很多时,通过本代码,可以很方便的跳转到上一次保存退出时光标所在位置,此方案系本人原创,未经许可,不得转载。本方案并非网上的传统方法Shift + F5,而是依赖事件触发。希望给大家的工作带来便利
  • 所在位置 行:1 字符: 1 + python + ~~~~~~ + CategoryInfo : NotSpecified: (Python 2.7.11 (...ntel)] on win32:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Type "help", ...
  • pwd 当前所在文件夹位置 cd / 相对于当前文件夹路径下,进入该文件夹下存在的目录中,可多级跳转 cd // 相对于根目录进行文件夹跳转 cd …/… 返回当前文件夹一至多级目录 cd / 返回到根目录 查看当前文件夹中文件...
  • 基于航班的应用程序,允许用户使用“三个字”输入他们的位置,并显示其所在地区的航班列表。 使用了哪些工具? JavaScript,MongoDB,React,Express,CSS,HTML5。 我从这个项目中学到了什么 这是一个机会,...
  • 首先,找到vs所在位置,主程序名为devenv.exe,然后:在"devenv.exe"上右键单击"Troubleshoot compatibility"(中文应该叫解决兼容问题之类,因为本人电脑是英文版,所以大家找找同义词吧)等会再出菜单,单击...
  • 【ffmpeg】常用结构体集合

    千次阅读 2015-12-16 13:44:41
    本人所用ffmpeg源码版本:ffmpeg-2.8.3,注意,版本不同,某些代码结构及其及所在文件、位置可能不同。 几种重要结构体之间的关系,图片来自雷神博客 结构体AVFormatContext 该结构体在avformat.h中,...
  • 23 WebGL的视点和视线

    千次阅读 2017-06-01 15:15:06
    案例查看地址:点击这里强烈建议大家再往后看的时候,把本人更新的GLSL ES语言相关的内容先查看一遍,然后再继续本内容及以后内容的学习。这一节往后,我们就开始接触3d相关的信息了,所以,今天,先接触一下跟3d...
  • 本程序首先获得当前位置的经纬度,然后根据经纬度获得当前所在的城市名,经检测可以获得本人所在的汉中市。 j
  • vim命令详解

    2021-03-11 15:37:57
    i 光标所在位置插入 I 光标所选行的首位置插入 A 光标所在行的最后一位进行插入 a 光标所在位置的下一位进行插入 O 光标所在位置的上一行(新建的一行)进行插入 o 光标所在的下一行(新建的一行)进行插入 光标移动...
  • Color.exe和测量尺

    2015-09-18 10:12:13
    Color.exe和测量尺,本人亲测可用,本人在使用的两款小工具软件,Color.exe双击打开后,鼠标移到电脑的所在位置会显示当前位置的颜色RGB值,测量尺可以测量控件的像素值,双击可以切换横竖两个方向,好用,不会误花...
  • 冰点下载器

    2019-02-16 15:35:34
    通过此软件可以下载百度文库与道客巴巴的相关文档,经过本人测试可以下载90%文档,下载格式为PDF,下载的文档所在位置为kpdf文件夹下!
  • 本人纯属小白,和小组组员共同学习,借鉴并且编写的基于安卓客户端运行的GPS定位系统,可以实现简单的GPS定位功能,可能会有过于复杂的地方,望广大大佬指教,随着android客户端的位置移动移动,实现在地图上定位...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 301
精华内容 120
关键字:

本人所在位置