好友
阅读权限10
听众
最后登录1970-1-1
|
网上获取本地已经登录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 |
欢迎分析讨论交流,吾爱破解论坛有你更精彩! |
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|