用C#调用Windows API实现自动登录

用C#调用Windows API实现自动登录

ID:47661850

大小:16.61 KB

页数:3页

时间:2020-01-29

用C#调用Windows API实现自动登录_第1页
用C#调用Windows API实现自动登录_第2页
用C#调用Windows API实现自动登录_第3页
资源描述:

《用C#调用Windows API实现自动登录》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用C#调用WindowsAPI实现自动登录c#问题2009-07-1920:50:09阅读152评论1  字号:大中小 订阅设计初衷:  公司为了安全性考虑,不让密码被太多人知道,所以想实现一个自动登录的模块。设计思想:  主要是通过调用WindowsAPI中的一些方法,找到目标窗口和进程之后把保存在数据库中的用户名密码自动填入输入框中,并登录。设计步骤:一、调用WindowsAPI。 C#下调用WindowsAPI方法如下: 1、引入命名空间:usingSystem.Runtime.InteropServices; 2、引用需要使用的方法,格式:[DllImport("DLL文件")]

2、方法的声明; [DllImport("user32.dll")]privatestaticexternboolShowWindow(IntPtrhWnd,intnCmdShow); [DllImport("user32.dll")]privatestaticexternboolSetForegroundWindow(IntPtrhWnd); [DllImport("user32.dll")]privatestaticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName); [DllImport("user32.dll")]

3、privatestaticexternintSendMessage(IntPtrhWnd,intMsg,intwParam,intlParam); [DllImport("user32.dll")]privatestaticexternboolSetCursorPos(intX,intY); [DllImport("user32.dll")]privatestaticexternvoidmouse_event(intdwFlags,intdx,intdy,intdwData,intdwExtraInfo); [DllImport("user32.dll")]privatestaticex

4、ternvoidkeybd_event(bytebVk,bytebScan,uintdwFlags,uintdwExtraInfo); [DllImport("user32.dll")]privatestaticexternboolSetWindowPos(IntPtrhWnd,IntPtrhWndlnsertAfter,intX,intY,intcx,intcy,uintFlags); //ShowWindow参数 privateconstintSW_SHOWNORMAL=1; privateconstintSW_RESTORE=9; privateconstintSW_SHOWNOA

5、CTIVATE=4; //SendMessage参数 privateconstintWM_KEYDOWN=0X100; privateconstintWM_KEYUP=0X101; privateconstintWM_SYSCHAR=0X106; privateconstintWM_SYSKEYUP=0X105; privateconstintWM_SYSKEYDOWN=0X104; privateconstintWM_CHAR=0X102;二、找到目标窗口1)、根据窗口的标题得到句柄 IntPtrmyIntPtr=FindWindow(null,"窗口名");//null为类名,可以用

6、Spy++得到,也可以为空 ShowWindow(myIntPtr,SW_RESTORE);//将窗口还原 SetForegroundWindow(myIntPtr);//如果没有ShowWindow,此方法不能设置最小化的窗口2)、遍历所有窗口得到句柄1定义委托方法CallBack,枚举窗口API(EnumWindows),得到窗口名API(GetWindowTextW)和得到窗口类名API(GetClassNameW) publicdelegateboolCallBack(inthwnd,intlParam); [DllImport("user32")]publicstaticext

7、ernintEnumWindows(CallBackx,inty); [DllImport("user32.dll")]privatestaticexternintGetWindowTextW(IntPtrhWnd,[MarshalAs(UnmanagedType.LPWStr)]StringBuilderlpString,intnMaxCount); [DllImport("user32.dll")]privatestaticex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。