PowerBuilderでダウンロードフォルダを取得

今日も見に来てくださってありがとうございます。今日も楽しく更新します♪

珍しく、PowerBuilderの記事を書いてみることにしました。今のおしごとでは、PowerBuilder8.0.3というかなーり古い開発ツールを使っていますので、ニーズはほとんどないと思いますけど、自分用メモ、といういことでご容赦ください。

今回、Webからダウンロードしたファイルを読み込んで処理をする必要があって、ファイルの初期値をどうしようかなぁ、と、思ったのが発端です。とりあえず、ダウンロードフォルダにファイルが入るだろうから、そのフォルダを示しておけば大丈夫でしょう、ということでフォルダ名の取得方法を調べました。

こちらに紹介がありましたが、とうぜんPowerBuilderでの使い方ではありませんね。VBScriptでは、以下のように入力すればよいということでした。

MsgBox CreateObject("Shell.Application").Namespace("shell:Downloads").Self.Path

これを手掛かりに作ったのが以下のスクリプトです。

OLEObject lole_shell
lole_shell = CREATE OLEObject
lole_shell.ConnectToNewObject('Shell.Application')
OLEObject lpo
lpo = lole_shell.namespace("shell:Downloads")
if not isNull(lpo) then
    string ls_path
    ls_path = lpo.Self.path
    if directoryExists(ls_path) then
        sle_nm_file.text = ls_path + "\"
    else
        sle_nm_file.text = ""
    end if
else
    sle_nm_file.text = ""
end if
DESTROY lole_shell

ポイントは、lole_shell.namespace("shell:Downloads")を取得して、値がセットされたかどうかをチェックしているところです。ぼくの開発環境は古くて値がセットされず、エラーになっちゃうのですよね。でも、作ったプログラムをWin10環境で動かせば、値が取得できる、というトリックです。とりあえずユーザーが利用できればいいのですけど、ぼくが開発環境でその画面を開いたら異常終了、というのはいただけませんからねぇ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。