どなたか情報をお持ちの方、相談させてください。
環境は、Delphi7、Win7です。
ファイルドロップコンポーネント DROPDST を使いたいのですが、コンパイル済みの実行ファイル(exe)では動作するのですが、開発環境上で実行しても動作しないのです。
何か設定などがあるのでしょうか。
ご助言をよろしくお願いします。
>開発環境上で実行しても動作しないのです
DROPDST がどんなもので,どのような動作しているか分かりませんので推測 (憶測) です.
UIPI の関係ではないかと思います.
Mr.XRAY様 ご返信ありがとうございます。
返事が遅くなり失礼いたしました。
UIPI の関係、調べてみます。
エクスプローラからTEditにドラッグ&ドロップされたファイル名を、TEdit上に表示したいのです。
このコンポを使わない方法も調べてみます。
> ファイルドロップコンポーネント DROPDST を使いたいのですが、コンパイル済みの実行ファイル(exe)では動作するのですが、開発環境上で実行しても動作しないのです。
Delphi 7 を管理者として実行している(ファイルのプロパティで、互換性タブの「管理者として〜」にチェックが入っているなど)
この場合、開発環境上からプログラムを実行すると、権限が引き継がれるため、管理者権限で動作する。
一方、エクスプローラは、一般ユーザーで動作しているため、管理者ユーザーとして動作している
プログラムと通信できずドラッグ&ドロップできない。
コンパイル済みの実行ファイル(exe)は、通常、一般ユーザーで動作するため、エクスプローラからの
ドラッグ&ドロップが可能。
これが、Mr.XRAYさんの仰る「ユーザー インターフェイス特権の分離 (UIPI)」というやつなんでしょうか?
おかぽんさん, こんちには.お久です.
おっしゃる通りです.
開発環境は,管理者権限で起動しないと正常に機能しません.
ここで言う管理者権限とは,Vista 以降では [管理者として実行] のことです.
それが原因の現象と考えられます.
掲示板等でレスする時は,一応,検索してから書くようにしています.
「UIPI Delphi」を Google で検索すると,私のサイトが連続して 3 ページもヒットしてしまうのです.
いつも手前味噌になってしまうことと,記事が難解と何回か書かれていますので,
くわしく書くことは遠慮しました.
他の方がレスの中でリンクして頂けるのは,一向に構わないのですが (笑)
私のサイトの記事の中から,更にリンクがあります(サイト内,サイト外を含めて)
それを読んでいただければと考えています.
対応方法も書いてあります.
キーワードは UIPI です.
Mr.XRAYさん、こんにちは。
いつも精力的なご活躍、拝見しております。
> キーワードは UIPI です.
UACはよく目にしますが、UIPIは、あまり目にしません・・・
いや、私の目では見えなくなっているのかも。
以前のことですが、管理者権限なんて必要ないのに、ファイル名に「Patch」が含まれているだけで
管理者権限を要求されるアプリがありました。このアプリ、操作が煩雑なので、自動操作する
フロントエンドアプリを作ったところ、今回の質問者さんと同じように、思ったように
動作しなかったんですよね。
原因は、この質問同様、UIPI ですけど、当時は、UACしか知らなかったし、そりゃぁもう、意味不明ですよ。
結果的に、「ユーザー インターフェイス特権の分離 (UIPI)」の単語の記載はなかったけど、
先に自分でレスした内容に近いものが記載されたページを見つけて、原因にたどりつきましたが・・・
なんだかなぁ・・・もう。
そんなわけで、今回のような症例に対し、キーワード「UIPI」または、その対処方法が、
素早く見つかるようになればいいなと思います。
おかぽんさん,どうも.
>素早く見つかるようになればいいなと思います。
個人の範囲ですが,努力いたします (^^;
今回は,レスで明確に書くことは避けました.
というのは,DROPDST が不明だったのです.
こちらも,Google で検索したのですが,結論はでませんでした.
昔,米田さんが作成した同名のコンポーネントがあったのですが,手元にはないし確認できません.
たとえ,UIPI 対応のコードをプロジェクトに追加しても,
コンポーネントの内部の処理によっては,結果的には管理者権限では,
エクスプローラからのメッセージを受け取れないことになってしまいます.
ツイート | ![]() |