- ベストアンサー
uwscでファイルの場所まで指定した一行をまとめる方法
- uwscを使用して特定のファイルを開くために、sndstr関数を使った一行でのファイルパス指定方法について教えてください。
- uwscでファイルを開くダイアログの「ファイル名(N)」テキストエリアにフルパスを指定するためのsndstr関数の使い方について詳しく教えてください。
- uwscのsndstr関数を使って特定のファイルを開く場合、ファイル名までのフルパスを一行で指定する方法が分からないので、ヘルプが必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> クリックアイテムを取得するプログラム って何でしょうか? GetItem関数を使ってって事なら、あれは「キャプション文字やリスト等を全て取得する」という文字列を取得する関数であって、ウィンドウのIDを取得する関数ではないです。 > 以上の情報をどのように活かせるか、 たまたま同じ文字列、タイトルを持ったコントロールがあると上手く動作しない可能性があるので自分だったらまずはこの方法は避けますが、無理にやろうと思うなら、 > ITM_ACCTXT で > 6)ファイル名(N): をGetID関数に渡して、 テキストエリアid=GetID(開くid, , , "ファイル名(N):") if テキストエリアid<>-1 then Print "Success." で、対象ダイアログの子ウィンドウのコントロールのうち、その文字列を持ったコントロールのIDが取得出来るはずです。 なので、 sndstr(テキストエリアid,"ファイル名までのフルパス") とかで文字列送信できるハズ。 > しかしこれをsndstr関数にどのように使うのか調べたものの、わかりません。 > 1や6が「固定の番号」ということでしょうか。 どうやって取得したのか分からないものを聞かれても困るんですが、 1のITM_STATICで取得されたのは多分固定文字列ですから、6の方なのでは。
その他の回答 (1)
- neKo_quatre
- ベストアンサー率44% (737/1646)
前提として、 > そのソフトのファイルを開くダイアログ(=開くid)にある > 「ファイル名(N)」テキストエリア欄に、 Windowsでは、 ・そのダイアログ ・テキストエリア ・ダイアログのOKやキャンセルのボタン ・チェックボックスやリストボックスなどのコントロール 全てウィンドウで、それぞれUWSCで言うところのWindowを識別するIDを持っています。 > sndstr(開くid,"ファイル名までのフルパス") だと、期待した 「テキストエリア/テキストボックスに文字列を送信する」 でなくて、 「そのIDのウィンドウ(=そのダイアログ)に文字列を送信する」 って動作になっているのでは。 そのテキストエリアのIDを取得して、そのIDに対してSENDSTRしてください。 方法としては例えば、、 ・GETALLWIN関数でダイアログの子ウィンドウのIDの一覧を取得、部品が動的に生成されるような物でなければ、固定の番号になってるかも。 ・マウスカーソルをテキストエリアに移動しておき、GETIDでマウスカーソル下のオブジェクトのIDを取得。 ・テキストエリアが識別できるクラス名が付いているなら、GETIDで対象クラス名を検索。 だとか。
補足
詳細なご回答、誠にありがとうございました。 大変参考になりました。 クリックアイテムを取得するプログラムを使って 目的のテキストエリアは ITM_STATIC で 1)ファイル名(&N): ITM_ACCTXT で 6)ファイル名(N): という情報だけわかりました。 しかしこれをsndstr関数にどのように使うのか調べたものの、わかりません。 1や6が「固定の番号」ということでしょうか。 よろしければ、sendstr関数の中に、以上の情報をどのように活かせるか、教えていただけないでしょうか。
補足
サイドのご回答頂きまして誠にありがとうございます。 お答えいただきました内容と、以下のサイトを元に解決いたしました。 http://uwsc.dohow.jp/blog/sendstr.html sndstr(開くid,"ファイル名までのフルパス",1,TRUE,) という形にすると、成功しました。 1がウィドウの順番、trueは置き換えということでした。