No.2ベストアンサー
- 回答日時:
Option Explicit
Private Declare Function NetMessageBufferSend Lib "netapi32.dll" ( _
ByVal servername As Long, _
ByVal msgname As Long, _
ByVal fromname As Long, _
ByVal buf As Long, _
ByVal buflen As Long _
) As Long
Sub Test()
Dim l_strPC As String
Dim l_strMsg As String
Dim i As Integer
Dim l_lngRet As Long
'引数を作成
l_strPC = Environ("COMPUTERNAME")
For i = Asc("A") To Asc("Z")
l_strMsg = l_strMsg & Chr(i) & vbCrLf
Next i
'API形式で実行
l_lngRet = API形式(l_strPC, l_strMsg)
If (l_lngRet = 0) Then
Debug.Print Now & vbTab & "成功"
Else
Debug.Print Now & vbTab & "失敗"
End If
'SHELLで実行
l_lngRet = Shell形式(l_strPC, l_strMsg)
If (l_lngRet = 0) Then
Debug.Print Now & vbTab & "成功"
Else
Debug.Print Now & vbTab & "失敗"
End If
End Sub
Private Function API形式( _
ByVal p_strSendPC As String, _
ByVal p_strMsg As String _
) As Long
Dim l_lngRet As Long
Dim l_bytSendPC() As Byte
Dim l_bytMsg() As Byte
p_strMsg = "API形式" & vbCrLf & vbCrLf & p_strMsg
l_bytSendPC = p_strSendPC & vbNullChar
l_bytMsg = p_strMsg & vbNullChar
l_lngRet = NetMessageBufferSend( _
0, _
VarPtr(l_bytSendPC(0)), _
0, _
VarPtr(l_bytMsg(0)), _
LenB(p_strMsg) _
)
API形式 = l_lngRet
End Function
Private Function Shell形式( _
ByVal p_strSendPC, _
ByVal p_strMsg As String _
) As Long
Dim l_lngRet As Long
Dim l_objSehll As Object
Dim l_strCmd As String
p_strMsg = "SHELL形式" & vbCrLf & vbCrLf & p_strMsg
l_strCmd = "net send " & p_strSendPC & " """ & p_strMsg & """"
Set l_objSehll = CreateObject("WScript.Shell")
l_lngRet = l_objSehll.Run( _
l_strCmd, _
VbAppWinStyle.vbHide, _
True _
)
Shell形式 = l_lngRet
End Function
No.1
- 回答日時:
サービス[Messenger]が起動している事が前提です
WindowsXPでSP2が当てられていたら、サービスが無効に設定されています。
※プロンプトでコマンド
net send
http://okwave.jp/kotaeru.php3?q=775773
※APIを利用
NetMessageBufferSend
http://okwave.jp/kotaeru.php3?q=414582
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。特にものすごく怒られたときとか、とんでもない損害を与えてしまったときとか…。
-
相手のPCにVBAからメッセージを表示させたいです。
Visual Basic(VBA)
-
他のPCにメッセージを表示
Visual Basic(VBA)
-
net send に代わるmsgコマンドについて
サーバー
-
-
4
会社内でパソコンを通じて伝言したい
フリーソフト
-
5
コマンドプロンプトから別マシンに命令を投げれるでしょうか
UNIX・Linux
-
6
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
7
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
フォントの大きさ
Visual Basic(VBA)
-
10
コマンドプロンプトでMsgを送信する
その他(コンピューター・テクノロジー)
-
11
エクセルでマクロを別のPCで利用するには
Excel(エクセル)
-
12
VBAでネットワーク上のバッチジョブを実行したい
その他(プログラミング・Web制作)
-
13
エクセルVBAでアクセスファイルを開く方法
Access(アクセス)
-
14
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
15
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
16
「年」と「月」だけの日付の表示方法
Excel(エクセル)
-
17
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
18
マクロでネットワーク上のコンピューターへの接続
Excel(エクセル)
-
19
Accessを使って日付を比較したい
その他(Microsoft Office)
-
20
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
[teraterm] waitコマンドで停止...
-
VScodeのエラー解決法 Pythonの...
-
「読み取りと実行」と「読み取...
-
Excel VBA ステップインが途中...
-
これってパソコンの最適化が完...
-
バッチファイルの内容を表示さ...
-
VB.NET「閉じられたファイルに...
-
バッチファイル実行時のプロン...
-
ネットワーク名が見つかりません
-
VBscriptが起動しない?
-
batからexeを実行し戻り値を受...
-
VB.NETでのDOSコマンドを実行に...
-
実行中のログをフォームのテキ...
-
エクセル フォルダの画像を画...
-
vbscriptを用いて他のVBSファイ...
-
VB2010 で指定時間にプロシジャ...
-
WSHのエラー対策
-
NASに移したBATファイルからセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
「読み取りと実行」と「読み取...
-
[teraterm] waitコマンドで停止...
-
バッチファイルで以下のような...
-
バッチファイルの内容を表示さ...
-
PDFファイルを開き、印刷し、閉...
-
エクセル フォルダの画像を画...
-
これってパソコンの最適化が完...
-
バッチファイルが不正終了して...
-
ネットワーク名が見つかりません
-
シェルで5分前の時間を取得したい
-
pythonスクリプトを管理者権限...
-
Excel(エクセル) VBA プロシー...
-
複数のbatファイルを自動実行し...
-
Excel VBA ステップインが途中...
-
メッセージを他のPCに出したい
-
16進数の変換処理
-
VB.NETでのDOSコマンドを実行に...
おすすめ情報