• 締切済み

ネット接続と「単一インスタンスのアプリケーションを作成する」設定につい

ネット接続と「単一インスタンスのアプリケーションを作成する」設定について (VB2008EEです) プロジェクトの設定(「アプリケーション」の項)で、 「単一インスタンスのアプリケーションを作成する」にチェックを入れたら、 実行(デバッグ実行ではなく、ビルドして作成されたexe実行)時に、 ウイルスバスター2010が、以下のように、 「プログラムがインターネットからデータを通信するのをブロックしました。」 とのメッセージを表示するようになりました。 プログラム自体は、通信などは全く行わないものであり、 また、上記プロジェクト設定をしなければ、メッセージが出ません。 これはどのように理解したらよいのでしょうか。 何か他に設定が必要なのでしょうか。 それともウイルスバスターがアホなのでしょうか。 それとも上記プロジェクト設定をする限りやむを得ないものなのでしょうか。 お分かりの方がいらっしゃったら教えてください。 なお、ウイルスバスターの添付メッセージ画面で、通信を許可しても 拒否しても、問題なく単一動作してます。

noname#166246
noname#166246

みんなの回答

回答No.1

こんばんは。 推測でしかないですが。 「単一インスタンスのアプリケーションを作成する」のチェックを入れると、VB2008によって、あらかじめ用意されている、多重起動をチェックするためプログラムが組み込まれることになると思うのですが、そのコード内において、ソケット通信を行うようなコードが実行されてしまっているのかもしれません。 Windowsにおいて、多重起動のチェックは、自分と同じ名前のプロセスを探すとか、自分と同じクラスIDのウィンドウを探すとか、プロセス間通信のたぐいのことをします。.NET Frameworkでは、プロセス間通信のたぐいのことは、.NETリモーティング という機構として、まとめられており、その機構のなかには、ソケット通信による外部ノードとのリモーティングも含まれています。同一ノードで完結するような処理であるはずなのに、上で書いた「あらかじめ用意されている」プログラムにおいて、もしかしたら、ソケット通信を行うコードが含まれているのかもしれない、というのを、若干、苦しいですが、ひとつの仮定の材料にしましょう。。。。 これをふまえて、以下の2つが解決のヒントになると思います。 1.実行前と実行後のポートの状況を比較して、ポート番号から何の処理をしようとしているか推測する 実行前に、コマンドプロンプトから netstat /a で実行前のポートの状況をメモしておき、ウィルスバスターの警告で通信を許可して実行し、その状態での netstat /a と、実行前の結果を比較すれば、どのポートで通信をしようとしているのかわかります。ポート番号で検索してみれば、実行しようとしている処理が何かわかるかもしれません。 2.多重起動のチェックを自前で実装する アプリケーションの起動時にすでに同一のプログラムが起動しているかチェックして、起動していれば、プログラムを終了させる、というコードを自前で書く方法もあります。 以下のURLが詳しいです。 http://dobon.net/vb/dotnet/process/checkprevinstance.html これらの実装をしてみても、ウィルスバスターが警告を出すのならば、ウィルスバスター的に危険な処理ということなのでしょう。:-)      

関連するQ&A

  • リリースビルドの作成

    VisualC++ 2005 Express Editionを使って、C言語の簡単なプログラムを作りました。コンパイルの際に出てくるエラーや警告は一切ない(デバッグモード、リリースモード両方)のですが、このリリースビルドをVC++をインストールしていないPCで実行しようとすると、「指定されたプログラムは実行できません。」と出て実行できません。コンパイルに使ったPCでは実行できます。 リリースビルドを作成の際、ツールバーにある"Debug"を"Release"に切り替えて、ソリューションをビルドしました。プロジェクトはWin32コンソールにして、空のプロジェクトから始めました。 なぜ、バイナリが実行できないのでしょうか? そもそも、リリースビルドの作成法はこれでいいのでしょうか?

  • アプリケーションの・・

    VC++6.0のMFCにてオセロのアプリケーションを作成しました。 今はプロジェクトでF7でビルドしF5で実行していますが、 これを例えばWindowのスクリーン上に設置されてあるごみ箱なり マイコンピューターのようにショートカットのようなものを作成し、 それをダブルクリックすれば実行される のような形式にしたいのですが どうすればいいのでしょうか? 

  • アプリケーション作成での質問

     現在あるソフトを作成しています。  なかなか専門的な用語が分からず、インターネットでどう検索してよいかわからなかったのでこちらで質問しました。 開発環境はWindows7、VisualStudioを用い、C#言語で開発しています。  今までのプログラムの実行方法は、統合開発環境を経由して実行したことしか経験がありません。ビルドした時に作成される「.exe」ファイルをクリックして実行したことはありますが、基本的に統合開発環境の「実行」でプログラムを実行しています。  そこで、1つ目の質問なのですが自分のプログラムを「アプリケーション」として動かすにはどうすれば良いのでしょうか?  普通ソフトはアプリケーションとして存在していて、それをダブルクリックなりタスクバーから選択するなりして実行します。そのようなアプリケーションとして自分のプログラムを実行するにはどうすれば良いのでしょうか?ビルドした時に作成される「.exe」ファイルをそのままアプリのように使っていると「.exe」ファイルのみを別の場所に移した時に参照しているファイルのパスがおかしくなってしまいます。今のところ「パッケージ化」というものをしたらいいのかな?というところまでは分かってきているのですが、この解釈が正しいのかどうかあまり自信がないです。  2つ目の質問は、Wordのように書類を扱うアプリケーションについてです。自分の解釈としては、Wordの書類をダブルクリックすると、拡張子を見ることで「Wordを用いる」という情報がわかり、OSがWordを実行する。Word側はどのファイルが開かれたのか(パスなのかな?)を受け取り、そのファイルを解析し、画面に書類を表示する。このような流れなのだろうと思っています。  しかし、このような流れの実行方法を自分で作成するにはどのようなことをしなくてはならないのでしょうか?また、このような流れで実行できるアプリケーションを何と呼ぶのでしょうか?用語がわからず調べようがない状態なんです(>_<)  例えば「~.bir」というファイルの中に日付を入力します。 そして、そのファイルをダブルクリックするとアプリケーションが実行されて、ファイルの中の日付が画面に表示される。このようなアプリケーションを試しに作ってみたいのですが...  自分の想像では... 「.bir」はどのアプリケーションの拡張子なのかをOS側に設定しておく必要がある。 アプリケーション側で「.bir」ファイルをダブルクリックした時にパスを受け取る仕組みを作っておく必要がある。  この2つがハードルなのかなぁと思っているのですがよくわからないのが現状です。  なお、現在作っているソフトは自分のPCだけで動けば良いものではなく、他のパソコンにも配布できるような形にしたいと思っています。インストーラなんかを作る形になるのでしょうがそこらへんも含めて全く知識がない状態です。  あまり用語を知らないので分かり易く説明できていないでしょうが回答お願いします。  長文失礼しました><

  • 関連付けるアプリケーションの設定エラー

    昨日、「サーカム(TROJ_SIRCAM.A)」というウイルスに感染して、駆除したのですが、今度はOEや他のプログラム等が次のメッセージが表示されて、開けません。 ”関連付けるアプリケーションの設定エラー” SirC32.exeが見つかりません。 このプログラムは、種類が”アプリケーション”のファイルを実行するために必要です。 SirC32.exeの場所: (空白) といった感じです。どのようにすれば良いでしょうか? 教えて下さい。

  • アプリケーションの作成方法について

    お世話になります。 VB2005でのアプリケーションの作成方法を教えてください。 たとえばマスタ画面が5画面、トランザクション画面が10画面、帳票作成画面が5画面ほどあるシステムの場合、 プロジェクトは1つで作るものなのでしょうか。それともソリューション内でいくつかのプロジェクトに分けて作るものなのでしょうか。 1つのプロジェクトの場合は、各画面の呼び出しはShowDialogで呼び出せばよいと思いますが、プロジェクトを分けると実行ファイルがその数だけできますよね。それぞれの呼び出しはShellで呼び出すのですか。 ただ、VB2005で作成した実行ファイルは起動が遅いということをよく聞きますので、呼び出すたびに時間がかかるのではそれも困ります。 実際に作成していらっしゃる方、どのようにしていらっしゃるのか教えてください。よろしくお願いします。

  • VB2005でデバッグ実行できない

    VB2005で[新しいプロジェクト]-[VisualBasic]-[Windowsアプリケーション]で 新規プロジェクトを作成しただけの状態から、ビルド、デバッグ実行すると 以下のエラーが表示され、デバッグ実行できません。 プロジェクトを実行しようとしているときにエラーが発生しました: (省略) 要求された操作には管理者特権が必要です。 Debugフォルダの中のexeファイルにはUACの盾アイコンがついています。 今まで特に気にせずアプリケーションの作成ができていたと思うのですが なぜか急にこのような現象に陥りました。 対処方法を教えてください。 環境:OS=Windows7 Pro    :VisualStudio2005

  • XcodeでApplescript

    今年からプログラムを勉強しようと思い、まずはApplescriptで 何かできないかなと考えテキストを購入しました。 環境はOS10.3.9 , Xcode1.5です。 そこでテキスト通りに新規プロジェクトからAppleScript Applicationを選択 次へ 新規AppleScript Applicationから任意のプロジェクト名(ディレクトリは自動で入力)  完了 新規プロジェクトが作成される。 ビルドと実行ボタンを押すとビルド~アプリケーションを実行して のっぺらぼうのウィンドウを表示すると書いてありますが 実際「ビルドと実行」ボタンを押すとFaild 1となり「プロジェクト名. applescript」のエラーに1が付きアプリケーションを実行してくれません。 (プロジェクト名.applescript」の右端のチェックを外すと実行されます) 何がおかしいのでしょうか。初っぱなからつまずいているので宜しくお願い します。

    • ベストアンサー
    • Mac
  • デバッグ開始でbin\Releaseにファイルが作成されてしまう。

    デバッグ開始でbin\Releaseにファイルが作成されてしまう。 Visual Studio 2008でC#によるWindowsアプリケーションを作成しているのですが、デバッグ開始を実行するとbin\Releaseにexeファイルなどが作成されてしまいます。 ビルドするとbin\Releaseにexeファイルなどが作成されます。 デバッグ開始の実行でbin\Debugにexeファイルなどが作成され、ビルドするとbin\Releaseに作成されるようにしたいのですが、どうすれば良いですか? ちなみに***.vshost.exeはbin\Releaseに作成されます。 これもbin\Debugに作成されるようにしたいです。

  • クラスプロジェクトのデバッグ

    VS2003で クラスプロジェクトと アプリケーションプロジェクトを作成しています。 クラスプロジェクトを参照しています。 以前はクラスプロジェクトのデバッグが出来たのですが、 いつからか、クラスプロジェクトのデバッグは出来なくなりました。 アプリケーションプロジェクトのデバッグはできます。 何か設定があるのでしょうか?

  • 【VB2005】インストーラー作成

    VB2005で作成したアプリケーションを セットアッププロジェクトを作成して、 インストーラーを作りたいと思います。 アプリケーションフォルダに、"App.Exe" を追加します。 ユーザーのデスクトップに、"App.Exe" のショートカットを追加します。 ソリューションのエクスプローラーで Manufactureなどを設定して、ビルドして "SetUp.Exe" を作成します。 それだけだと、デスクトップ→Windowsボタン→すべてのプログラム →任意のフォルダ? に、プログラムのショートカットが存在してなくて、どこで設定すればよいか困ってます。 アドヴァイスお願いします。

専門家に質問してみよう