0

しばらくの間、これを行うための最良の方法を探していましたが、答えはありませんでした。

Windows XP と Delphi 6 を使用しています。

基本的に、同一のソースコードが必要な 2 つのアプリケーションがあります。唯一の違いは、2 つのアプリケーションがそれぞれのデータを別の SQL サーバーで参照することです。SQL サーバーは、Delphi が起動時に読み取る .ini ファイルで指定されます。

私の問題は、アプリケーション自体からあるアプリケーションから別のアプリケーションに切り替えることができるようにしたいということです (アプリケーション 1 がアプリケーション 2 に切り替わります)。

コンパイルする前にアプリケーションの名前を変更できることはわかっていますが、ソース コードは同じにする必要があります。また、実行時に .ini ファイルがこの .exe 名を参照するため、コンパイル後に .exe ファイルの名前を変更することもできません。.ini ファイルからアプリケーション名を読み取ろうとしましたが、これも機能しません。

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

5

実行時に動作を切り替えるアプリケーションは 1 つだけにする必要があります。

コマンド ライン引数で .ini ファイルの設定を上書きできるように、アプリケーションを拡張します。引数が指定されていない場合、値は .ini ファイルから取得されます。引数が指定されている場合は、.ini ファイルよりも優先されます。

于 2013-09-19T09:35:50.493 に答える
0

ここに2つの提案があります

A. MDI アプリケーションを作成します。MDIApp.dpr と呼ばれる Delphi の例を参照してください。

ChildMDI Windows が各行のコードになります。MDIchild ウィンドウを作成するときは、適切な .ini ファイルを読み取って MDIChild ウィンドウを初期化します。これは、所有している行数を示すマスター MDIApp.ini があり、そこで各行の .ini ファイルを取得する場所を定義していることを前提としています。したがって、.ini ファイルで 2 行あると言うと、次のようになります。

Lines=2
;Then have an iterator to read the paths/parameters of the .ini file 
; to initialize Line Window
IniFilePathForLine1=
IniFilePathForLine2=

子 Ini ファイルを使用して MDIchild ウィンドウを初期化します

B. 実行中のプロセスを読み、前面に表示する

あなたが説明したことで私が目にする問題は、すべての行ですべてのプロセス/アプリケーションが実行されることです。つまり、Line1 は Line1 と Line2 のアプリケーションを実行します。端末ごとに 2 つのアプリケーション。これらのアプリは表示と構成のみを目的としており、実際の作業は別の場所にある単一のアプリケーションで行われると想定しています。

のようなものを使用して、端末で実行されているタスク/プロセスを読み取ります。

Windows タスク マネージャー ([アプリケーション] タブ) からアプリケーションを取得する方法 + Delphi の HDD 上のそれらの場所

画面に表示されるものをフィルタリングして、アプリケーションのみが表示されるようにします。次に、前面に移動します。

アプリケーションを前面に表示するにはどうすればよいですか?

于 2013-09-20T14:34:14.420 に答える