明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1854|回复: 6

[资源] 定义lisp函数获取登录的QQ号

[复制链接]
发表于 2020-3-7 11:07 | 显示全部楼层 |阅读模式
本帖最后由 jun353835273 于 2020-3-7 11:13 编辑

LISP调用方式(ReadTencentqqId)
如果登录的一个qq可以获取,多个qq只能获取最后登录的那个QQ号
代码网上找的,只是定义为LISP函数而已


  1.         //导入库 [DllImport("user32.dll")]
  2.         [DllImport("user32.dll", EntryPoint = "FindWindowA", CharSet = CharSet.Ansi)]
  3.         private static extern int FindWindow(string lpClassName, string lpWindowName);

  4.         [DllImport("user32.dll", EntryPoint = "GetWindowText")]
  5.         public static extern int GetWindowText(int hwnd, StringBuilder lpString, int cch);
  6.         [DllImport("user32.dll", EntryPoint = "GetWindow")]
  7.         public static extern int GetWindow(int hwnd, int wCmd);

  8.         [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
  9.         public static extern int GetClassName(int hWnd, StringBuilder lpClassName, int nMaxCount);
  10.         [LispFunction("ReadTencentqqId")]
  11.         public static string ReadTencentqqId(ResultBuffer rb)
  12.         {
  13.             string str = "";
  14.             int hWin = FindWindow("CTXOPConntion_Class", null);
  15.             if (hWin == 0)
  16.             {
  17.                 return null;
  18.             }
  19.             System.Text.StringBuilder sbf = new StringBuilder(256);
  20.             StringBuilder sbfClass = new StringBuilder(256);
  21.             while (hWin > 0)
  22.             {
  23.                 GetWindowText(hWin, sbf, sbf.Capacity);
  24.                 if (sbf.ToString().Contains("OP_"))
  25.                 {
  26.                     int index = sbf.ToString().IndexOf('_');
  27.                     str = sbf.ToString().Substring(index + 1, sbf.Length - index - 1);
  28.                     break;
  29.                 }
  30.             }

  31.             return str;

  32.         }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-8-8 10:19 | 显示全部楼层
附件的dll试了下2014版本的CAD成功,低版本的可能要自己编译一下了感谢大佬分享
发表于 2023-1-29 22:54 | 显示全部楼层
新手请问下这个还要加什么引用空间  错误        1        未能找到类型或命名空间名称“LispFunctionAttribute”(是否缺少 using 指令或程序集引用?)       
未能找到类型或命名空间名称“LispFunction”(是否缺少 using 指令或程序集引用?)

未能找到类型或命名空间名称“ResultBuffer”(是否缺少 using 指令或程序集引用?)

vs2013   
发表于 2023-1-31 05:16 来自手机 | 显示全部楼层
434939575 发表于 2023-1-29 22:54
新手请问下这个还要加什么引用空间  错误        1        未能找到类型或命名空间名称“LispFunctionAttribute”(是否缺 ...

引用CAD C#二开的dll文件,然后vs就能提示缺少的命名空间了
发表于 2023-1-31 12:38 | 显示全部楼层
本帖最后由 434939575 于 2023-1-31 12:53 编辑
荣sir 发表于 2023-1-31 05:16
引用CAD C#二开的dll文件,然后vs就能提示缺少的命名空间了

感谢,我加了acmgd  acdbmgd  accormgd三个dll还不行,可能还缺什么,
发表于 2023-1-31 14:14 | 显示全部楼层
434939575 发表于 2023-1-31 12:38
感谢,我加了acmgd  acdbmgd  accormgd三个dll还不行,可能还缺什么,

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;

这些你加了没?或许还要引用PresentationCore
发表于 2023-1-31 14:56 | 显示全部楼层
sieben 发表于 2023-1-31 14:14
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autod ...

感谢,加上这些可以了,调用还要技术。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-1 16:41 , Processed in 0.342643 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表