ドロップコンポ、IDE上で動作しないのは?


MX  2014-03-25 01:47:13  No: 46161

どなたか情報をお持ちの方、相談させてください。
環境は、Delphi7、Win7です。

ファイルドロップコンポーネント DROPDST を使いたいのですが、コンパイル済みの実行ファイル(exe)では動作するのですが、開発環境上で実行しても動作しないのです。

何か設定などがあるのでしょうか。

ご助言をよろしくお願いします。


Mr.XRAY  2014-03-26 00:56:19  No: 46162

>開発環境上で実行しても動作しないのです

DROPDST がどんなもので,どのような動作しているか分かりませんので推測 (憶測) です.
UIPI の関係ではないかと思います.


MX  2014-03-27 02:44:24  No: 46163

Mr.XRAY様  ご返信ありがとうございます。
返事が遅くなり失礼いたしました。

UIPI の関係、調べてみます。

エクスプローラからTEditにドラッグ&ドロップされたファイル名を、TEdit上に表示したいのです。
このコンポを使わない方法も調べてみます。


おかぽん  2014-04-05 18:40:52  No: 46164

> ファイルドロップコンポーネント DROPDST を使いたいのですが、コンパイル済みの実行ファイル(exe)では動作するのですが、開発環境上で実行しても動作しないのです。

Delphi 7 を管理者として実行している(ファイルのプロパティで、互換性タブの「管理者として〜」にチェックが入っているなど)
この場合、開発環境上からプログラムを実行すると、権限が引き継がれるため、管理者権限で動作する。
一方、エクスプローラは、一般ユーザーで動作しているため、管理者ユーザーとして動作している
プログラムと通信できずドラッグ&ドロップできない。

コンパイル済みの実行ファイル(exe)は、通常、一般ユーザーで動作するため、エクスプローラからの
ドラッグ&ドロップが可能。

これが、Mr.XRAYさんの仰る「ユーザー インターフェイス特権の分離 (UIPI)」というやつなんでしょうか?


Mr.XRAY  2014-04-05 21:01:04  No: 46165

おかぽんさん, こんちには.お久です.

おっしゃる通りです.
開発環境は,管理者権限で起動しないと正常に機能しません.
ここで言う管理者権限とは,Vista 以降では [管理者として実行] のことです.
それが原因の現象と考えられます.

掲示板等でレスする時は,一応,検索してから書くようにしています.
「UIPI Delphi」を Google で検索すると,私のサイトが連続して 3 ページもヒットしてしまうのです.
いつも手前味噌になってしまうことと,記事が難解と何回か書かれていますので,
くわしく書くことは遠慮しました.
他の方がレスの中でリンクして頂けるのは,一向に構わないのですが (笑)

私のサイトの記事の中から,更にリンクがあります(サイト内,サイト外を含めて)
それを読んでいただければと考えています.
対応方法も書いてあります.
キーワードは UIPI です.


おかぽん  2014-04-05 23:57:51  No: 46166

Mr.XRAYさん、こんにちは。
いつも精力的なご活躍、拝見しております。

> キーワードは UIPI です.
UACはよく目にしますが、UIPIは、あまり目にしません・・・
いや、私の目では見えなくなっているのかも。

以前のことですが、管理者権限なんて必要ないのに、ファイル名に「Patch」が含まれているだけで
管理者権限を要求されるアプリがありました。このアプリ、操作が煩雑なので、自動操作する
フロントエンドアプリを作ったところ、今回の質問者さんと同じように、思ったように
動作しなかったんですよね。

原因は、この質問同様、UIPI ですけど、当時は、UACしか知らなかったし、そりゃぁもう、意味不明ですよ。
結果的に、「ユーザー インターフェイス特権の分離 (UIPI)」の単語の記載はなかったけど、
先に自分でレスした内容に近いものが記載されたページを見つけて、原因にたどりつきましたが・・・
なんだかなぁ・・・もう。

そんなわけで、今回のような症例に対し、キーワード「UIPI」または、その対処方法が、
素早く見つかるようになればいいなと思います。


Mr.XRAY  2014-04-06 07:53:15  No: 46167

おかぽんさん,どうも.

>素早く見つかるようになればいいなと思います。

個人の範囲ですが,努力いたします (^^;
今回は,レスで明確に書くことは避けました.
というのは,DROPDST が不明だったのです.
こちらも,Google で検索したのですが,結論はでませんでした.
昔,米田さんが作成した同名のコンポーネントがあったのですが,手元にはないし確認できません.

たとえ,UIPI 対応のコードをプロジェクトに追加しても,
コンポーネントの内部の処理によっては,結果的には管理者権限では,
エクスプローラからのメッセージを受け取れないことになってしまいます.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加