はじめまして、Felixといいます。
現在VBで、業務補助系のアプリケーションを作っていまして、
常駐・入力監視作業を行う部分を完全バックグラウンドで動作させよう
と考えています。このアプリケーションはTCP・IPで専用ネットワーク
(LAN)を構築し、情報資源を共有するなど、様々な処理を円滑に、
かつ自動的に進めるためのもので、このシステムを前提にした処理などもある
ためクライアントの一つが勝手にプロセスを終了させるようなことがあると
不都合が発生してしまいます。そのためにも、このプロセスの動作がシステム
管理者以外の目になるべく触れないようにしたいのです。
色々と調べて、例えばShell関数のvbHideオプションを使ってみたりしたのですが
どうにも巧く行きません。Windowsサービスとしての登録というのを知り、
色々調べたのですが此方に関してはソフトウェア的に登録作業を行う方法につ
いてのドキュメントが見つかりませんでした(MSDNのVB.NETに関するドキュメント
は存在しましたが当方の環境はVB6なので…)。API関数に何かないかと
探してみても結局何も見つかりませんでした。恐らくセキュリティー上
悪用させる可能性があるのであまり公開されていないのでしょう(涙。
完全に煮詰まってしまったので、恥ずかしながら質問させていただきました。
開発ソフトはVB6、プログラム自体が99%完成しているので他の環境に
はなるべく移行したくありません(時間も無いですし。このソフトが走るOSは
Windows2000だそうです。何卒宜しくお願いします。
> 完全バックグラウンドで動作させようと考えています。
このようなアプリを作成する時は、プロジェクトのプロパティで、
[対話型インターフェイスの抑制]にチェックを入れておく、
App.UnattendedApp = True の状態にしておくのがお勧めです。
メッセージボックスなどが、App.LogEvent相当の機能に置き換わりますので、
万一エラー等が発生しても、画面ではなくイベントログに自動記録されます。
> このプロセスの動作がシステム管理者以外の目になるべく触れないようにしたいのです。
App.TaskVisible = False だけでは駄目でしょうか?
魔界の仮面弁士さん、親切かつ素早い回答を有難う御座いました!。
App.TaskVisible = False の通りにすることで、タスクマネージャの
アプリケーション欄の表示を抑制することが出来ました。プロセスの部分に
表示は残りますが、普通目的もなくここをチェックして操作する人も居ないと
思うのでまず大丈夫だろうと思います。
それにしてもAppオブジェクトなるものが存在していたとは…
まだまだ勉強不足でした(涙。このオブジェクト、他にも色々な使い方が
出来そうですね。教えてくださって本当に有難う御座いました。
ツイート | ![]() |