《按键精灵》后台窗口内的鼠标坐标如何确认

《按键精灵》后台窗口内的鼠标坐标如何确认,第1张

Hwnd = PluginWindowMousePoint() //窗口句柄获取方式你可以自己定

sRect = PluginWindowGetClientRect(Hwnd)

//下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串

MyArray = Split(sRect, "|")

//下面这句将字符串转换成数值

L = Clng(MyArray(0)): T = Clng(MyArray(1))

R = Clng(MyArray(2)): B = Clng(MyArray(3))

Msgbox "左" & L & ",右 " & R & ",上" & T & ",下" & B

//左上的数据,就是窗口原点,用屏幕坐标减去原点坐标,就是窗口坐标

获取鼠标选取的内容,可以通过截图的方式,以的形式进行保存。

截图方法可借助QQ截图功能,一般快捷按键“ctrl+ALT+A。

或通过浏览器的截图功能:

截图方法:

1、按截图快捷键、或点击浏览器“截图”按钮后,选取需要需要的内容,划定范围后,双击被选择的区域,选取的内容以的形式被保存在剪贴板。

2、运行处理程序,如系统自带的“画图”。开始----新建文件---(参数不用修改),在新建好的文档空白区域右键鼠标,然后选择“粘贴”,刚才截取的内容被显示出来。然后保存。关闭退出。

”如果对象是文本文件,在文本开头处,点击鼠标左键不松,拖动鼠标到文本结尾,选中需要的内容后,在选择区域点击鼠标右键,在d出菜单中选择复制,然后打开系统中能够编辑文本的软件,如WORD,新建一个文档后,在新建好的文档空白区域点击鼠标右键,在菜单中选择“粘贴”。最后保存退出。内容即被保存。

鼠标按其工作原理的不同可以分为机械鼠标和光电鼠标。机械鼠标主要由滚球、辊柱和光栅信号传感器组成。当你拖动鼠标时,带动滚球转动,滚球又带动辊柱转动,装在辊柱端部的光栅信号传感器产生的光电脉冲信号反映出鼠标器在垂直和水平方向的位移变化,再通过电脑程序的处理和转换来控制屏幕上光标箭头的移动。光电鼠标器是通过检测鼠标器的位移,将位移信号转换为电脉冲信号,再通过程序的处理和转换来控制屏幕上的鼠标箭头的移动。光电鼠标用光电传感器代替了滚球。这类传感器需要特制的、带有条纹或点状图案的垫板配合使用。

1.移动滑鼠带动滚球。

2.X方向和Y方转杆传递滑鼠移动。

3.光学刻度盘。

4.电晶体发射红外线可穿过刻度盘的小孔。

5.光学感测器接收红外线并转换为平面移动速度。

种类介绍

简介

鼠标按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。

机械鼠标

机械鼠标主要由滚球、辊柱和光栅信号传感器组成。当你拖动鼠标时,带动滚球转动,滚球又带动辊柱转动,装在辊柱端部的光栅信号传感器产生的光电脉冲信号反映出鼠标器在垂直和水平方向的位移变化,再通过电脑程序的处理和转换来控制屏幕上光标箭头的移动。

光机式鼠标

顾名思义,光机式鼠标器是一种光电和机械相结合的鼠标。它在机械鼠标的基础上,将磨损最厉害的接触式电刷和译码轮改为非接触式的LED对射光路元件。当小球滚动时,X、Y方向的滚轴带动码盘旋转。安装在码盘两侧有两组发光二极管和光敏三极管,LED发出的光束有时照射到光敏三极管上,有时则被阻断,从而产生两级组相位相差90°的脉冲序列。脉冲的个数代表鼠标的位移量,而相位表示鼠标运动的方向。由于采用了非接触部件,降低了磨损率,从而大大提高了鼠标的寿命并使鼠标的精度有所增加。光机鼠标的外形与机械鼠标没有区别,不打开鼠标的外壳很难分辨。

光电鼠标

光电鼠标器是通过检测鼠标器的位移,将位移信号转换为电脉冲信号,再通过程序的处理和转换来控制屏幕上的光标箭头的移动。光电鼠标用光电传感器代替了滚球。这类传感器需要特制的、带有条纹或点状图案的垫板配合使用。

光学鼠标

光学鼠标器是微软公司设计的一款高级鼠标。它采用NTELLIEYE技术,在鼠标底部的小洞里有一个小型感光头,面对感光头的是一个发射红外线的发光管,这个发光管每秒钟向外发射1500次,然后感光头就将这1500次的反射回馈给鼠标的定位系统,以此来实现准确的定位。所以,这种鼠标可在任何地方无限制地移动。

1 请求数据失败后页面就一直报错,需强刷才能继续进行下去

解决方案: try catch

2 在中chrome中记住密码然后密码框会自动记住密码,解决方案

    已开始设置密码框的type="text" ,在得焦的时候,把其type改成password即可

3 文本域自动撑开

4 识别html 

    dangerouslySetInnerHTML

5 select call put 用法

    select 可以获取到 state 中文件的值  let param = yield select(state={return statecommonparam}) // common model的命名 

    call  const res = yield call('请求借口','参数')

    put   yield put({type:'reducers保存文件名称',payload:'参数'}) // 保存数据

            yield put({type:'当前文件下函数名称',payload:'参数'}) // 请求当前modal的函数

6 react 可拖拽d窗

import React from 'react';

import {Button, Icon} from 'antd';

import PropTypes from 'prop-types';

import styles from '/dragless';

import TrialModal from "/trialModal";

class DragModal extends ReactComponent {

  constructor(props) {

    super(props);

    const {visible} = thisprops;

    const {clientWidth, clientHeight} = documentdocumentElement;

    thisstate = {

      visible: (visible !== '' && visible !== null) visible : false,

      clientWidth,

      clientHeight,

      pageX: (clientWidth-1000) / 2,

      pageY: '10vh',

      moving: false,

    }

  }

  componentWillReceiveProps({visible}) {

    if (visible !== '' && visible !== null) {

      thissetState({visible});

    }

  }

  componentDidMount() {

    thisresize();

    windowaddEventListener('resize', thisresize);

  }

  resize = () => {

    const {clientWidth, clientHeight} = documentdocumentElement;

    // consolelog(`监听到窗口大小变化 宽:${clientWidth} 高:${clientHeight}`)

    const modal = documentgetElementById("modal");

    if (modal) {

      const pageY = (clientHeight - modaloffsetHeight) / 45;

      const pageX = (clientWidth - modaloffsetWidth) / 2;

      thissetState({ clientWidth,clientHeight, pageX, pageY})

    }

  }

  onCancel = () => {

    const {onCancel} = thisprops;

    if (onCancel) {

      onCancel();

    } else {

      thissetState({visible: false})

    }

  }

  open = () => {

    thissetState({visible: true});

  }

  // 获取鼠标点击title时的坐标、title的坐标以及两者的位移

  getPosition = (e) => {

    // 标题DOM元素titleDom

    const titleDom = etarget;

    // titleDom的坐标

    const X = titleDomgetBoundingClientRect()left;

    const Y = titleDomgetBoundingClientRect()top;

    // 鼠标点击的坐标

    let mouseX = 0, mouseY = 0;

    if (epageX || epageY) {  //ff,chrome等浏览器

      mouseX = epageX;

      mouseY = epageY;

    } else {

      mouseX = eclientX + documentbodyscrollLeft - documentbodyclientLeft;

      mouseY = eclientY + documentbodyscrollTop - documentbodyclientTop;

    }

    // 鼠标点击位置与modal的位移

    const diffX = mouseX - X;

    const diffY = mouseY - Y;

    return {X, Y, mouseX, mouseY, diffX, diffY}

  }

  /

  鼠标按下,设置modal状态为可移动,并注册鼠标移动事件

  计算鼠标按下时,指针所在位置与modal位置以及两者的差值

  /

  onMouseDown = (e) => {

    const position = thisgetPosition(e);

    windowonmousemove = thisonMouseMove;

    thissetState({moving: true, diffX: positiondiffX, diffY: positiondiffY});

  }

  // 松开鼠标,设置modal状态为不可移动,

  onMouseUp = (e) => {

    thissetState({moving: false});

  }

  // 鼠标移动重新设置modal的位置

  onMouseMove = (e) => {

    const {moving, diffX, diffY} = thisstate;

    if (moving) {

      // 获取鼠标位置数据

      const position = thisgetPosition(e);

      // 计算modal应该随鼠标移动到的坐标

      const x = positionmouseX - diffX;

      const y = positionmouseY - diffY;

      // 窗口大小

      const {clientWidth, clientHeight} = documentdocumentElement;

      const modal = documentgetElementById("modal");

      if (modal) {

        // 计算modal坐标的最大值

        const maxHeight = clientHeight - modaloffsetHeight;

        const maxWidth = clientWidth - modaloffsetWidth;

        // 判断得出modal的最终位置,不得超出浏览器可见窗口

        const left = x > 0 (x < maxWidth x : maxWidth) : 0;

        const top = y > 0 (y < maxHeight y : maxHeight) : 0;

        thissetState({pageX: left, pageY: top})

      }

    }

  }

  render() {

    const { width,visible, title,dataTrialResult,form,dataTrial,trialData} = thisprops;

    const { clientWidth, clientHeight, pageX, pageY} = thisstate;

    const modal = (

      <div className={stylescustom_modal_mask} style={{width: clientWidth, height: clientHeight}}>

        <div

          id="modal"

          className={stylescustom_modal_win}

          style={{

            width:1000,

            height: 500,

            marginLeft: pageX,

            marginTop: pageY,

          }}>

          <div

            className={stylescustom_modal_header}

            onMouseDown={thisonMouseDown}

            onMouseUp={thisonMouseUp}

          >

            {title title : null}

            <div className={stylescustom_modal_header_close} onClick={thispropshandleCancelTrial}>

              <Icon type="close"/>

            </div>

          </div>

          <div className={stylescustom_modal_content}>

            <TrialModal form={form}

                        trialData={trialData}

                        dataTrialResult={dataTrialResult}

                        dataTrial={dataTrial}

                        handleChangeTrial={thispropshandleChangeTrial}

                        handleChangeSelectTrual={thispropshandleChangeSelectTrual}

                        handleChangeDateTiral={thispropshandleChangeDateTiral}

                        handleClickTrialBtn={thispropshandleClickTrialBtn}></TrialModal>

          </div>

          {/<div className={stylescustom_modal_footer}>

            <div className={stylescustom_modal_footer_inner}>

              <Button onClick={thisonCancel}>

                {cancelText cancelText : '取消'}

              </Button>

              <Button type="primary" onClick={onOk} style={{marginLeft: '10px'}}>

                {okText okText : '确定'}

              </Button>

            </div>

          </div>/}

        </div>

      </div>

    )

    return <div>{!visible null : modal}</div>

  }

}

DragModalpropTypes = {

  visible: PropTypesbool,

  title: PropTypesstring,

  width: PropTypesany,

  height: PropTypesany,

  closable: PropTypesbool,

  okText: PropTypesstring,

  cancelText: PropTypesstring,

  onCancel: PropTypesfunc,

  onOk: PropTypesfunc,

  onOkLoading: PropTypesbool,

}

export default DragModal;

7 setFieldsValue使用

            myFormsetFieldsValue({

                  ['vc_centerno']: paramDataconvertMap[i]VC_CENTERNO,

                });

8  setFields 使用

        myFormsetFields({

                VC_WORKTIME: {

                  value: '',

                }

              });

横坐标是实时采集的时间,纵坐标是实时值。

假设每隔一秒采集一次共一分钟的显示。

第一秒的放到横轴60的位置,采集完一分钟后第六十一秒的数据占第六十的位置,之前的数据往前移一位,然后显示每个点,再用线连起来。

C#是一个语言,net是一个平台,上面支持用C#或者VB Net写代码。

另外,C#不但可以开发基于net的应用程序,也可以开发基于WinForm的程序,这就是区别。

NET 是 Microsoft 的 XML Web 服务平台。不论 *** 作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。

通过Windows API 函数“HWND WindowFromPoint(POINT Point)”可以获取光标所在处的窗口的句柄。需要有一个触发消息来调用这个函数:比如按下键盘上的某个按键来触发这个函数调用。这是个简单的示范,能够模拟鼠标点击其他窗口的关闭按钮行为;要获得更完善的方案,可以给我私信。

具体 *** 作方法:运行程序,让后将鼠标指针移动至其他窗口之上,最好是在标题栏上;然后按下键盘上的任意按键(推荐按字母键)。

在VC++60“文件”菜单中,新建一个空的“Win32 AppLication”工程。然后新建一个cpp源文件,在源文件中写入如下代码:

#include <windowsh>

LRESULT CALLBACK WindowProc(HWND hdl_wnd, UINT msg_code, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)

{

 WNDCLASS wndcls;

 wndclscbClsExtra = 0;

 wndclscbWndExtra = 0;

 wndclshbrBackground = (HBRUSH)COLOR_BTNSHADOW;

 wndclshCursor = ::LoadCursor(NULL, IDC_ARROW);

 wndclshIcon = ::LoadIcon(NULL, IDI_APPLICATION);

 wndclshInstance = hInstance;

 wndclslpfnWndProc = WindowProc;

 wndclslpszClassName = "gethandle";

 wndclslpszMenuName = NULL;

 wndclsstyle = CS_VREDRAW | CS_HREDRAW;

 ::RegisterClass(&wndcls);

 ::CreateWindow("gethandle", "获取窗口句柄", WS_SYSMENU | WS_MINIMIZEBOX | WS_VISIBLE, 200, 120, 400, 300, NULL, NULL, hInstance, 0);

 MSG msg;

 while (::GetMessage(&msg, NULL, 0, 0))

 {

   ::TranslateMessage(&msg);

   ::DispatchMessage(&msg);

 }

 return 1;

}

LRESULT CALLBACK WindowProc(HWND hdl_wnd, UINT msg_code, WPARAM wParam, LPARAM lParam)

{

 LRESULT value = 0;

 switch (msg_code)

 {

   case WM_CLOSE:

     ::PostQuitMessage(WM_QUIT);

   break;

    //注意:必须在本窗口获得键盘输入焦点的时候,WM_KEYDOWN消息才能生效!

    //如果想在本窗口没有焦点的时候都能生效,则需要安装全局的键盘钩子。

   case WM_KEYDOWN:

   {

     POINT pt;

     HWND hdl_other;

     ::GetCursorPos(&pt);  //获取鼠标指针的坐标

     hdl_other = ::WindowFromPoint(pt); //将该坐标传递给获取句柄的函数

     ::PostMessage(hdl_other, WM_CLOSE, 0, 0);  //用获取到的句柄,向目标窗口发送一个WM_CLOSE消息。WM_CLOSE消息相当于用户点击了窗口右上角的关闭按钮。

   }

   break;

   default:

   return ::DefWindowProc(hdl_wnd, msg_code, wParam, lParam);

 }

 return value;

}

以上就是关于《按键精灵》后台窗口内的鼠标坐标如何确认全部的内容,包括:《按键精灵》后台窗口内的鼠标坐标如何确认、c#如何获取鼠标选取的内容、鼠标如何进行数据采集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10146879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存