1

VB.NET コードを使用して、Windows 7 LAN でメッセージを送信したいと考えています。問題は、msg.exe が管理モードでのみコマンドを実行することです。これがコードです。

Shell("cmd.exe /k runas /user:farook-pc\administrator msg.exe") 'パスワードの入力を求められます。

シェル("cmd.exe /k msg.exe", 1)

/k スイッチを使用して、シェルで何が起こっているかを確認します。/c はサイレント スイッチです。runas を使用したくないし、msg.exe の権限を変更したくない

4

2 に答える 2

0

他のアプリを起動して、そのように制御しようとするのは嫌いです。可能であれば、プログラムでmsg.exeの機能を自分で模倣することをお勧めします。いくつかの簡単なグーグル検索を行ったところ、msg.exeが使用するAPI関数は明らかWTSSendMessageにWtsapi32.dllにあることがわかりました。その機能に関するMSDNの記事は次のとおりです。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383842(v=vs.85).aspx

そして、.NETからそのAPI関数を呼び出す方法を示すリンクは次のとおりです。

http://www.pinvoke.net/default.aspx/wtsapi32/wtssendmessage.html

私はこれまで使ったことがなく、聞いたこともないので、残念ながらそれ以上のことはできません。

于 2012-06-26T13:41:07.543 に答える
0

管理者モードでVB.NETアプリケーションを自動的に起動することが可能です。これは、プロジェクト設定で変更できます。

その後、次のコマンドでmsg.exeを開くことができます。

Shell( "msg.exe")

于 2012-06-26T13:41:31.973 に答える