2013-04-14 94 views
0

我想用vb.net(VS2008)製作一個程序用於我的Nikon D600工作室拍攝。 我正在使用一個名爲ControlMyNikon的程序進行連線拍攝,並且它的工作完美。 它具有這樣的外部控制功能具有以下說明:http://i.jjj.fi/a9dAQ7z.pngVb.net:通過Windows消息發送文本到窗口

可能有人給我暗示什麼「發送字符串‘ControlMyNikon V4.1’窗口,窗口消息」實際上意味着什麼呢?

我試着用SendMessages。 我能夠用WM_SETTEXT更改窗口標題,但僅此而已。 我能夠獲得窗口句柄,但不知道如何發送任何字符串。

幫助? :)

回答

1

唉,尼康對於寫出真正蹩腳的鏟子非常臭名昭着。這並不令人失望。以下是一些應該起作用的聲明。首先嚐試Unicode版本。如果沒有工作,那麼你很可能使用了錯誤的窗口句柄

NativeMethods.SetWindowTextUnicode(handleYouFound, WM_SETTTEXT, IntPtr.Zero, "shoot") 

:如果產生中國文字然後使用ANSI版本:

Imports System.Runtime.InteropServices 

Class NativeMethods 
    Friend Const WM_SETTEXT As Integer = 12 

    <DllImport("user32.dll", EntryPoint:="SendMessageW", CharSet:=CharSet.Unicode)> _ 
    Friend Shared Function SetWindowTextUnicode(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr 
    End Function 

    <DllImport("user32.dll", EntryPoint:="SendMessageA", CharSet:=CharSet.Ansi)> _ 
    Friend Shared Function SetWindowTextAnsi(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr 
    End Function 
End Class 

用法。使用Spy ++來仔細檢查你是否正確定位了窗口。