吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1737|回复: 2
收起左侧

[其他转载] c#是实现查看本地已经登录qq

[复制链接]
kratos__bubu 发表于 2021-6-9 11:54
网上获取本地已经登录qq,大多数使用的是快速登陆的接口或者是findwindowex来获取窗口句柄,虽然代码不多,但是还是很麻烦,而且快速登陆的接口貌似用不了(昨天测试了一下午).


思路:我们通过cmd获取正在登录的qq.  cmd:dir \\\\.\\pipe\\\\ | findstr \"QQ_\" | findstr \"_pipe\"  输入这串命令。
当然还有ps:[System.Text.RegularExpressions.Regex]::Matches([System.IO.Directory]::GetFiles("\\.\\pipe\\"),"QQ_(\d*)_pipe").Groups;
获取到结果后截取需要的字符串就好。





代码:
[Asm] 纯文本查看 复制代码
        static void Main(string[] args)
        {
            string resultStr = "";
            string com = "dir \\\\.\\pipe\\\\ | findstr \"QQ_\" | findstr \"_pipe\"";
            RunCMDCommand(com, out resultStr);
            foreach (var item in GetStr(resultStr))
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
        public static List<string> GetStr(string str) //这是分割字符串的方法
        {
            var a = str.Substring(str.LastIndexOf("exit") + 4).Split('_');
            const string pattern = "^[0-9]*$";
            Regex rx = new Regex(pattern);
            List<string> strList = new List<string>();
            foreach (var item in a)
            {
                if (rx.IsMatch(item))
                    strList.Add(item);
            }
            return strList;

        }
        public static string StrSub(string source,string subStr)//这也是分割
        {
            int index = 0;
            string ss = string.Empty;
            foreach (object item in source)
            {
                index += 1;
                string str = item.ToString();
                int il = str.IndexOf(subStr);
                 ss=new object[] {index, str.Substring(il+1)}.ToString();
            }
            return ss;
        }
        public static void RunCMDCommand(string command, out string outPut)//这是调用cmd然后获取输入命令后的结果 调用的cmd不会显示
        {
            using (Process pc = new Process())
            {
                command = command.Trim().TrimEnd('&') + "&exit";

                pc.StartInfo.FileName = "cmd.exe";
                pc.StartInfo.CreateNoWindow = true;//隐藏窗口运行
                pc.StartInfo.RedirectStandardError = true;//重定向错误流
                pc.StartInfo.RedirectStandardInput = true;//重定向输入流
                pc.StartInfo.RedirectStandardOutput = true;//重定向输出流
                pc.StartInfo.UseShellExecute = false;
                pc.Start();
                pc.StandardInput.WriteLine(command);//输入CMD命令
                pc.StandardInput.AutoFlush = true;

                outPut = pc.StandardOutput.ReadToEnd();//读取结果        

                pc.WaitForExit();
                pc.Close();
            }
        }

免费评分

参与人数 3吾爱币 +7 热心值 +3 收起 理由
贵有恒 + 1 + 1 我很赞同!
zpy2 + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

始于丨初心 发表于 2021-6-9 16:50
学到了,楼主厉害
ps122 发表于 2021-6-15 13:45
有运行成功的吗?
请教楼主GetFiles("\\.\\pipe\\")提示c:\pipe不存在
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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