AKARI0418のプロフィール
- ベストアンサー数
- 112
- ベストアンサー率
- 67%
- お礼率
- 100%
- 登録日2008/11/18
- 【C#】LINQについての質問です。
【C#】LINQについての質問です。 今、プログラミングLINQ(日経BP)の本を読んでいるのですが、わからないところがありましたので、お分かりの方に教えていただきたいです。 問題の場所は、P87のリスト3-43で、以下のコードです。 わからないのは、このコードの中で、ラムダ式のtとsが何にを指しているのかということです。 お分かりになる方、よろしくお願いいたします。 var expr = from c in customers join o in (from c in customers from o in c.Orders join p in products on o.IdProduct equals p.IdProduct select new { c.Name, o.IdProduct, o.Month, OrderAmount = o.Quantity * p.Price }) on c.Name equals o.Name into orders select new { c.Name, MaxOrder = orders .Aggregate( new { Amount = 0m, Month = String.Empty }, (t, s) => t.Amount > s.OrderAmount ? t : new { Amount = s.OrderAmount, Month = s.Month }) };
- リモートPCで動作しているプロセスにWindowsメッセージを投げるこ
リモートPCで動作しているプロセスにWindowsメッセージを投げることは可能でしょうか? 下記のようなコードで試してみたのですが、ASP.NETでリモートPCのプロセスを取得できています。 これらの中から目的のプロセスをプロセス名で特定し、MainWindowHandleプロパティでウィンドウハンドルを取得します。 これを利用してSendMessageで目的のウィンドウにメッセージを投げようとしていますが、pFoundWindowには0が入っています。 ちなみに目的のプロセスはAdmin権限で実行されていますが、他の権限で実行されているプロセスも同じようにウィンドウハンドルを取得できていません。 [C#] Process[] processes = Process.GetProcesses("servername”); //プロセスリスト取得 foreach (Process p in processes) { if (p.ProcessName == "target_process"){ //目的のプロセスであれば IntPtr pFoundWindow = p.MainWindowHandle; //メインウィンドウのハンドルを取得 SendMessage(pFoundWindow, msg, wParam, lParam); } MSDNには、MainWindowHandleはローカルPCで実行されているプロセスしか取得できないとありましたが、権限の設定等で取得できないのでしょうか? 通常、リモート接続では実行ユーザがNETWIORK SERVICEになるようですが、これをAdmin権限で実行できれば取得できそうな気がします。 これと同様のことをFindWindow関数を使ってもできるのですが、同じくリモートPCのプロセスではウィンドウハンドルを取得できません。 他に良い方法はありませんでしょうか? サーバーはWindows Server 2003 + IIS6.0です。
- ベストアンサー
- Microsoft ASP
- katorea21
- 回答数5
- リモートPCで動作しているプロセスにWindowsメッセージを投げるこ
リモートPCで動作しているプロセスにWindowsメッセージを投げることは可能でしょうか? 下記のようなコードで試してみたのですが、ASP.NETでリモートPCのプロセスを取得できています。 これらの中から目的のプロセスをプロセス名で特定し、MainWindowHandleプロパティでウィンドウハンドルを取得します。 これを利用してSendMessageで目的のウィンドウにメッセージを投げようとしていますが、pFoundWindowには0が入っています。 ちなみに目的のプロセスはAdmin権限で実行されていますが、他の権限で実行されているプロセスも同じようにウィンドウハンドルを取得できていません。 [C#] Process[] processes = Process.GetProcesses("servername”); //プロセスリスト取得 foreach (Process p in processes) { if (p.ProcessName == "target_process"){ //目的のプロセスであれば IntPtr pFoundWindow = p.MainWindowHandle; //メインウィンドウのハンドルを取得 SendMessage(pFoundWindow, msg, wParam, lParam); } MSDNには、MainWindowHandleはローカルPCで実行されているプロセスしか取得できないとありましたが、権限の設定等で取得できないのでしょうか? 通常、リモート接続では実行ユーザがNETWIORK SERVICEになるようですが、これをAdmin権限で実行できれば取得できそうな気がします。 これと同様のことをFindWindow関数を使ってもできるのですが、同じくリモートPCのプロセスではウィンドウハンドルを取得できません。 他に良い方法はありませんでしょうか? サーバーはWindows Server 2003 + IIS6.0です。
- ベストアンサー
- Microsoft ASP
- katorea21
- 回答数5
- リモートPCで動作しているプロセスにWindowsメッセージを投げるこ
リモートPCで動作しているプロセスにWindowsメッセージを投げることは可能でしょうか? 下記のようなコードで試してみたのですが、ASP.NETでリモートPCのプロセスを取得できています。 これらの中から目的のプロセスをプロセス名で特定し、MainWindowHandleプロパティでウィンドウハンドルを取得します。 これを利用してSendMessageで目的のウィンドウにメッセージを投げようとしていますが、pFoundWindowには0が入っています。 ちなみに目的のプロセスはAdmin権限で実行されていますが、他の権限で実行されているプロセスも同じようにウィンドウハンドルを取得できていません。 [C#] Process[] processes = Process.GetProcesses("servername”); //プロセスリスト取得 foreach (Process p in processes) { if (p.ProcessName == "target_process"){ //目的のプロセスであれば IntPtr pFoundWindow = p.MainWindowHandle; //メインウィンドウのハンドルを取得 SendMessage(pFoundWindow, msg, wParam, lParam); } MSDNには、MainWindowHandleはローカルPCで実行されているプロセスしか取得できないとありましたが、権限の設定等で取得できないのでしょうか? 通常、リモート接続では実行ユーザがNETWIORK SERVICEになるようですが、これをAdmin権限で実行できれば取得できそうな気がします。 これと同様のことをFindWindow関数を使ってもできるのですが、同じくリモートPCのプロセスではウィンドウハンドルを取得できません。 他に良い方法はありませんでしょうか? サーバーはWindows Server 2003 + IIS6.0です。
- ベストアンサー
- Microsoft ASP
- katorea21
- 回答数5
- VB.NETのメモリ領域について
VB.NETのメモリ領域について 以下の(1)~(12)の変数のために、 スタック領域、静的領域、ヒープ領域のどこのメモリが使われるか教えてください。 Class Sample Dim a As Integer '(1) Dim b As String = "BBB" '(2) Shared c As Integer '(3) Shared d As String = "DDD" '(4) Sub X() Dim f As Integer '(5) Dim g As String = "GGG" '(6) Static h As Integer '(7) Static i As String = "III" '(8) End Sub Shared Sub Y() Dim k As Integer '(9) Dim l As String = "LLL" '(10) Static m As Integer '(11) Static n As String = "NNN" '(12) End Sub End Class それぞれこんな認識で合ってますか? スタック領域 (1)(5)(9) スタック領域にポインタ+ヒープ領域に実体 (2)(6)(10) 静的領域 (3)(7)(11) 静的領域にポインタ+ヒープ領域に実体 (4)(8)(12)
- ベストアンサー
- Visual Basic
- trap1130
- 回答数2