2013年12月1日 星期日
2013年11月20日 星期三
視窗操作
主旨:
1.發這一篇,我是覺得蠻有趣的說開發是用VB6.0 ( 跟C++幾乎是大同小異,所以可以參考看看原理)
用到的涵式會用到
GetWindow,GetWindowStructure,FindWindow ,SendMessage
利用 SendMessage 涵式對視窗做操作
SendMessage 部分參數:
Private Const WM_CLOSE = &H10 '關閉視窗
Private Const WM_SETFOCUS = &H7 '設定焦點
Private Const WM_KEYDOWN = &H100 '鍵盤按下
Private Const WM_KEYUP = &H101 '鍵盤放開
Private Const WM_GETTEXT = &HD '得到文字
Private Const WM_SETTEXT = &HC '設定文字
Private Const WM_GETTEXTLENGTH = &HE '得到文字長度
Private Const BM_CLICK = &HF5 '點擊按鈕
要比較完整的可以到GOOGLE打WM_SYSCOMMAND message搜尋就可以搜尋
到微軟的官方API說明
2.要如何節取到想要的視窗操作權呢?
先解說一下,每一個視窗都會有一個編碼代號,視窗裡面會有許多不同元件
也都會有編碼代號,只要取得編碼代號,就可以利用SendMessage向物件作操作
3.要取得編碼代號將會GetWindow,FindWindow兩個涵式
GetWindowStructure將是得到元件的型態名稱
4.
程式碼:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10 '關閉指令
Private Const WM_SETFOCUS = &H7
Private Const WM_GETDLGCODE = &H87
Private Const WM_IME_KEYDOWN = &H2
Private Const WM_GETTEXT = &HD
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXTLENGTH = &HE
Private Sub Command1_Click()
Dim hwnd As Long, hwndex As Long
Dim lpbuffer As String
Dim a As String
Dim slen As Integer
lpbuffer = Space(255)
hwnd = FindWindow(vbNullString, "小算盤")
If hwnd <> 0 Then
hwndex = FindWindowEx(hwnd, 0, "Edit", vbNullString)
SendMessage hwndex, WM_SETTEXT, 0, ByVal Text1.Text
End If
6.
' 擷取子元件編號代碼
num_children = 0
child_hwnd = GetWindow(window_hwnd, GW_CHILD)
Do While child_hwnd <> 0
num_children = num_children + 1
ReDim Preserve children(1 To num_children)
children(num_children) = child_hwnd
child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
Loop
7.
For i = 1 To 2
If i = 1 Then
slen = SendMessage(A22(i), WM_GETTEXTLENGTH, 0, 0) '
SendMessage A22(i), WM_GETTEXT, slen + 1, ByVal lpbuffer
frmWindowList.Text1.Text = lpbuffer
Else
slen = SendMessage(A22(i), WM_GETTEXTLENGTH, 0, 0) '
SendMessage A22(i), WM_GETTEXT, slen + 1, ByVal lpbuffer
frmWindowList.Text2.Text = lpbuffer
End If
8.
2013年11月3日 星期日
2013年8月9日 星期五
Easy Java Simulation
open source physics 網站:
http://www.compadre.org/osp/index.cfm
說明:
利用Java程式模擬物理動畫,可輸入參數值
並有公式跟範例和說明文件,讓使用者更容易了解物理學
大約簡單介紹一下:
至於安裝Java SDK部分故不講,因Google搜尋就一堆範例了
1.
3.
功能強大,很多有範例可以下載擴充,跟自己定義
下面兩個網站都是我蠻喜歡的
台灣師範大學物理系 論壇:
http://www.phy.ntnu.edu.tw/demolab/phpBB/index.php?viewcat=10#cat10
GameDev.Net 網站:
http://www.gamedev.net/forum/20-math-and-physics/
2013年7月18日 星期四
使用Android 連 Eclipse Web Service
主要目的:
使用Eclipse在Tomcat架Web Service
讓Android 可以連Web Service
而可以透過Web Service 連MS SQL Server
1.新增一個動態網頁專案
2.
3.
4.
5.創造一個class檔案把程式寫在裡面 ~ 而連接MS SQL的程式可以寫在裡面
6.
7.新增Web Service 操作
8.
9.
10.
11.
12. 完成 Web Service
13.輸入網址測試 Web Service
14.
15.
16.
17.
18.
19.使用Android連線
使用Eclipse在Tomcat架Web Service
讓Android 可以連Web Service
而可以透過Web Service 連MS SQL Server
1.新增一個動態網頁專案
訂閱:
文章 (Atom)