MSDN:Visual Basic 參考 (2005)
2013年1月30日 星期三
2013年1月28日 星期一
win7 安裝 IIS 7 (ASP/ASP.Net 等)
參考1:Windows 7安裝IIS 7及設定ASP (優)
參考2: Win7安裝IIS伺服器與asp.net架站設定教學 (次)
參考3:全裝型
當 Win7 / 64 bit 要跑 ASP (access) 時會遇到:
win7 [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式
請參考此篇設定圖:怎樣在 Win 7 - 64 bit 改成 x86 連到 ACCESS 2010
以上設定好後, asp 總算ok了
但卻遇到 skype 會佔用 80 port =.= 實在是..
只好先把skype 關掉,先把iis7 啟動起來 ; 再啟動 skype 就好
或是把 skype 的 port 取消掉 請參考篇設定:變更 Skype 佔用 80 Port (預設值)
參考2: Win7安裝IIS伺服器與asp.net架站設定教學 (次)
參考3:全裝型
當 Win7 / 64 bit 要跑 ASP (access) 時會遇到:
win7 [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式
請參考此篇設定圖:怎樣在 Win 7 - 64 bit 改成 x86 連到 ACCESS 2010
以上設定好後, asp 總算ok了
但卻遇到 skype 會佔用 80 port =.= 實在是..
只好先把skype 關掉,先把iis7 啟動起來 ; 再啟動 skype 就好
或是把 skype 的 port 取消掉 請參考篇設定:變更 Skype 佔用 80 Port (預設值)
2013年1月27日 星期日
2013年1月26日 星期六
vbnet 組合鍵
this.KeyPreview = true;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
MessageBox.Show("CTRL+V");
}
}
SendKeys.Send
KeyDown(object sender, KeyEventArgs e)
if(e.control && e.KeyCode==Keys.v)
{
}
2013年1月23日 星期三
2013年1月22日 星期二
ms-sql A 不存在 B
1.
select b.*
from b
where not exists(select 1 from a where a.id=b.id and a.bm=b.bm)
2.
select * from a where not exists(select 1 from tb where id=a.id and bm=a.bm)
3.
select * from b except select * from a
select * from A where checksum(id, bm) not in (select checksum(id, bm)from B)
4.
select * from B
WHERE NOT EXISTS (SELECT 1 FROM A WHERE id = B.id AND bm = B.bm)
5.
select * from a where checksum(*) not in(select checksum(*) from b)
2013年1月21日 星期一
嘗試在數據庫2 中提取邏輯頁
引用來源
--
嘗試在數據庫2 中提取邏輯頁
嘗試在數據庫 2 中提取邏輯頁 (1:577) 失敗。該邏輯頁屬於分配單元 422214457884672,而非 8286623418647773184。
此信息表明數據庫或表 已經部分損壞可以通過以下步驟嘗試修復:
1. DBCC CHECKDB
重啟服務器後,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行數據庫的修復,修復數據庫存在的一致性錯誤與分配錯誤。
Sql代碼
use master
declare @databasename varchar(255)
set @databasename='需要修復的數據庫實體的名稱'
exec sp_dboption @databasename, N'single', N'true' --將目標數據庫置為單用戶狀態
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--將目標數據庫置為多用戶狀態
然後執行 DBCC CHECKDB('需要修復的數據庫實體的名稱') 檢查數據庫是否仍舊存在錯誤。注意:修復後可能會造成部分數據的丟失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復。
Sql代碼
use 需要修復的數據庫實體的名稱
declare @dbname varchar(255)
set @dbname='需要修復的數據庫的名稱'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修復的數據表的名稱',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修復的數據表的名稱',REPAIR_REBUILD)
------把』 需要修復的數據表的名稱』更改為執行DBCC CHECKDB時報錯的數據表的名稱
exec sp_dboption @dbname,'single user','false'
3. 其他的一些常用的修復命令
DBCC DBREINDEX 重建指定數據庫中表的一個或多個索引
用法:
Sql代碼
DBCC DBREINDEX (表名,』』) 修復此表所有的索引。
4.DBCC CHECKALLOC
檢查指定數據庫的磁盤空間分配結構的一致性
--
嘗試在數據庫2 中提取邏輯頁
嘗試在數據庫 2 中提取邏輯頁 (1:577) 失敗。該邏輯頁屬於分配單元 422214457884672,而非 8286623418647773184。
此信息表明數據庫或表 已經部分損壞可以通過以下步驟嘗試修復:
1. DBCC CHECKDB
重啟服務器後,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行數據庫的修復,修復數據庫存在的一致性錯誤與分配錯誤。
Sql代碼
use master
declare @databasename varchar(255)
set @databasename='需要修復的數據庫實體的名稱'
exec sp_dboption @databasename, N'single', N'true' --將目標數據庫置為單用戶狀態
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--將目標數據庫置為多用戶狀態
然後執行 DBCC CHECKDB('需要修復的數據庫實體的名稱') 檢查數據庫是否仍舊存在錯誤。注意:修復後可能會造成部分數據的丟失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復。
Sql代碼
use 需要修復的數據庫實體的名稱
declare @dbname varchar(255)
set @dbname='需要修復的數據庫的名稱'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修復的數據表的名稱',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修復的數據表的名稱',REPAIR_REBUILD)
------把』 需要修復的數據表的名稱』更改為執行DBCC CHECKDB時報錯的數據表的名稱
exec sp_dboption @dbname,'single user','false'
3. 其他的一些常用的修復命令
DBCC DBREINDEX 重建指定數據庫中表的一個或多個索引
用法:
Sql代碼
DBCC DBREINDEX (表名,』』) 修復此表所有的索引。
4.DBCC CHECKALLOC
檢查指定數據庫的磁盤空間分配結構的一致性
2013年1月20日 星期日
Use Notify icon in VB.NET
引用來源
--
Add two contextmenu item in contextMenuStrip1
1.Open(for showing application)
2.Exit (for closing application)
Now there is need to set some properties of notify icon like :
ContextMenu: Gets/Sets Context menu for the tray icon
Icon: Gets/Sets current icon
Text: Gets/Sets tooltip text that is displayed when the mouse hovers over the system tray
Visible: Gets/Sets if the icon is visible in the window system tray
On form closing event put this code, this code minimize the form
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If Me.WindowState = FormWindowState.Normal Then
e.Cancel = True
Me.Hide()
Me.WindowState = FormWindowState.Minimized
End If
End Sub
And for showing form again we can use MouseDoubleClick event of notify icon control like this:
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.Show()
Me.WindowState = FormWindowState.Normal
Me.Activate()
Me.Focus()
End Sub
And it will show time on labels
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = DateTime.Now.ToLongTimeString()
Label2.Text = DateTime.Now.ToLongDateString()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Label1.Text = DateTime.Now.ToShortTimeString()
Label2.Text = DateTime.Now.ToLongDateString()
End Sub
We can show tooltip on icon like Figure2 with the help of this code:
Private Sub NotifyIcon1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseMove
NotifyIcon1.Text = DateTime.Now.ToLongTimeString
End Sub
--
Add two contextmenu item in contextMenuStrip1
1.Open(for showing application)
2.Exit (for closing application)
Now there is need to set some properties of notify icon like :
ContextMenu: Gets/Sets Context menu for the tray icon
Icon: Gets/Sets current icon
Text: Gets/Sets tooltip text that is displayed when the mouse hovers over the system tray
Visible: Gets/Sets if the icon is visible in the window system tray
On form closing event put this code, this code minimize the form
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If Me.WindowState = FormWindowState.Normal Then
e.Cancel = True
Me.Hide()
Me.WindowState = FormWindowState.Minimized
End If
End Sub
And for showing form again we can use MouseDoubleClick event of notify icon control like this:
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.Show()
Me.WindowState = FormWindowState.Normal
Me.Activate()
Me.Focus()
End Sub
And it will show time on labels
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = DateTime.Now.ToLongTimeString()
Label2.Text = DateTime.Now.ToLongDateString()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Label1.Text = DateTime.Now.ToShortTimeString()
Label2.Text = DateTime.Now.ToLongDateString()
End Sub
We can show tooltip on icon like Figure2 with the help of this code:
Private Sub NotifyIcon1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseMove
NotifyIcon1.Text = DateTime.Now.ToLongTimeString
End Sub
股票買賣手續費?證交稅?
引用來源
--
買進的時候手續費昰價金乘以千分之1.425
例如買進一張10元的股票
一股10元X一張1,000股=10,000
一張10,000X0.001425=14.25 手續費
原本你的手續費是14.25,可是規定不足20元以20元計算
所以你要交割的金額就是10,020
2.) 賣出的部分就是手續費千分之1.425再加上證交稅千分之3
同上賣出一張一股10元的股票
10,000X0.001425=14.25 手續費算20元
10,000X0.003=30 證交稅就是30元
那你可以拿回來的錢就是
10,000-20-30=9,950
3.) 零股的買賣算法是一樣的,只是差別就是在手續費不足20元要以20元來算!
--
買進的時候手續費昰價金乘以千分之1.425
例如買進一張10元的股票
一股10元X一張1,000股=10,000
一張10,000X0.001425=14.25 手續費
原本你的手續費是14.25,可是規定不足20元以20元計算
所以你要交割的金額就是10,020
2.) 賣出的部分就是手續費千分之1.425再加上證交稅千分之3
同上賣出一張一股10元的股票
10,000X0.001425=14.25 手續費算20元
10,000X0.003=30 證交稅就是30元
那你可以拿回來的錢就是
10,000-20-30=9,950
3.) 零股的買賣算法是一樣的,只是差別就是在手續費不足20元要以20元來算!
2013年1月16日 星期三
綠水的好處及養法
引用來源
--
綠水的好處
1.綠水的成分是綠藻,綠藻唯一般基礎浮游生物作為養份~~像子魚~~都會去吃綠藻~~其生長速度並不輸給為豐年蝦,綠水的好處~~在於營養成分高~~在冬天時也具有保持水溫的一個效果
2.可以用來養水蚤和養小魚因為綠水裡面含有大量的綠藻可供給小魚或水蚤當食物
3.綠水~~因為充斥著各種的藻類~~藻類會吸收水中的養份~>養份越多~>藻類越多~>藻類越多~>吸 收越多的養份~>如此平衡,讓水質能維持住,因此~~病魚放進綠水中~~有很大的機會慢慢康復,但到了夜間仍須注意光照,不然病魚可能因缺氧提早升天
綠水養法:
1.將水缸換出來的水,裝在一個透明罐中裝滿放蘋果螺下去,把這罐預養的綠水放在陽台曬太陽,有空就吸魚的便便下去預養的綠水罐中約一個禮拜的時間綠水就很綠了喔
2.將尿液稀釋200倍 放到太陽光下曬個2天 濃濃的綠水就產生了,因為尿液裏面的尿素是含氮量很高的東西..而氮、磷、鉀是綠水藻必要的元素.. (劑量要調配好,不然會臭掉)
結論:1.要認真養綠水
2.因為蘋果螺超會便便的這個因素使得綠水得到足夠養分而長的很快
3.綠水除了可以養水蚤外,剛出生的小魚,也可以將他們放在綠水內…裡面再放一群水蚤…每天出產的小小水蚤,也可以給他們做點心,但是切記綠水約一週就要再補一次,不然小魚和水蚤都會缺氧掛掉
--
綠水的好處
1.綠水的成分是綠藻,綠藻唯一般基礎浮游生物作為養份~~像子魚~~都會去吃綠藻~~其生長速度並不輸給為豐年蝦,綠水的好處~~在於營養成分高~~在冬天時也具有保持水溫的一個效果
2.可以用來養水蚤和養小魚因為綠水裡面含有大量的綠藻可供給小魚或水蚤當食物
3.綠水~~因為充斥著各種的藻類~~藻類會吸收水中的養份~>養份越多~>藻類越多~>藻類越多~>吸 收越多的養份~>如此平衡,讓水質能維持住,因此~~病魚放進綠水中~~有很大的機會慢慢康復,但到了夜間仍須注意光照,不然病魚可能因缺氧提早升天
綠水養法:
1.將水缸換出來的水,裝在一個透明罐中裝滿放蘋果螺下去,把這罐預養的綠水放在陽台曬太陽,有空就吸魚的便便下去預養的綠水罐中約一個禮拜的時間綠水就很綠了喔
2.將尿液稀釋200倍 放到太陽光下曬個2天 濃濃的綠水就產生了,因為尿液裏面的尿素是含氮量很高的東西..而氮、磷、鉀是綠水藻必要的元素.. (劑量要調配好,不然會臭掉)
結論:1.要認真養綠水
2.因為蘋果螺超會便便的這個因素使得綠水得到足夠養分而長的很快
3.綠水除了可以養水蚤外,剛出生的小魚,也可以將他們放在綠水內…裡面再放一群水蚤…每天出產的小小水蚤,也可以給他們做點心,但是切記綠水約一週就要再補一次,不然小魚和水蚤都會缺氧掛掉
2013年1月15日 星期二
2013年1月11日 星期五
CryStal Report 預設輸出自訂PaperSize
參考引用
--
***重點***
1.在印表機伺服器中新增自訂格式。
2.在Print Server對同一台印表機安裝多次,將每台印表機的裝置設定值指定為你要的格式,預設格式也可以順便設定一下。
3.Report Document不要對印表機以及紙張做設定,請將那4行Code拿掉(不能設default,一定必須千萬得拿掉,不然跳頁會不正常)
4.程式中使用
ReportDocument.PrintOptions.PrinterName ="印表機名稱"
ReportDocument.PrintToPrinter(1, True, 0, 0)
5.Client使用時,必須要安裝報表所指定的印表機
--
我也是被這問題困擾很久,真是感恩~~g到這篇!!
--
***重點***
1.在印表機伺服器中新增自訂格式。
2.在Print Server對同一台印表機安裝多次,將每台印表機的裝置設定值指定為你要的格式,預設格式也可以順便設定一下。
3.Report Document不要對印表機以及紙張做設定,請將那4行Code拿掉(不能設default,一定必須千萬得拿掉,不然跳頁會不正常)
4.程式中使用
ReportDocument.PrintOptions.PrinterName ="印表機名稱"
ReportDocument.PrintToPrinter(1, True, 0, 0)
5.Client使用時,必須要安裝報表所指定的印表機
--
我也是被這問題困擾很久,真是感恩~~g到這篇!!
2013年1月10日 星期四
光合菌與硝化菌如何自己製作
引用來源:
--
光合菌母液製作步驟︰
1.去藥局購買一瓶蒸餾水450cc(10元),將日本光合菌20克,糖蜜10cc(不是砂糖喔),及綜合維他命少許(約2克),將這些材料備齊。
2.將蒸餾水的瓶蓋打開。
3.倒入日本光合菌種。
4.倒入綜合維它命。
5.倒入糖蜜(糖蜜每瓶250cc,60元一瓶)。
6.拿一支乾的竹筷,攪拌均勻,靜置光照,避免太陽直射及高溫即可。
7.使用的樣器具都要是乾的,如此才不會發霉而製作失敗。
8.瓶蓋請勿旋緊,因為光合菌活化時會有發酵作用產生。
9.需置於窗戶邊,或光亮處(但避免直曬,以免光合菌熱死),每日只需將沉底的光合菌種,攪動一次(攪動時以液面微起波紋而無漩渦為適度,瓶蓋不可鎖緊),讓沉積在最底下的光合菌也能活化,不致於被上層光合菌壓住,大約經過48~60小時(視天氣溫度而定),即可聞到烏梅香味,如此就可得到一瓶剛配置的新鮮活化PSB光合菌,現用現泡,自己DIY,不會有過期的問題。
10.製作成功的光合菌有一股烏梅的香味(或是焦糖味,醬油味),如果是臭味,就表示製作過程,有雜菌(黴菌)滲入。
硝化菌DIY...
利用陶瓷環、生化球或生化棉等都可以當作培養的的環境
將一條死亡朱文錦或一個蛤俐肉(很容易腐壞,一個就夠了)放入裝有水的小盆子
再將濾材放入,水需淹過濾材,之後再任其腐爛
幾天後,水質會發臭變混濁,可加強打氣,讓硝化菌快速成長.
盆子放一個星期左右,水就會自然澄清且不臭,這表示消化菌已經正常運作,就可以將濾材放入你的過濾器中了.
這種方法常用在海水缸,淡水缸也可以.
這個方法我有用過超好用的~也經過很多魚友的經驗證實過了~只要一粒蛤俐肉不管死活都沒有關係~直接放下水缸就可以了~而且黑殼蝦會吃蛤俐肉幫你分解~也可以省下花買消化菌昂貴的錢~而且不見得好用喔~而若水面上有油也可以買兩隻女王燈來幫你清的一乾二淨喔~因為自己是窮人~所以只好用窮人的方法~若各位有錢的話就沒差了~魚用品店應有儘有喔~
其實市面上就可以買到不錯的菌種,價格其實都蠻合理的,應該會比自製來的划算唷!相關詞:光合菌製作,光合菌培養基,光合菌培養方式,光合菌psb的製造,光合菌粉,光合菌培養方法,光合菌diy,光合菌介紹,魚安康光合菌硝化菌,光合菌液
--
光合菌母液製作步驟︰
1.去藥局購買一瓶蒸餾水450cc(10元),將日本光合菌20克,糖蜜10cc(不是砂糖喔),及綜合維他命少許(約2克),將這些材料備齊。
2.將蒸餾水的瓶蓋打開。
3.倒入日本光合菌種。
4.倒入綜合維它命。
5.倒入糖蜜(糖蜜每瓶250cc,60元一瓶)。
6.拿一支乾的竹筷,攪拌均勻,靜置光照,避免太陽直射及高溫即可。
7.使用的樣器具都要是乾的,如此才不會發霉而製作失敗。
8.瓶蓋請勿旋緊,因為光合菌活化時會有發酵作用產生。
9.需置於窗戶邊,或光亮處(但避免直曬,以免光合菌熱死),每日只需將沉底的光合菌種,攪動一次(攪動時以液面微起波紋而無漩渦為適度,瓶蓋不可鎖緊),讓沉積在最底下的光合菌也能活化,不致於被上層光合菌壓住,大約經過48~60小時(視天氣溫度而定),即可聞到烏梅香味,如此就可得到一瓶剛配置的新鮮活化PSB光合菌,現用現泡,自己DIY,不會有過期的問題。
10.製作成功的光合菌有一股烏梅的香味(或是焦糖味,醬油味),如果是臭味,就表示製作過程,有雜菌(黴菌)滲入。
硝化菌DIY...
利用陶瓷環、生化球或生化棉等都可以當作培養的的環境
將一條死亡朱文錦或一個蛤俐肉(很容易腐壞,一個就夠了)放入裝有水的小盆子
再將濾材放入,水需淹過濾材,之後再任其腐爛
幾天後,水質會發臭變混濁,可加強打氣,讓硝化菌快速成長.
盆子放一個星期左右,水就會自然澄清且不臭,這表示消化菌已經正常運作,就可以將濾材放入你的過濾器中了.
這種方法常用在海水缸,淡水缸也可以.
這個方法我有用過超好用的~也經過很多魚友的經驗證實過了~只要一粒蛤俐肉不管死活都沒有關係~直接放下水缸就可以了~而且黑殼蝦會吃蛤俐肉幫你分解~也可以省下花買消化菌昂貴的錢~而且不見得好用喔~而若水面上有油也可以買兩隻女王燈來幫你清的一乾二淨喔~因為自己是窮人~所以只好用窮人的方法~若各位有錢的話就沒差了~魚用品店應有儘有喔~
其實市面上就可以買到不錯的菌種,價格其實都蠻合理的,應該會比自製來的划算唷!相關詞:光合菌製作,光合菌培養基,光合菌培養方式,光合菌psb的製造,光合菌粉,光合菌培養方法,光合菌diy,光合菌介紹,魚安康光合菌硝化菌,光合菌液
2013年1月9日 星期三
keybd_event 使用
參考:Keyboard Events Simulation using keybd_event() function
參考引用
--
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal _ dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
參考引用
--
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal _ dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
Option Explicit
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LSHIFT = &HA0 ' Left SHIFT
Private Const VK_RSHIFT = &HA1 ' Right SHIFT
Private Const VK_LCONTROL = &HA2 ' Left CTRL
Private Const VK_RCONTROL = &HA3 ' Rght CTRL
Private Const VK_a = 65
Private Sub Form_Activate()
Text1.Text = ""
Text1.SetFocus
' a
keybd_event VK_a, 0, 0, 0 ' Press 'a'
keybd_event VK_a, 0, KEYEVENTF_KEYUP, 0 ' Release 'a'
' A (LEFT SHIFT + 'a')
keybd_event VK_LSHIFT, 0, 0, 0 ' Press LEFT SHIFT
keybd_event VK_a, 0, 0, 0 ' Press 'a'
keybd_event VK_a, 0, KEYEVENTF_KEYUP, 0 ' Release 'a'
keybd_event VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0 ' Release SHIFT
End Sub
Symbolic
constant name Value
(hexadecimal) Keyboard (or mouse) equivalent
VK_LBUTTON 01 Left mouse button
VK_RBUTTON 02 Right mouse button
VK_CANCEL 03 Control-break processing
VK_MBUTTON 04 Middle mouse button (three-button mouse)
VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key
VK_CLEAR 0C CLEAR key
VK_RETURN 0D ENTER key
VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_MENU 12 ALT key
VK_PAUSE 13 PAUSE key
VK_CAPITAL 14 CAPS LOCK key
VK_ESCAPE 1B ESC key
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_SELECT 29 SELECT key
VK_PRINT 2A PRINT key
VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key
VK_INSERT 2D INS key
VK_DELETE 2E DEL key
VK_HELP 2F HELP key
30 0 key
31 1 key
32 2 key
33 3 key
34 4 key
35 5 key
36 6 key
37 7 key
38 8 key
39 9 key
41 A key
42 B key
43 C key
44 D key
45 E key
46 F key
47 G key
48 H key
49 I key
4A J key
4B K key
4C L key
4D M key
4E N key
4F O key
50 P key
51 Q key
52 R key
53 S key
54 T key
55 U key
56 V key
57 W key
58 X key
59 Y key
5A Z key
VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_SEPARATOR 6C Separator key
VK_SUBTRACT 6D Subtract key
VK_DECIMAL 6E Decimal key
VK_DIVIDE 6F Divide key
VK_F1 70 F1 key
VK_F2 71 F2 key
VK_F3 72 F3 key
VK_F4 73 F4 key
VK_F5 74 F5 key
VK_F6 75 F6 key
VK_F7 76 F7 key
VK_F8 77 F8 key
VK_F9 78 F9 key
VK_F10 79 F10 key
VK_F11 7A F11 key
VK_F12 7B F12 key
VK_F13 7C F13 key
VK_F14 7D F14 key
VK_F15 7E F15 key
VK_F16 7F F16 key
VK_F17 80H F17 key
VK_F18 81H F18 key
VK_F19 82H F19 key
VK_F20 83H F20 key
VK_F21 84H F21 key
VK_F22 85H F22 key
VK_F23 86H F23 key
VK_F24 87H F24 key
VK_NUMLOCK 90 NUM LOCK key
VK_SCROLL 91 SCROLL LOCK key
VK_LSHIFT A0 Left SHIFT key
VK_RSHIFT A1 Right SHIFT key
VK_LCONTROL A2 Left CONTROL key
VK_RCONTROL A3 Right CONTROL key
VK_LMENU A4 Left MENU key
VK_RMENU A5 Right MENU key
VK_PLAY FA Play key
VK_ZOOM FB Zoom key
For Each Split 運用
Private Sub Command1_Click()
Dim add_count As Integer
Dim a As String
a = "11,22,33"
add_count = 0
Dim b As Variant
For Each b In Split(a, ",")
Print b
add_count = add_count + 1
Next
Print add_count
End Sub
--
基本運用,靠自己發揮了~
2013年1月5日 星期六
vb6 網域轉IP
參考1
引用來源
--
Private Sub Form_Load()
MsgBox DomainNameToIP("wushi.myftp.org")
End Sub
Option Explicit
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type
Private Type WSADATA
wversion As Integer
wHighVersion As Integer
szDescription(0 To 256) As Byte
szSystemStatus(0 To 128) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Integer, lpWSAData As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHostname As String, ByVal HostLen As Long) As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHostname As String) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Const WS_VERSION_REQD = &H101
Public Function DomainNameToIP(URL As String) As String
InitializeWinSock
DomainNameToIP = GetAddressByName(URL)
TerminateWinSock
End Function
Private Function GetAddressByName(strHostname As String)
Dim lngAddr As Long
Dim udtHost As HOSTENT
Dim lngIP As Long
Dim bteTmp() As Byte
Dim i As Integer
Dim strIP As String
lngAddr = gethostbyname(strHostname)
If lngAddr = 0 Then
MsgBox "Kein Host gefunden."
GetAddressByName = Null
Exit Function
End If
RtlMoveMemory udtHost, lngAddr, LenB(udtHost)
RtlMoveMemory lngIP, udtHost.hAddrList, 4
ReDim bteTmp(1 To udtHost.hLength)
RtlMoveMemory bteTmp(1), lngIP, udtHost.hLength
For i = 1 To udtHost.hLength
strIP = strIP & bteTmp(i) & "."
Next
strIP = Mid$(strIP, 1, Len(strIP) - 1)
GetAddressByName = strIP
End Function
Private Sub InitializeWinSock()
Dim udtWSAD As WSADATA
Dim lngRet As Long
lngRet = WSAStartup(WS_VERSION_REQD, udtWSAD)
If lngRet <> 0 Then
MsgBox "Winsock.dll konnte nicht initialisiert werden."
End
End If
End Sub
Private Sub TerminateWinSock()
Dim lngRet As Long
lngRet = WSACleanup()
If lngRet <> 0 Then
MsgBox "Fehler " & lngRet & " beim Beenden von Winsock.dll"
End
End If
End Sub
引用來源
--
Private Sub Form_Load()
MsgBox DomainNameToIP("wushi.myftp.org")
End Sub
Option Explicit
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type
Private Type WSADATA
wversion As Integer
wHighVersion As Integer
szDescription(0 To 256) As Byte
szSystemStatus(0 To 128) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Integer, lpWSAData As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHostname As String, ByVal HostLen As Long) As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHostname As String) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Const WS_VERSION_REQD = &H101
Public Function DomainNameToIP(URL As String) As String
InitializeWinSock
DomainNameToIP = GetAddressByName(URL)
TerminateWinSock
End Function
Private Function GetAddressByName(strHostname As String)
Dim lngAddr As Long
Dim udtHost As HOSTENT
Dim lngIP As Long
Dim bteTmp() As Byte
Dim i As Integer
Dim strIP As String
lngAddr = gethostbyname(strHostname)
If lngAddr = 0 Then
MsgBox "Kein Host gefunden."
GetAddressByName = Null
Exit Function
End If
RtlMoveMemory udtHost, lngAddr, LenB(udtHost)
RtlMoveMemory lngIP, udtHost.hAddrList, 4
ReDim bteTmp(1 To udtHost.hLength)
RtlMoveMemory bteTmp(1), lngIP, udtHost.hLength
For i = 1 To udtHost.hLength
strIP = strIP & bteTmp(i) & "."
Next
strIP = Mid$(strIP, 1, Len(strIP) - 1)
GetAddressByName = strIP
End Function
Private Sub InitializeWinSock()
Dim udtWSAD As WSADATA
Dim lngRet As Long
lngRet = WSAStartup(WS_VERSION_REQD, udtWSAD)
If lngRet <> 0 Then
MsgBox "Winsock.dll konnte nicht initialisiert werden."
End
End If
End Sub
Private Sub TerminateWinSock()
Dim lngRet As Long
lngRet = WSACleanup()
If lngRet <> 0 Then
MsgBox "Fehler " & lngRet & " beim Beenden von Winsock.dll"
End
End If
End Sub
2013年1月4日 星期五
Windows Vista / Server 2008 開啟或關閉 PAE
參考引用
--
1. 程式集 -> 執行 -> 輸入cmd (命令提示字元)
2. 輸入 bcdedit /set PAE ForceEnable
3. 重新啟動
--
參考:Windows server 2008 开启PAE 支持大内存
--
1. 程式集 -> 執行 -> 輸入cmd (命令提示字元)
2. 輸入 bcdedit /set PAE ForceEnable
3. 重新啟動
--
參考:Windows server 2008 开启PAE 支持大内存
2013年1月3日 星期四
vb6 winsock 取網址ip
引用來源
--
Private Sub Form_Load()
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub
Private Sub Command1_Click()
Text2.Text= Winsock1.RemoteHostIP
End Sub
--
Private Sub Form_Load()
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub
Private Sub Command1_Click()
Text2.Text= Winsock1.RemoteHostIP
End Sub
訂閱:
文章 (Atom)