- PR -

右下から「にゅ〜」っと出現するフォームにテキストを送信するソケットプログラムを作るには・・・

1
投稿者投稿内容
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2008-01-29 20:17
 お世話になっております。
WindowsServer2003 ActiveDirectory 配下でWindowsXP pro + VB2005を使っております。

 このたび、ソケットプログラムを組んで[PC1]から[PC2]へテキストデータをudpあたりで送信し、受信側[PC2]で受信すれば右下隅あたりから「にゅ〜」っと小さなフォームでテキストを表示する常駐プログラムを作成しようと思っております。

 その際に、送信側では、なんとか

【windowsのログオンユーザー名】

を指定して送りたいと思っております。

 ※AD承認済みのDHCPでIPアドレスをリースしております。

GPOでWindowsMessageサービスを有効にしておけば、net send コマンドでドメインユーザー名を指定すればメッセージが送信できますのでまったくそれで問題ないのですが、いちいちmsgboxが出てきて作業中のフォーカスを奪うので、自作してせっかくなので「にゅ〜」っと出現させてやろうというのが動機でございます。

 「作らなくてもこんなツールがあるよ」でも結構ですし、ログオンユーザー名からIPアドレスを取得する方法だけでも結構ですので、ご教授いただければ大変光栄でございます。

 何卒よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-01-30 18:10
引用:

McLarenさんの書き込み (2008-01-29 20:17) より:
 お世話になっております。
WindowsServer2003 ActiveDirectory 配下でWindowsXP pro + VB2005を使っております。

 このたび、ソケットプログラムを組んで[PC1]から[PC2]へテキストデータをudpあたりで送信し、受信側[PC2]で受信すれば右下隅あたりから「にゅ〜」っと小さなフォームでテキストを表示する常駐プログラムを作成しようと思っております。

 その際に、送信側では、なんとか

【windowsのログオンユーザー名】

を指定して送りたいと思っております。

 ※AD承認済みのDHCPでIPアドレスをリースしております。

GPOでWindowsMessageサービスを有効にしておけば、net send コマンドでドメインユーザー名を指定すればメッセージが送信できますのでまったくそれで問題ないのですが、いちいちmsgboxが出てきて作業中のフォーカスを奪うので、自作してせっかくなので「にゅ〜」っと出現させてやろうというのが動機でございます。

 「作らなくてもこんなツールがあるよ」でも結構ですし、ログオンユーザー名からIPアドレスを取得する方法だけでも結構ですので、ご教授いただければ大変光栄でございます。

 何卒よろしくお願いいたします。


Windows Messenger
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2008-01-31 10:22
jitta様 いつも大変お世話になっております。

イメージはまさしくその通りですが、Windows Messengerの場合、サインインしなければならないのでアカウントらしきものを一人一人登録しなければならないのでできれば避けたいと思っております。。

 実は話を簡単にするために[PC1]と[PC2]で話をいたしましたが、送信元のPCはLinuxで、Linux上のCプログラムからwindowsのマシンにメッセージを送りたいと思っております。Windows Messengerにテキストを表示させるパケットを送れればよいですが、難しそうなので、単純なソケット通信プログラムを作ったほうが楽かなと思った次第です。

 Linuxからnet send できるコマンドが落ちているたので最も要件に使いのですが、やはりフォーカスを奪われるのが致命的でした・・・

 ということで、ログオンアカウント名からIPアドレスを取得する方法だけでもよいので、わかれば何とかなるなと思い投稿させていただいた次第でございます。
 
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-01-31 21:51
つまり、質問が複数ある、ということですね?

1.Windows <-> Linux 間でソケット通信をする方法
2.Linux から、Windows AD に対してアカウント名を問い合わせる方法
3.アカウント名を投げて、そのアカウントが使用されている PC を特定する方法
4.新しいウィンドウが生成されたとき、そのウィンドウがキーボード フォーカスを奪わない方法
5.できれば、「にゅ〜」っと表示したい
6.1〜3の代わりに、net send のプロトコルを横取りする方法


 2,3は、Windows Server Insider で聞いた方がいいんじゃないかなぁ?それが Linux 上でプログラミングできるかどうかはわからないけど。
 でも、「net help send」で出てくる説明を見る限り、UDP でブロードキャストして、それぞれのコンピュータが今ログオンしているアカウントかどうかを見ている、って感じですね。

 4,5は、「フォーカス 持たない ウィンドウ -javascript」で Google 検索すると、こんなのが見つかりました。("-javascript" は、最初「フォーカス ウィンドウ」だけで検索したときのノイズ除去)
http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.jp.dotnet.languages.vb&tid=856dd3de-459c-4f72-ab3b-769ea19cd115&cat=&lang=&cr=&sloc=&p=1

 1は、大昔にやったことあるけど、大昔なので忘れた&たぶん役に立たない。
sendto とか rcvfrom とか使うんだよ、きっと、たぶん、おそらく。

 6は、プロトコルさえわかればできるんじゃない?
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2008-02-04 15:18
 いつも大変お世話になっております。
アドバイスいただきましてありがとうございます。

 net send の仕様を詳しく調べてみて、うなくいきそうになければ独自のプロトコルで作ってみようと思います。

 本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)