|
|||||
|
<このサンプルの概要> 外部アプリケーションから送信されたWindowsメッセージをVB6のウィンドウで受信するサンプルです。 外部アプリケーション(他EXE)に指令を送信する手段としてWindowsメッセージがあります。 WindowsメッセージとはWM_XXXX(例:WM_GETTEXTやWM_SETTEXT)で表現されているメッセージです。 Windowsメッセージは通常、OSとAPの間で送受信されますが、AP間でも送受信が可能です。 WindowsメッセージはSendMessageやPostMessageで送信出来ます。 そのWindowsメッセージをVB6のウィンドウ(フォームやコントロール)で受信するには、 サブクラス化という処理が必要です。 このサンプルでは、VB6のサブクラス化の処理をシンプルにまとめました。 サンプルを簡単にするためWindowsメッセージ送信側と受信側を同じフォームに記述しています。 VB.NETやC#.NETのサンプルはこちらです。 Windowsメッセージを送信/受信するサンプル(VB.NET) Windowsメッセージを送信/受信するサンプル(C#.NET) ★フォームモジュール(Form1.frm) Option Explicit ' 独自(カスタム)メッセージ送信側の処理======================================================== ' ウィンドウにメッセージを送信するAPI Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Sub Command1_Click() ' 独自メッセージ送信 Call SendMessage(Me.hwnd, 9999, 0, 0) End Sub ' ============================================================================================ ' 独自(カスタム)メッセージ受信側の処理======================================================== Private Sub Form_Load() ' 独自メッセージの処理を開始 Call Start_MyWndProc(Me.hwnd) End Sub Private Sub Form_Unload(Cancel As Integer) ' 独自メッセージの処理を終了 Call End_MyWndProc(Me.hwnd) End Sub ' ============================================================================================ ★標準モジュール(Module1.bas) Option Explicit ' 独自(カスタム)メッセージ処理モジュール====================================================== ' ウィンドウをサブクラス化するAPI Private Const GWL_WNDPROC = -4 Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long ' デフォルトのメッセージ処理関数 Private lngWnP As Long ' 独自メッセージの処理を開始 Public Sub Start_MyWndProc(hwnd As Long) lngWnP = GetWindowLong(hwnd, GWL_WNDPROC) Call SetWindowLong(hwnd, GWL_WNDPROC, AddressOf MyWndProc) End Sub ' 独自メッセージの処理を終了 Public Sub End_MyWndProc(hwnd As Long) Call SetWindowLong(hwnd, GWL_WNDPROC, lngWnP) End Sub ' ウィンドウに来たメッセージを振り分ける関数 Private Function MyWndProc( _ ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long MyWndProc = 0 Select Case msg Case 9999 ' 独自メッセージ(9999)の処理 MsgBox "メッセージを受信しました" Case Else ' デフォルトのメッセージ処理 MyWndProc = CallWindowProc(lngWnP, hwnd, msg, wParam, lParam) End Select End Function ' ============================================================================================ |
WEBフォームに入力したデータを保存し次回以降は自動入力。WEBページのログイン入力に。 WEB操作再生ツール WEBページの入力操作やクリック操作を記録/再生、コマ送り再生、ショートカットからの再生 WEB更新通知ツール WEBページの更新をチェックし通知(ブザー/アイコン点滅/バルーン表示)、変更内容の差分表示 指令メール実行 メールで遠隔操作(受信メールを監視しメールタイトルのキーワードに対応したファイルを実行) フォルダ監視人 ファイル更新監視:メール等通知(本文/差分/添付) プログラム実行(新/旧/差分指定) 同期 FTP対応 PC状況メール通知 PC使用状況通知(PC起動/PC終了/ログイン/ログアウト/指定ファイル更新時にログ出力/メール送信) フォルダ内のファイル比較ツール サブフォルダを含む全ファイル比較 文字コード判定比較 フォルダ同期 FTP対応 バッチ対応 テキスト差分解析DLL テキスト差分を解析するライブラリ、差分解析するテキストの文字コード判定 文字コード判定/変換DLL 文字コード変換、文字コード判定(SJIS/JIS/EUC/UNICODE/UTF7/UTF8/バイナリ)ライブラリ TCP/IP-RS232C中継機 TCP/IPとRS232Cのプロトコル変換、送受信電文のログ表示/保存、タスクトレイ動作可 RS232C共有 まだまだ沢山あります ... |