投稿者:アーク 投稿日:2022/10/01(Sat) 23:59:10 No.2773
いつもお世話になっております。アークです。
プロデル製のソフトにドキュメント作成機能を持たせた場合、
そのドキュメントに専用のアイコンを表示させるには、
どの様にしたら宜しいでしょうか?
宜しくお願いします。
投稿者:ゆうと 投稿日:2022/10/02(Sun) 23:22:03 No.2775
こんにちは お世話になっております。
たぶん関連付けの話かと思います。
https://docs.utopiat.net/rdr/manual/plugins/systeminfo/fileassociation.htm
実行可能ファイルには関連付け用のアイコンを別に設定できないので
アイコンは.icoファイルで単独で用意してください。
投稿者:アーク 投稿日:2022/10/04(Tue) 10:50:27 No.2778
こんにちは。アークです。
いつもお世話になっています。
プログラム側で何とかするものではなく、
アイコンはシェルが表示しているので設定すれば良かったのですね。
只、サンプルを実行すると添付写真のようなエラーが出てしまいました。
実行ファイルにして管理者として実行したらエラーを吐かず設定されました。
…という事は普通にプログラムに組み込む事はできないのでしょうか。
何か方法が有りましたら宜しくお願いします。
投稿者:陸 投稿日:2022/10/04(Tue) 16:41:35 No.2780
こんにちは。
当方、画像を目視で確認できないため、OCRした結果にてエラー内容を確認しました。
解凍が的外れだったらすみません。
個人的には、あとで同じようなエラーメッセージで検索などをした際に見つけやすくなると思うので、できればエラーメッセージはテキストで貼り付けていただけると助かるのですが、私は管理者ではないので、これ以上は避けたいと思います。
さて、本題です。
ファイルの関連付けはレジストリへアクセスすることが必要です。
プロデルで利用している関連付けの操作は、管理者権限が必要なようです。
一応ユーザー権限でも関連付けをすることは可能ですが、プロデルは未対応のようです。
そのため、対処法としては2つ考えられます。
1.関連付け専用の実行ファイルを作り、関連付けしたいアプリからその実行ファイルを呼び出して関連付けさせる。
その際、関連付け専用の実行ファイルは常に管理者権限で実行されるようにするとよいと思います。
2.1つの実行ファイルで解決したい場合は、コマンドライン引数を利用して、関連付けのためのオプションが指定された場合、管理者権限で再起動して関連付けを行う。
こんな感じのプログラムをプログラムの先頭に入れておけばよいと思います。
一応動くとは思いますが、ちゃんと動作検証してないので、もしうまく動かなかったらすみません。
----- サンプルここから -----
もし(プログラムの起動時設定から「/associate」を探したもの)の個数が0より大きいなら
もしプログラムの管理者権限が×なら
[プログラムのファイル名]を{「/associate」}で起動して待つ
でないなら
ーーここにファイル関連付けのコードを記載する
もし終わり
もし終わり
--------------------
ちなみに、関連付けをした場合、レジストリに情報が残るので、なんらかの方法で関連付けを解除できるようにしておく必要があります。
以上、参考になれば幸いです。
投稿者:アーク 投稿日:2022/10/05(Wed) 16:47:36 No.2781
陸 さん、アークです。
コメントありがとうございます。
作成中のプログラムはその性質上、関連付けが必要になった時点で再起動する事はできないので、
二者選択しか無いのなら1の方法を採らざるを得ません。
只、できる事なら組み込みたいと思った次第です。
投稿者:ゆうと 投稿日:2022/10/05(Wed) 18:20:45 No.2785
こんにちは。
関連付けを作成したときに、レジストリへのアクセスが拒否される旨のエラーが表示されるとのことですが
レジストリへのアクセスには管理者権限が必要になります。
(リファレンスに加筆しました)
関連付けを設定するには、
プログラムを実行可能ファイルとして作成してから「管理者として実行」を選んで起動するか、
プログラムの冒頭に
-------
※管理者権限
-------
と指定して管理者権限で起動するように設定してください。
投稿者:アーク 投稿日:2022/10/05(Wed) 17:00:40 No.2782
こんにちは。アークです。
その後の調査で分かった事が有ります。
アイコンを指定しても即反映には至らないようです。
また、関連付けの削除の方は全く働かないようです。
Windowsのバージョンの違いなのか途中で何か変更が有ったのか、
「管理者として実行」に関係なくシステムに妨害されているような気もします。
Produire V1.8.1150
Windows 10 V21H2
安全上そうなっているのなら諦めます。
投稿者:アーク 投稿日:2022/10/07(Fri) 23:35:02 No.2786
こんばんは。アークです。
管理者権限で登録はできたのですが解除ができませんでした。
どうやら『「拡張子」というファイル関連付けを削除する』だけでは不十分で、
その前に『「拡張子」というファイル関連付けを取得する』の一文が無いと駄目なようです。
一応、本体とは別ファイルにしての登録と解除ができたので、
この件は解決とします。
ありがとうございました。
- WebForum -