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月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
檢查指定數據庫的磁盤空間分配結構的一致性  

2013年1月20日 星期日

網頁相關編程參考

網頁模板 下載 網站模板-模板天下V4

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

股票買賣手續費?證交稅?

引用來源
--
 買進的時候手續費昰價金乘以千分之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.綠水除了可以養水蚤外,剛出生的小魚,也可以將他們放在綠水內…裡面再放一群水蚤…每天出產的小小水蚤,也可以給他們做點心,但是切記綠水約一週就要再補一次,不然小魚和水蚤都會缺氧掛掉

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到這篇!!

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,光合菌介紹,魚安康光合菌硝化菌,光合菌液

水蚤飼養繁殖整理

請參考來源:【原創】水蚤飼養繁殖整理

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

 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

Visual Basic Windows API Function

Ex-designz.net is a friendly,fun,entertaining,interactive,informational Web portal and global community.

Visual Basic Windows API Function

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
--
基本運用,靠自己發揮了~

vbnet 字串轉日期

參考1
參考2
--

Dim dd As Date = DateTime.ParseExact("20130108 14:33:22", "yyyyMMdd HH:mm:ss", Nothing)

微軟 MSDN - 越來越不錯喔

MSDN – 探索桌面、Web、雲端和電話軟體開發

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

2013年1月4日 星期五

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