2017年11月15日 星期三

VB6 更改指定視窗的名稱

'宣告API

'此API是要查找窗口句柄
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

'此API 是要 設定視窗名稱
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

'程式碼
Private Sub Command1_Click()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, Text1.Text) 'Text1 = 要改的窗口名稱
    If hwnd = 0 Then '偵測是否窗口有開啟
        MsgBox "未找到窗口", 0 + 48, "錯誤"   '如果沒有就顯示MsgBox
    End If
    SetWindowText hwnd, Text2.Text '設定Text2為名稱
End Sub

開源專案: 點此下載

2017年11月14日 星期二

VB6 利用FindWidows查找窗口句柄!

在後台按鍵 或是 對窗口做某些動作時 很長需要用到 句柄( hwnd )
接下來就用最簡單的 FindWindows查找窗口句柄!

'宣告API
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long



Private Sub Command1_Click()
    Dim Hwnd As Long
    Hwnd = FindWindow(vbNullString, "窗口名稱")
    MsgBox Hwnd
End Sub

開源專案: 點我下載

VB6 Sleep & Delay 設定程式碼延遲!

1. Sleep

這個延遲呢,聽說造成整體程式延遲 看起來會LAG
本人無感,所以呢各位自行選擇

'宣告API
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

使用方法:
'單位:毫秒
'1000毫秒 = 1秒
Sleep 100  '100為延遲


2. Delay

Private Sub Delay(ASecond As Integer)
    Dim before
    before = Timer
    Do
    DoEvents
    Loop Until (Int(Timer - before) = ASecond)
End Sub

Call Delay(1) '1 = 延遲1秒 如果是0.5 就改0.5就好


FB: 陳小逆
RC:DreamAnonymous

VB6 模擬鍵盤

1. SendKeys
這是一個最簡單的方式,不須要宣告API就可使用

使用方法:
SendKeys {"K"} '按下K鍵

但這無法設定說要 按下 或 彈起,所以是它的一個缺點

2. Keybd_event

這個方式就可以設定 按下 & 放開

'宣告API
Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

使用方法:
keybd_event vbKeyA, 0, 0, 0   '按下A鍵
keybd_event vbKeyA, 0, 2, 0   '彈起A鍵

這些兩個方法都是最簡單前台按鍵的教學!
希望各位會學會

FB: 陳小逆
RC:DreamAnonymous

2017年11月13日 星期一

VB6熱鍵 GetAsyncKeyState

'宣告API
Private Declare Function GetAsyncKeyState Lib “user32″ (ByVal vKey As Long) As Integer

'加入一個Timer

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF3) Then '如果按下F3
Msgbox "test"   '彈出訊息
End If    '結束如果
End Sub

'如果要 F3開啟 F4關閉

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF3) Then '如果按下F3
Msgbox "你按下了F3"   '彈出訊息
ElseIf GetAsyncKeyState(vbKeyF4) Then '如果按下F4
Msgbox "你按下了F4"   '彈出訊息
End If    ''結束如果
End Sub



FB: 陳小逆
RC:DreamAnonymous