- - PR -
VisualStudio2005にてC#開発について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-22 16:34
kataと申します。
C#に関してご教示いただきたいと思います。 ◆開発環境 WindowsXP Pro VisualStudio2005 にてWindowsCE5.0アプリケーションを作成しているのですが、 以下の内容でつまずいてしまいました。 ◆ソース using System; using System.Diagnostics; public class EnumWindows { static void Main() { foreach (Process p in Process.GetProcesses()) { if (p.MainWindowHandle != IntPtr.Zero) { Console.WriteLine(p.ProcessName + " : " + p.MainWindowTitle); } } // 出力例: // vim : VIM - C:\\\\c#\\\\tips\\\\enumwin\\\\enumwin.cs // explorer : C:\\\\bin // NetCaptor : NetCaptor // OUTLOOK : 予定表 - Microsoft Outlook // cmd : コマンド プロンプト - enumwin // iexplore : @IT:Insider.NET - Microsoft Internet Explorer } } 起動中プロセスを表示させたいのですが、 ソリューションのビルドをすると以下のエラーが表示されてしまいました。 エラー 1 'System.Diagnostics.Process' に 'GetProcesses' の定義がありません。 エラー 2 'System.Diagnostics.Process' に 'ProcessName' の定義がありません。 エラー 3 'System.Diagnostics.Process' に 'MainWindowTitle' の定義がありません。 新規プロジェクト作成で、「WindowsCE5.0」を選んだときだけエラーとなり、 「Windows」を選んだときは問題なくソリューションのビルドができました。 何が原因で上記エラーが表示されるのか分からず困っています。 ご教示の程よろしくお願い致します。 [ メッセージ編集済み 編集者: kata 編集日時 2008-12-22 16:35 ] | ||||
|
投稿日時: 2008-12-22 17:01
ヘルプ読むとプラットフォームに「Windows CE」とは書いてありませんね。
| ||||
|
投稿日時: 2008-12-22 17:59
burton999様
情報ありがとうございます。
以下のサイトでよろしかったでしょうか? http://msdn.microsoft.com/ja-jp/library/1f3ys1f9(VS.80).aspx 確かにプラットフォームに「WindowsCE」とは記載されていませんでした・・・。 困りました・・・。 それでは質問の仕方を変えさせていただきます。 やりたいことは、WindowsCE5.0でIEの2重起動を防止したいと思っています。 以下のサイトを参考に作成していました。 http://dobon.net/vb/dotnet/process/checkprevinstance.html http://jeanne.wankuma.com/tips/csharp/process/previnstance.html プログラム構想としては、 @プロセス確認 AIEのプロセスが既に起動中のときはBへ。起動していないときはCへ B起動中のIEをアクティブにする。 CIEを起動させる DプログラムEXIT といった流れを考えていました。 @のプロセス確認(GetProcesses)がWindowsの仕様により不可能ということですので、 他に代替案はどのような方法がありますでしょうか? C#自体の開発に携わって間もないのでアイデアが浮かびません。 些細なことでも構いませんのでアドバイスをいただければ幸いです。 よろしくお願い致します。 | ||||
|
投稿日時: 2008-12-22 18:07
二重起動を確実に禁止する
http://jeanne.wankuma.com/tips/csharp/process/mutex.html は読まれましたでしょうか? System.Threading.MutexはWindowsCEでもサポートしているようですね。 | ||||
|
投稿日時: 2008-12-23 11:35
以下のサンプルが参考になりませんでしょうか?
Microsoft .NET Compact Framework ベースのプロセス マネージャ アプリケーションの作成 足りない所は、WindowsCEのAPIを探すしかないと思います。 (ウィンドウ前面表示は SetForegroundWindow かな?) 尚、APIの定義を探す時はここが便利そうです。 PInvoke.net | ||||
|
投稿日時: 2008-12-24 17:30
burton999様、nas様
情報ありがとうございました。
上記URLを参考にさせていただき、 なんとか形にしてみたいと思います。 ありがとうございました。 |
1