「FAQ」カテゴリーアーカイブ

Curlに関するFAQのページです

入力文字が正しく表示されない

◆ご質問◆
Curlで生成したTextFieldに、特定のUTF-8で表現できる文字を入力(貼り付け)したいのですが、
入力すると”・・”のような文字に変わってしまいます。
そもそもCurlで、そのような言語の入力、表示は可能でしょうか?(TextFieldに限らず全般的に)

◆回答◆
まずその言語に対応しているフォントの種類をfont-familyに指定することが必要になりますが、
対応しているフォントを指定しても 誠に残念ながら言語の種類によって正しく入力/表示ができません。

特に南アジア言語(インド、スリランカ、ネパールなど)やヘブライ語、アラビア語、
右から左へ記述する言語は正しく表示がされない可能性が高く、サポートも行っておりません。

Curlが正式サポートしている言語は日本語と英語のみになります。

RecordGridのコントロールの色変更について

【ご質問】
RecordGridの以下項目について、別々に色を指定することは可能でしょうか?

・レコードセレクタ
・列ヘッダ
・スクロールバー

【回答】
レコードセレクタ、スクロールバーなどRecordGridを構成するコントロールは
オープンコントロールを使用することで色の変更をすることが可能です。

詳細はサンプルをご参照ください。

オープンコントロール内のStandardRecordGridUIクラスでスクロールや
レコードセレクタ等の色を変更するセッターを追加してあります。
(controls/standard-record-grid-ui.scurlの111行目付近)

※オープンコントロールは標準コントロール部品全体を複製しているため、
  ソースのコンパイル等に時間を要し、
  全体の処理速度が遅くなる可能性がありますので、
  使用する際はお気をつけください。

網掛け状態で表示するには

【ご質問】
グラフィックを網掛け状態で表示することは可能でしょうか。

【回答】
グラフィックオブジェクトのdrawメソッドをオーバーライドすることにより、
網掛け状態を表現することが可能です。

詳細は以下のサンプルをご参照ください。
(サンプル内のdrawメソッドで縦、横の線を網目状にオブジェクトに対して引いています。)

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{define-class public AmikakeFrame {inherits Frame}

  {constructor public {default …}
    {construct-super …}
  }

  {method public {draw renderer2d:Renderer2d}:void
    ||縦
    {for i:Distance = 0pt below self.width step {any-to-Distance 2px} do
        {renderer2d.render-line
            i, 0pt,
            i, self.height,
            fill-pattern = “black”,
            stroke-thickness = {any-to-Distance 1px},
            line-style = “solid”
        }
    }
    ||横
    {for i:Distance = 0pt below self.height step {any-to-Distance 2px} do
        {renderer2d.render-line
            0pt, i,
            self.width, i,
            fill-pattern = “black”,
            stroke-thickness = {any-to-Distance 1px},
            line-style = “solid”
        }
    }
  }
}

{value
    let af:AmikakeFrame = {AmikakeFrame width = 200pt, height = 200pt, background = “red”}
    af
}

 

強制的に全てのCookieを削除することは可能か?

◆ご質問◆
強制的に全てのCurl RTEのメモリ上のCookieをクリアする方法はありますか?

◆回答◆
surgeプロセスが保持しているcookieを全て強制的にクリアする方法は残念ながらございません。
Curlアプリが複数起動していた場合に、surgeプロセスが保持しているcookieを全て削除してしまうと、
他の全てのアプリが保持しているcookieも削除してしまいます。
これにより他のアプリが正常に動作しなくなる可能性があるため実現は不可能となります。

Curlコントロールパネルの設定

【ご質問】
WindowsXP、administrator権限でRTEをインストールし、
Curlコントロールパネルで設定したホスト追加・アプレットの同期設定を
各ユーザーで利用させたいです。

共有端末ですが各ユーザー毎にログインするので、
ユーザー毎にセッティングする必要があります。

何かいい方法はないでしょうか。

【回答】
RTEのコントロールパネルの設定は各ユーザ毎に
ファイルに保存され設定されております。
つまり、そのファイルを書き換えてしまえば
任意の設定が各ユーザ毎に設定されることになります。

詳細な内容・具体的方法に関しては技術サポートにお問い合わせ下さい。
http://www.curlap.com/support/

C++で作成したDLLについて

【ご質問】
CurlのDLLインターフェースは
C++で作成されたDLLもサポートしているのでしょうか。

【回答】
C++で作成されたDLLはサポートされていません。

どうしてもC++で書かれたDLLを使わなければならない状況であるなら、
対象のDLLをラップして、C言語で書かれたDLLなどを作成することが回避策になると思います。
つまり、以下のイメージになります。

C++のDLL → ラップしたDLL → Curl
 (ラップしたDLLはC言語で書かれている)
 

DateTimeにおけるタイムゾーンの仕様など

◆ご質問◆
 DateTimeについてCurlドキュメントを拝見したのですが、
 記載されている仕様について、
 以下、いろいろ書きますが認識に誤りなどありましたら
 ご指摘ください。
 ①ローカルタイムゾーンにおける制約について
  DateTimeのzoneを指定しない場合、
  ローカルタイムゾーンがデフォルトとなるようですが、
  この時、日付範囲の制約が発生する仕様になっているようです。
  ※1970-01-01 00:00:00.000000 +0000 から
   2038-01-19 03:14:07.000000 +0000
  ローカルタイムゾーン以外に設定すると、
  この制約が無くなることは確認しました。
  Curlでは無限の範囲と制度で日付と時刻を表すことができるにも
  関わらず、こういった制限があるのはなぜでしょうか。

 ②ゾーン指定をすることによる影響について
  上記①のことから、
  zoneを指定して回避しようと考えました。
  この時、ゾーンに「UTC」を設定するとすると、
  日本時間を扱っている上では、正しい時間とはならないので、
  日付を表す文字列に「+0900」を追加するか等も考えています。
  このゾーンについて、UTCまたはその他のゾーンが設定されていると、
  ローカルタイムゾーンと比べて、
  DateTime周辺のAPIの結果に大きな違いが出るのでしょうか。
  例えば、
   DateTimeのコンストラクタに日付とUTCでゾーン設定した時、
   その後のAPIで日付取得した時に自動的に日本時間(+9時間)として
   取得されるなどあるとUTCは使えないと判断します。

 ③まとめ
  上記①②を踏まえ、
  Curlでシステム開発をする際、
  DateTimeは通常どのように扱ってらっしゃるのでしょうか。
  <1> 1970年~2038年の範囲を超えた日付を扱ったことが無いので
      ローカルタイムゾーンのまま。
  <2> システム導入先の国に合わせてタイムゾーンを指定。
  <3> UTCで決め打ち。
      いずれかになるかと思うのですが。

◆回答◆
①について
Curlは時刻を内部的に「UNIX時間」として扱っています。
また、その値を32ビットで扱っており、その最大値が2147483647となります。
(これが2038年1月19日3時14分7秒となります。)
この値を超えるとオーバーフローし誤作動する可能性があります。
このようなことから制約があります。

②について
{DateTime
    year   = 2009,
    month  = 6,
    day    = 3,
    hour   = 14,
    minute = 8,
    second = 14,
    zone = {DateTimeZone mode = DateTimeZoneMode.utc, utc-offset-minutes = 540} }
としてDateTimeを設定すれば
2009-06-03 14:08:14.000000 +0900
として取得できます。

③について
アプリケーションの用途によって扱い方が
変わるかと思います。
例えば、
<1>ならばタイムゾーンが一つであるような国で完結するようなシステム。
(日本国内のみで使用される)
<2>なら韓国で国内で使用されるようなシステム。
<3>複数のタイムゾーンの国で使用され、その使用国間でコミュニケーションするようなシステム。
(日本、米国、中国で使用される)

encode-charactersプロシージャ

【ご質問】
encode-characters プロシージャの
内部で扱っている Shift-JIS とはどの範囲でしょうか。

【回答】
Microsoftコードページ932で規定された
文字コードをサポートしています。

詳細は、APIリファレンスの
[CURL.LANGUAGE.STRINGS]-[CharEncoding]
の項をご参照ください。 

外部ライブラリ呼び出しに使うC構造体

【ご質問】
Curlの外部ライブラリ呼び出しですが、使用するC構造体のなかに固定長配列が
ある場合でも使えるのでしょうか?

Curlのdefine-C-structで作る場合、固定長配列である
AdapterNameなどはどのように書けばよいのでしょう?

【回答】
残念ながら、今回のように固定長配列に対応するCurlの構文はございません。
ですが、メモリ内の値を読み取ることで値を取得することは可能です。

例えば、以下のようなCの構造体がありこれをDLLを介して読み取るとします。

typedef struct foo {
  char *name;
  int age;
  char *date[3];
} Foo;

これに対応するCurlの定義は以下のようになります。 

{define-C-struct public FooStruct
    {defaults
        calling-convention = stdcall,
        string-rep = CString }
    field public name :String
    field public age  :int
    {getter public  {date}:{CArray-of char8}
        {return {unsafe-memory-get {CArray-of char8}, self._raw + 8}}
    }
}

dateゲッターの中でunsafe-memory-getマクロを使用し、メモリから直接読み取ります。
ここで指定するアドレスですが、+8としているのはこの構造体の
先頭のポインタからのオフセットとなります。
なお、1オフセットは4バイトとなりますのでご注意ください。

choose-file プロシージャと Dialog について

【ご質問】
choose-file プロシージャと Dialog について
別々の View から choose-file プロシージャの実行と
Dialog の起動を行っている場合に choose-file プロシージャが
Dialog が終了するまで結果を返却しない場合があります。
別々の View から実行している場合でも choose-file プロシージャは
Dialog の終了を待つのが仕様なのでしょうか?

【回答】
仕様となります。

モーダルの管理は一つのアプレットに対し一箇所で管理されています。
つまり、2つのViewを表示した場合、モーダル時に
止められる処理は、それぞれのViewで管理されるのではなく、
一箇所で一緒に管理されることになります。

”モーダル” Dialogの目的は、ユーザーの応答を得ることですので、
応答が得られるまでは処理が停止します。
このことを踏まえると、一つのアプリケーション上で
同時に二つ以上のモーダルDialogが表示されるのは好ましくありません。

これを回避するには以下が考えられます。
①View1とView2を別アプレットにする
 別アプレットにすることで、それぞれ別々に管理されることになります。
②Dialogをモーダルにしない
 呼び出し元の画面を触れないようにしなければならないといった場合は、
 呼び出し元画面の工夫をしていただく必要があります。

 

ActiveXによるExcelファイルの保存形式変更について

【ご質問】
CurlからActiveXを利用してExcelファイルを開いた際、
ファイル保存時にファイル保存形式を変更することは可能でしょうか。

具体的にいうとxlsファイル⇔csvファイルの保存形式を
Curlの処理上で行いたいというものです。

[参考]
以下のURLのVBのメソッドにおけるFileFormat選択です。
http://msdn.microsoft.com/ja-jp/library/cc329026.aspx

【回答】
ファイル保存時にファイル形式を変更するためには、
SaveAsメソッドの第2引数を指定する必要があります。

第2引数に1を指定するとxls形式に、
第2引数に6を指定するとcsv形式でファイルが保存できます。

コマンド・シェルからのCurlアンインストールについて

【ご質問】
Curlのアンインストールをコマンド・シェルから実行することは出来るのでしょうか。

【回答】
ドキュメントには記載されておりませんが、コマンドラインからアンインストールを行う方法は存在します。
以下 c:\Program Files 配下にCurlがインストールされている前提で説明します。

・インストールされているCurlを全てアンインストールする場合
コマンドプロンプトにて以下のコマンドを実行することでアンインストール出来ます。
“c:\Program Files\Curl Corporation\Surge\「X]\bin\config.exe” –silent –uninstall-completely
※1.[X]はインストールされているCurlの最上位バージョン+1の数字になります。
※2.c:\Program Files\Curl Corporation\Surge 配下のファイル削除などを行うため
   コマンド実行時のカレントフォルダは c:\Program Files\Curl Corporation\Surge
   以外のフォルダである必要があります。

・インストールされているCurlを全てアンインストールする場合
コマンドプロンプトにて以下のコマンドを実行することでアンインストール出来ます。
“c:\Program Files\Curl Corporation\Surge\[X]\bin\config.exe” –silent –uninstall-kernel [Y]
※1.[X]はインストールされているCurlの最上位バージョン+1の数字になります。
※2.[Y]はアンインストールするCurlのバージョン+1の数字になります。
※3.このコマンドを使用してインストールされているCurlの最上位バージョンのアンインストールは出来ません。

run-host-processについて

◆ご質問◆
 C言語のソースを変更しても良いのですが、例えばrun-host-processからexeファイルを
 実行する際に、exeファイル内ではexeファイルがあるフォルダを基準にした相対パスを使える
 ようにすることは可能でしょうか?

◆回答◆
Curlからexeファイル内の動きを規定する(今回は基準になるパスの変更)ことは不可能です。

exeファイルで読み込む設定ファイルの場所を
exeのプログラム内で持つのではなく引数として設定するというのは
いかがでしょうか。
run-host-processではexeファイルへの引数を渡すことが
できますのでその設定ファイルのパスをrun-host-process経由で
exeへ渡すようにするというのはいかがでしょうか。

Curlによる3DESの暗号化・複合化について

【ご質問】
Curl RTE にある 暗号化APIの3DESを用いようと思っていますが、
Curlアプリで暗号化したデータをJavaアプリやopenssl等
Curl外のプログラムで復号することができませんでした。
# 逆もできませんでした
# パスワードは同一のものを使用しており、
# Curlだけであれば暗号化・複合化か可能でした

3DESでは厳密には3つのパスワードが必要なところを
1つしかパスワードを必要しないことから、残り2つのパスワードを
内部で生成して暗号化・複合化しているものと推測しています。

Curlの3DESで暗号化したデータをJava等で復号する
(逆にJava等で暗号化したものをCurlで復号する)
ことは可能でしょうか?
可能な場合、どのようにすればよいのでしょうか?
# 内部のパスワードの生成方法等

【回答】
残念ながらCurlの現在の仕様では3つの異なったキーを
使用しての3DESの暗号/復号化には対応できません。

3DESでも”標準”のものにしか対応しておりません。

Curlのソースコードに対するセキュリティ関連の質問

◆ご質問◆

【質問1】
 ・ダウンロードされたCurl APはキャッシュにおかれるが、他から
  見られてしまうようなことはないか等、セキュリティについて
  教えて下さい。(フォルダの場所、PC上では暗号化されている 等)

【質問2】
 1)とかぶるところもありますが、
 ・Webサーバ上におかれているCurl APを他から参照、ダウンロード
  されてしまうことはないですか?
  具体的には以下です。
  【質問2-1】
  -start.curl はソースそのもののため、場所さえわかれば、ダウンロード
   できてしまうことはないか? 例えば、ドメインの直下にstart.curlを
   おいてしまうと、あてずっぽでもわかってしまうのではないか?
   start.curlがみれてしまうと、インポートしているpcurlの名称まで
   わかると思われます。
  【質問2-2】
  -pcurl自体は、圧縮されバイナリになっていますが、zipやlzhなどの一般
   的な圧縮方式ですか? 一般的な圧縮方式であれば、解凍できてしまうのでは
   ないかという懸念があります。

【質問3】
 ・Curl AP をダウンロード中は、httpsを使用していれば、暗号化されているという
  ことで、たとえ盗聴されても、内容まで解析される危険性は基本的にはないと
  考えてよろしいですか?

 

 

◆回答◆

【質問2】について
Webサーバ上に配置したCurl AP を構成するファイル、.curl、.scurl、
.pcurlファイルなどや画像ファイルは、インターネット上に公開されている
Webサーバであれば不特定多数から取得されることはあります。
ただ、これはCurlだから取得されてしまうのではなく、Webの仕組みとして取得できるようになっています。
(取得できないとWebのシステムが成り立ちません。)

【質問2-2】について
おっしゃるとおり、pcurlは圧縮されバイナリになっております。
ただ、圧縮のアルゴリズムは公開されておらず、単純にzipやlzh等の
ツールを使用して解凍して中身(圧縮前のソースコード)を見ることは
できないようになっております。

【質問2-1】について
Webの仕組み上、配置されているファイルのパスさえ分かってしまえば取得できるようになっています。
特に、manifestファイルには通常、パッケージ名とそのロケーションが
記述されていることがあるのでそれを見てしまえば、パッケージ名や
pcurlの名称は分かってしまいます。
ただ、ソースコートがpcurlになっている場合は、上記【質問2-2】での
回答でも書きましたが、中身は見えないようになっています。

【質問1】について
ここで言うキャッシュとは2つのものがあります。
ブラウザ等で使用されるキャッシュ、Curl RTEが言うキャッシュ。
まずは、ブラウザのキャッシュですが、これは単純にWebサーバから取得したファイル
(.curl、.scurl、.pcurlファイルなど)をローカルにコピーしているだけですので、
そのPCを利用している正規のユーザであれば見ることはできます。
ただ、pcurlファイルはバイナリであるので人が見ても判別することはできません。
次にCurl RTEが言うキャッシュですが、これは一度Curl RTEがコンパイルしたものを
保存しています。人が中身を見てソースコードを判別できるような状態で保存していません。

【質問3】について
SSL通信(https:での通信)はCurl APのダウンロードだけでなく
全ての通信を暗号化しているので基本的に通信の内容が分かることはありません。

Power User権限でのRTEインストール

【ご質問】
Power Userでインストールしようとしたところ失敗したため、
Administraorでインストールしたところ成功しました。
但しその後Power UserでCurlアプリケーションを開始しようとしたところ
エラーが表示されてしまいます。
一度アンインストールを行い再インストールをしても状況は変わりません。
他のPCで最初からAdmin権限でインストールしたところ、
どのユーザでもCurlアプリケーションを実行できるようです。
原因として何が考えられるか、教えていただけますか。

【回答】
前提として、お気づきかとは思いますが、
Curl RTEのインストールはAdministrator権限をもつユーザで行なわなければなりません。

状況としては以下のようになるかと思います。
PowerUserでのインストール

インストール失敗 - ①
Administratorでインストール

インストール成功 - ②
PowerUserでCurlアプリ起動(開始)

アプリ起動失敗

上記①のインストール失敗後に、アンインストールは行ないましたでしょうか。
また、②で成功とありますが、これは本当に成功していたのでしょうか。
PowerUserで行なったインストール作業が影響してAdministratorで行なったインストール作業が
正常に行なわれていない可能性があります。
(②で成功とありますが、成功したように見えていただけかもしれません。)

“Administrator権限を持つユーザ”で一度、完全にCurl RTEをアンインストールして
再度インストールをお試し下さい。
なお、既にインストール/アンインストールを行なったとのことですがアンインストール自体も
正常に行なえていない可能性があります。
この場合、手動でアンインストールを行い、再度インストールを行なって頂けます様お願いいたします。

手動アンインストール方法(WindowsXPの場合)
 1. C:\Program Files\Curl Corporationディレクトリを削除
 2. %USER_HOME%(C:\Documents and Settings\userid)curl-client-data
   ディレクトリを削除
 3. %USER_HOME%\Application Data\Curl Corporationディレクトリを削除
 4. %USER_HOME%\Local Settings\Application Data\Curl Corporation
   ディレクトリを削除
 5. 次のレジストリキーを削除
   ①コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Curl Corporation
   ②コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\
     Microsoft\Windows\CurrentVersion\Uninstall\Curl RTE X.X.X
     (※X.X.Xはインストールされたバージョンで異なります)

dispatch-eventsについて

【ご質問】
通信のレスポンス待ちが長い状態の際、dispatch-eventsの呼出が
 
多くなってしまうようで、クライアントPCのCPU使用率が100%になってしまいました。 
 
CPU使用率を低下させるためにdispatch-eventsの呼出を 
 変更前:{dispatch-events false} 
 変更後:{dispatch-events true} 
と変更することで、概ね期待通りの改善が見られることを確認しましたが、
同じような処理になっている箇所が多数あるため影響の範囲が分からない状態です。 
 
①アプリケーションからdispatch-eventsを呼び出す場合、
 引数をfalse→true
 変更することで、懸念される影響は
 どのようなものがあるのでしょうか?
 
 
②どのように使い分ければいいのでしょうか。
 
③trueとした場合、イベントが何も起きなければ、 
 無限に停止してしまうことになるのでしょうか。

【回答】
{dispatch-events}はAPIリファレンスの注意事項にも記述があるように、
実行されるイベントが予期できず、結果として予期せぬ動作が生じることもあるため
慎重に利用する必要があります。

①について

影響に関してはプログラムに依存するため予測不可能です。
引数をfalseからtrueに変更することでイベントキューにイベントが入るまで
{dispatch-events}を実行しないのでCPUの利用率の低下が
見込めるかもしれませんが、その他への影響に関しては言及することは困難です。

②について
目的によって使い分けていただくことが必要になります。

③について
何かしらのイベントがイベントキューに入るのを待つため、
イベントが何も起きなけ
れば 無限に待つことになります。

最初に記載したように、{dispatch-events}は慎重に扱う必要があります
false→true への変更の際には十分なテストを行って下さい
 

Enterキー長押し時のイベント制御

【ご質問】
TextFieldのValueFinishedイベントやCommandButtonのActionイベントで
Enterキーの長押しやCommandButtonを連続ボタン押下された際に、
TextFieldやCommandButtonでイベントを一回のみ発生するようにしたいのですが、可能でしょうか。

【回答】
各コントロールでhandle-eventをオーバーライドして
各イベントを制御すれば宜しいのではないでしょうか。

詳細は以下のサンプルをご参照ください。 

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

||連続押しができないボタン
{define-class public MyCommandButton {inherits CommandButton}

  {constructor public {default …}
    {construct-super …}
  }
 
  {method public {handle-event event:Event}:void
    {if event isa Action then
        set self.enabled? = false
       
        {dispatch-events true}
        {super.handle-event event}
        {dispatch-events true}
        set self.enabled? = true
     else
        {super.handle-event event}
    }
  }
}

{define-class public MyStandardTextFieldUI {inherits StandardTextFieldUI}

  field public fire?:bool = true
 
  {constructor public {default …}
    {construct-super …}
  }
 
  {method public {on-raw-key-release e:RawKeyRelease}:void
    set self.fire? = true
  }
 
  {method public {on-pointer-press e:PointerPress}:void
    set self.fire? = true
  }

}
||ValueFinishedイベント抑制TextField
{define-class public MyTextField {inherits TextField}

  {constructor public {default …}
    {construct-super …}
    set self.ui-object = {MyStandardTextFieldUI}
  }

  {method public {handle-event event:Event}:void
    {if event isa ValueFinished and (self.ui-object asa MyStandardTextFieldUI).fire? then
        {super.handle-event event}
        set (self.ui-object asa MyStandardTextFieldUI).fire? = false
     elseif not event isa ValueFinished then
        {super.handle-event event}
     elseif not (self.ui-object asa MyStandardTextFieldUI).fire? then
        ||
     else
        {super.handle-event event}
        set (self.ui-object asa MyStandardTextFieldUI).fire? = true
    }
  }
}

{value
    {VBox spacing = 10pt,
        {MyTextField width = 100pt,
            {on e:ValueFinished at tf:TextField do
                {dump e}
            }
        },
        {MyCommandButton label = “二度押し禁止”,
            {on e:Action do
                {dump e}
                ||時間の掛かる処理の代わり
                {sleep 3s}
            }
        }
    }
}

IEのタイムアウト

◆ご質問◆

 マイクロソフト サポート オンラインの文章には以下の記載があります。 
「Internet Explorer では、仕様により 
サーバーからデータが返されるまでのタイムアウト時間が設定されています。 
タイムアウト時間は、バージョン 4.0 および 4.01 の場合は 5 分 
バージョン 5.x、6、および 7 の場合は 60 分です。」 
http://support.microsoft.com/kb/181050/ja

◆回答◆

確かに、
http://support.microsoft.com/kb/181050/ja
(最終更新日2009/3/10 リビジョン8.4)  にも
http://support.microsoft.com/kb/181050/en-us 
(Last Review: November 17, 2009 – Revision: 13.0) のどちらにも
InternetExplorer7のタイムアウトは60分とあります。

ただ、IE7のリリース直後、多くのお客様から御指摘をうけ、
確認しましたところタイムアウトは30秒で御座いました。

また、「IE7 タイムアウト」と検索すると古い日付の
「IE7のタイムアウトは30秒である」というページを多く
見ることができます。

ゆえに、IE7のタイムアウトはリリース当初と
現在では値が変更されたものと考えられ、
タイムアウトの値が途中で変わったことになりますが、
そのことについてのマイクロソフトからの公式な発表は
見つけられておりません。

何卒、御理解頂けます様御願い致します。

RTEの自動更新について

◆ご質問◆

 ①「自動更新」が対象としているバージョンアップは、 
 メジャーバージョンアップを含むのでしょうか。 
 IDEのヘルプでは、以下のような記載しか見つけることができませんでした。 
  「Curl RTE には、重要な更新を定期的に確認してインストールする自動更新機能  
 追加されました。この機能はオプションで、Curl コントロール パネルから 有効にすることができます。」 

 ②マイナーバージョンアップで、動作の確認をしようと思いましたが、 
 思った通りの挙動になりませんでした。 
 プログラム上でなんらかのテクニックが必要なのか、それとも 
 ほかの問題や認識違いが存在するのか。お教え下さい。 
 インストールRTE  7.0.2 
 アプリケーション 7.0.3+ 
 の状態で、起動を試みると、WEBページが表示されるだけで、 自動更新されない。 
 RTEの終了時にも、自動更新は行われない。 

 ③実際に必要としている処理は、 
 現在利用している5.0.5から7.x.xへの自動更新です。 
 ユーザ側の負担を最小限にして、アップデートできる仕組みを検討しています。 
 もしadmin権限なしで、アップデート可能であれば、ベストです。 
 なにか、事例やアイデアはお持ちではないでしょうか? 
 現時点では、admin権限を持つ人が現場のPC1台1台に対して、 
 RTEの追加インストールを行うこと以外に、実現方法を持っていません。

◆回答◆

①、②について
自動更新の対象は、メジャーバージョンは含みません。
マイナーバージョンのみのアップデートとなります。
しかし、全ての新しいマイナーバージョンがアップデート対象と
なるわけではございません。

PCにインストールされているよりも新しいマイナーバージョンが
リリースされたとしても、その新しいマイナーバージョンが
“セキュリティ上重大なバグフィックスを含む”リリースであると
判断された場合のみに自動更新の対象となります。
お試しになった7.0.2→7.0.3は7.0.3が”セキュリティ上重大なバグフィックスを
含む”と判断されていないため自動更新の対象となっておらず、
更新されません。

③について
先に述べましたように自動更新の対象はメジャーバージョンを含んでいないため
Curl RTE 5.0.5がインストールされているPCからCurl RTE 7.0.xを自動更新する
事は残念ながら出来ません。

>  ユーザ側の負担を最小限にして、アップデートできる仕組みを検討しています。
一つはソフトウェア配布ツールを利用することが考えられます。
例えば、導入先がActiveDirectoryを利用したユーザ管理を行っている場合は、
Curl RTE 7.0.xはmsi形式のファイルとなっているためグループポリシーを利用して
ソフトウェアの自動インストールを行うことが出来ます。

もう一つは、自動インストールとまではいきませんが、JavaScript、VBScriptを
利用してクライアントPCにCurl RTEがインストールされているか、
どのメジャーバージョンがインストールされているかの判別を行うことが出来ます。
この仕組みを利用して、ver7のアプリを起動する前に、そのスクリプトで
必要なバージョンのCurl RTEがインストールされているか確認して、
インストールされていない場合は、任意のダウンロードページに遷移させる、
インストールされている場合はそのまま、Curlアプリを起動させるということが
出来るかと思います。
このスクリプトのサンプルが以下に御座います。御参照下さい。
http://www.curlap.com/support/technical/qa.php?category=10#q167

また、Administrator権限なしでインストールというのはOSのセキュリティ上の
制約となりますので、Curl RTE側から回避するということは不可能で御座います。