関連付けには管理者権限が必要です

投稿者:ゆうと 投稿日:2022/10/05(Wed) 18:20:45 No.2785

こんにちは。

関連付けを作成したときに、レジストリへのアクセスが拒否される旨のエラーが表示されるとのことですが
レジストリへのアクセスには管理者権限が必要になります。
(リファレンスに加筆しました)

関連付けを設定するには、
プログラムを実行可能ファイルとして作成してから「管理者として実行」を選んで起動するか、
プログラムの冒頭に
-------
※管理者権限
-------
と指定して管理者権限で起動するように設定してください。

高DPI対応に関して

投稿者:ゆうと 投稿日:2022/10/05(Wed) 18:07:59 No.2784

こんにちは。

キャンバスの図形サイズが実際と一致しない現象についてですが
すでにお返事のあるとおり、ディスプレイのスケール(DPI)によるものです。

端的に言うと、お使いのPCに応じたウィンドウの「設計スケール比率」設定項目を設定するか、
キャンバスの「倍率」設定項目を1とすることで、意図するサイズになるかと思います。

------
窓というウィンドウを作る
  その実質大きさを{400,400}に変える
窓を表示する

窓にキャンバス1というキャンバスを作る
  その位置は、{0,0}
  その大きさは、{300,300}
  その背景色を白色に変える
  その倍率を1に変える

キャンバス1へ四角形を描く
  その位置は、{0,0}
  その大きさは、{240,30}
  その背景色を黄色に変える
  キャンバス1を更新する
  
待機する
--------

プロデルでは、高DPIに対応しているため、
プログラムを作成した環境と、実行する環境とでディスプレイ倍率が違う場合でも、画面が崩れないように補正する機能があります。
ウィンドウでは、Windowsのディスプレイ設定の「拡大と縮小」で設定した倍率に応じて
サイズや座標が換算されます。

ディスプレイの倍率が100%の場合は問題ないのですが、最近のPCでは125%などに設定されていることが多いため、今回のような現象が起きることがあります。
プロデルデザイナの「ウィンドウの設計」画面で、部品を貼り付けた上でキャンバスに図形を描く方法をおすすめします。

1.9での未代入変数の参照エラーについて

投稿者:ゆうと 投稿日:2022/10/05(Wed) 17:46:27 No.2783

こんにちは。

> 久々にインストールしている1.9を最新版(1.9.1150)に更新してみました。
> すると、未代入の変数を参照した際にエラーが出るようになったようです。
> この仕様は1.9の仕様として確定なのでしょうか。

確定ではありませんが、試験的に意図した仕様変更です。
変更した理由は、分かりやすいエラーを表示するため、バグの原因を特定しやすくするためです。

短いプログラムでは、問題ないかと思いますが
ある程度のプログラムになると、未代入の変数を参照したことが原因のエラーが起きた時に
エラーの原因が、未代入変数の参照であることが分かりづらいケースがあり
未代入であることをエラーとすることにしました。

> 個人的には1.7の仕様のままだと助かるのですが。
この仕様は、1.9で試験的に採り入れた仕様で、確定はしていません。
今後、既存のプログラムの影響具合なども考慮したいと思います。
この件については、場合によっては破壊的変更となる可能性がありますのでご了承ください。

今後ブログにも掲載致します。
ご質問ありがとうございます。

Re^2: アイコンの付け方

投稿者:アーク 投稿日:2022/10/05(Wed) 17:00:40 No.2782

こんにちは。アークです。

その後の調査で分かった事が有ります。

アイコンを指定しても即反映には至らないようです。
また、関連付けの削除の方は全く働かないようです。
Windowsのバージョンの違いなのか途中で何か変更が有ったのか、
「管理者として実行」に関係なくシステムに妨害されているような気もします。

Produire V1.8.1150
Windows 10 V21H2

安全上そうなっているのなら諦めます。

Re^2: エラーを回避する方法は無いでしょうか?

投稿者:アーク 投稿日:2022/10/05(Wed) 16:47:36 No.2781

陸 さん、アークです。

コメントありがとうございます。

作成中のプログラムはその性質上、関連付けが必要になった時点で再起動する事はできないので、
二者選択しか無いのなら1の方法を採らざるを得ません。
只、できる事なら組み込みたいと思った次第です。

Re: エラーを回避する方法は無いでしょうか?

投稿者: 投稿日:2022/10/04(Tue) 16:41:35 No.2780

こんにちは。

当方、画像を目視で確認できないため、OCRした結果にてエラー内容を確認しました。
解凍が的外れだったらすみません。
個人的には、あとで同じようなエラーメッセージで検索などをした際に見つけやすくなると思うので、できればエラーメッセージはテキストで貼り付けていただけると助かるのですが、私は管理者ではないので、これ以上は避けたいと思います。

さて、本題です。
ファイルの関連付けはレジストリへアクセスすることが必要です。
プロデルで利用している関連付けの操作は、管理者権限が必要なようです。
一応ユーザー権限でも関連付けをすることは可能ですが、プロデルは未対応のようです。
そのため、対処法としては2つ考えられます。

1.関連付け専用の実行ファイルを作り、関連付けしたいアプリからその実行ファイルを呼び出して関連付けさせる。
 その際、関連付け専用の実行ファイルは常に管理者権限で実行されるようにするとよいと思います。
 2.1つの実行ファイルで解決したい場合は、コマンドライン引数を利用して、関連付けのためのオプションが指定された場合、管理者権限で再起動して関連付けを行う。
 こんな感じのプログラムをプログラムの先頭に入れておけばよいと思います。
 一応動くとは思いますが、ちゃんと動作検証してないので、もしうまく動かなかったらすみません。

----- サンプルここから -----
もし(プログラムの起動時設定から「/associate」を探したもの)の個数が0より大きいなら
もしプログラムの管理者権限が×なら
[プログラムのファイル名]を{「/associate」}で起動して待つ
でないなら
ーーここにファイル関連付けのコードを記載する
もし終わり
もし終わり
--------------------

 ちなみに、関連付けをした場合、レジストリに情報が残るので、なんらかの方法で関連付けを解除できるようにしておく必要があります。

 以上、参考になれば幸いです。

windowsの設定の影響でした

投稿者:ten 投稿日:2022/10/04(Tue) 12:15:20 No.2779

にぽさん、ありがとうございました。

にぽさんの投稿を見て、突如「ひょっとして」と閃き、確認してみました。

Windowsのディスプレイ項目で、「拡大と縮小」部分、125%設定で普段使っているのを100%にしてみたところ、正しい表示になりました。

Windows側の設定が125%の場合は、設計スケール比率を{96,96}に変えることで、「想定通り」になった・・・(と思います)。ただ、このままでは、キャンバスの方に設計スケール比率を適用できない(やり方が分かっていないだけかも)せいか、完全には思うようにならないので、「ウィンドウを継承する」を使ったやり方をもう少し勉強して、そちらを使おうと思います。

ありがとうございました!

エラーを回避する方法は無いでしょうか?

投稿者:アーク 投稿日:2022/10/04(Tue) 10:50:27 No.2778

こんにちは。アークです。

いつもお世話になっています。

プログラム側で何とかするものではなく、
アイコンはシェルが表示しているので設定すれば良かったのですね。

只、サンプルを実行すると添付写真のようなエラーが出てしまいました。
実行ファイルにして管理者として実行したらエラーを吐かず設定されました。
…という事は普通にプログラムに組み込む事はできないのでしょうか。

何か方法が有りましたら宜しくお願いします。

Re: 描画時のサイズについて

投稿者:にぽ 投稿日:2022/10/03(Mon) 22:31:33 No.2777

こんにちは。
同じコードで試してみましたが,再現しません。どのバージョンをお使いですか。

私の環境は以下の通りです。

◆動作環境情報◆
プロデル 1.8.1150
Windows 10(64)
メモリ:63.8 GB

1.9の仕様について

投稿者: 投稿日:2022/10/02(Sun) 23:59:20 No.2776

お世話になっております。

久々にインストールしている1.9を最新版(1.9.1150)に更新してみました。
すると、未代入の変数を参照した際にエラーが出るようになったようです。
下記はかなり極端な例ですが、これだけでもエラーが表示されます。

----- サンプル -----
内容を「」として表示する
--------------------

今まで1.7でうまく動いていたプログラムがいきなり動かなくなってしまい、いろいろ調べていたのですが、上記のようなことがわかりました。
この仕様は1.9の仕様として確定なのでしょうか。
個人的には1.7の仕様のままだと助かるのですが。
環境は、Windows11 22H2、プロデル 1.9.1150です。

以上、よろしくお願いいたします。

▲ページの先頭へ

- WebForum -