CHAN.S 发表于 2012-11-27 17:11:41

【随手写的程序】闪翼v0.9

本帖最后由 CHAN.S 于 2012-11-27 21:14 编辑

版本0.9.0 :
因为是随手写的,功能不太完善,目前可供静态密码的童鞋使用
需要把程序拖到 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\      【开机启动文件夹】
这样的话,开机就会自动连接闪讯,而且没有一开始的闪讯提示 和 闪讯页面 及广告。
一开机就发现闪讯已自动连接上了,什么都不用点。(不会有任何页面弹出)

注意事项:
1.0.9版仅供静态密码的同学使用,而且账号及密码必须在闪讯中已保存
2.此程序在开机运行是隐藏的,自动连接上闪讯,去广告后,会自动关闭。不需要人工关掉它
3.闪讯必须默认安装在C:\ChinaNetSn



ps:动态密码全自动版,我构想是这样的,
程序首先自动连接闪讯手机发出的无线热点,然后通过114school获取密码。然后再在闪讯中登录。
貌似有点麻烦

等有空了,先出个手动版的。。

西红柿炒番茄。 发表于 2012-11-27 17:14:40

技术帖

华灯初上。 发表于 2012-11-27 17:16:06

shinshen 发表于 2012-11-27 17:18:22

发烧30度 发表于 2012-11-27 17:20:22

又见大神新作,,,

CHAN.S 发表于 2012-11-27 17:20:59

代码:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
   
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
    ByVal hWnd1 As Long, _
    ByVal hWnd2 As Long, _
    ByVal lpsz1 As String, _
    ByVal lpsz2 As String) As Long

Private Declare Function GetDlgItem Lib "user32" ( _
    ByVal hDlg As Long, _
    ByVal nIDDlgItem As Long) As Long

Private Declare Sub Sleep Lib "Kernel32" ( _
ByVal dwMilliseconds As Long)

Public Const KEY_ENTER = 13
Public Const TEXT_STATE = "状态:"

Private Const NUM_ERROR = 32
Private Const SW_SHOWNORMAL = 1
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MINIMIZE = &HF020&
Private Const WM_SETTEXT = 12
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_CLOSE = &H10

Dim mhandle As Long
Dim chandle As Long

Private Function OpenNetKeeper() As Boolean
    Dim sysdrive As String
    Dim path As String
    Dim state As Long
    Dim location As String
    sysdrive = Environ("SYSTEMDRIVE")
    path = sysdrive & "\ChinaNetSn\bin\Netkeeper.exe"
    location = sysdrive & "\ChinaNetSn\bin\"
    state = IIf(Dir(path) <> "", ShellExecute(vbNull, "open", path, vbNullString, location, SW_SHOWNORMAL), 0)
    If state < NUM_ERROR Then OpenNetKeeper = False: Exit Function
    Do
      mhandle = FindWindow("#32770_nkDialog_{6E1C7E0B-9380-4f69-A8D8-393F70589DE1}", vbNullString) '闪讯
      DoEvents
    Loop Until mhandle <> 0
    Call PostMessage(mhandle, WM_SYSCOMMAND, SC_MINIMIZE, vbNull)
    OpenNetKeeper = True
End Function


Private Function SendPassword() As Boolean
    Dim phandle As Long
    Dim password As String
    Sleep (100) '等待
    DoEvents
    chandle = FindWindowEx(mhandle, 0&, "#32770", vbNullString)
    phandle = GetDlgItem(chandle, &H412)
    password = Fmain.Tpass.Text
    If password = vbNullString Then SendPassword = True: Exit Function '静态密码
    If phandle <> 0 Then Call PostMessage(phandle, WM_SETTEXT, 0, ByVal password) Else SendPassword = False: Exit Function
    SendPassword = True
End Function
Private Function Login() As Boolean
    Dim bhandle As Long
    bhandle = GetDlgItem(chandle, &H3F2)
    If bhandle <> 0 Then
      PostMessage bhandle, WM_LBUTTONDOWN, ByVal 0&, ByVal 0&
      PostMessage bhandle, WM_LBUTTONUP, ByVal 0&, ByVal 0&
    Else
      Login = False: Exit Function
    End If
    Login = True
End Function

Private Sub Minimize()
    Dim ahandle As Long
    Do
      ahandle = FindWindowEx(mhandle, 0&, "AfxWnd42", vbNullString)
      DoEvents
    Loop Until ahandle <> 0
    SendMessage mhandle, WM_CLOSE, ByVal 0&, ByVal 0&
End Sub
Public Function OperateNetKeeper() As Boolean
    If Not OpenNetKeeper() Then OperateNetKeeper = False: Exit Function
    If Not SendPassword() Then OperateNetKeeper = False: Exit Function
    If Not Login() Then OperateNetKeeper = False: Exit Function
    Call Minimize
    'MsgBox "Finished!", , ""
    OperateNetKeeper = True
End Function

wjk2002 发表于 2012-11-27 17:22:02

不是说动态密码么

CHAN.S 发表于 2012-11-27 17:24:33

wjk2002 发表于 2012-11-27 17:22 static/image/common/back.gif
不是说动态密码么

这个版本只能供静态密码的童鞋用因为我只是使用了闪讯中保存的数据,
如果密码是动态的,呵呵~你懂的

CHAN.S 发表于 2012-11-27 17:26:09

我会更新下去的...因为我用的就是动态密码

wjk2002 发表于 2012-11-27 17:28:42

。。怎么会有的人动态 有的人静态啊
页: [1] 2 3 4
查看完整版本: 【随手写的程序】闪翼v0.9

同济大学浙江学院论坛是同济大学浙江学院最大的交流平台,旨在为校友提供一个 学习、交流、娱乐的平台。

相聚在这里便是我们的缘分,记录我们的大学生活,热爱分享,享受快乐。

同济大学浙江学院论坛(www.tjzjbbs.com)已经安全运行了 ,感谢这一路来您对论坛的支持和关爱!

嘉兴市南湖网监大队网络安全重点监管站点 发帖必看
智能电视论坛电视软件智能电视资讯4K中国论坛当贝市场投影Projector1TVSBOOK