uwscでファイルの場所まで指定した一行をまとめる方法

このQ&Aのポイント
  • uwscを使用して特定のファイルを開くために、sndstr関数を使った一行でのファイルパス指定方法について教えてください。
  • uwscでファイルを開くダイアログの「ファイル名(N)」テキストエリアにフルパスを指定するためのsndstr関数の使い方について詳しく教えてください。
  • uwscのsndstr関数を使って特定のファイルを開く場合、ファイル名までのフルパスを一行で指定する方法が分からないので、ヘルプが必要です。
回答を見る
  • ベストアンサー

uwsc:テキストエリアを指定してsndstr

あるソフトを開いている間に、uwscを用いて、 そのソフトのファイルを開くダイアログ(=開くid)にある 「ファイル名(N)」テキストエリア欄に、sndstr関数でファイル名までのフルパスを入力し、 特定のファイルを開きたいと考えています。 sndstr(開くid,"ファイル名までのフルパス") とすると、「ファイルの場所(I)」に入力してしまうので、sndstr関数内で「ファイル名」のエリアまでを指定して一行でまとめることはできますか? 目的の「ファイル名」テキストエリアは、ダイアログボックス内で、最初のエリアではないので、 タブや、クリック関数で「ファイル名」を指定しようとしてから、フルパスをsndstrで送ろうとしました。 しかし、どうもsndstr関数内で「開くid」を指定すると、 最初のテキストエリアである「ファイルの場所」に戻ってしまうようで、困っています。 参考にあるページでも良いので、ご助言いただけますよう、お願い致します。

  • wilion
  • お礼率63% (242/382)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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の方なのでは。

wilion
質問者

補足

サイドのご回答頂きまして誠にありがとうございます。 お答えいただきました内容と、以下のサイトを元に解決いたしました。 http://uwsc.dohow.jp/blog/sendstr.html sndstr(開くid,"ファイル名までのフルパス",1,TRUE,) という形にすると、成功しました。 1がウィドウの順番、trueは置き換えということでした。

その他の回答 (1)

回答No.1

前提として、 > そのソフトのファイルを開くダイアログ(=開くid)にある > 「ファイル名(N)」テキストエリア欄に、 Windowsでは、 ・そのダイアログ ・テキストエリア ・ダイアログのOKやキャンセルのボタン ・チェックボックスやリストボックスなどのコントロール 全てウィンドウで、それぞれUWSCで言うところのWindowを識別するIDを持っています。 > sndstr(開くid,"ファイル名までのフルパス") だと、期待した 「テキストエリア/テキストボックスに文字列を送信する」 でなくて、 「そのIDのウィンドウ(=そのダイアログ)に文字列を送信する」 って動作になっているのでは。 そのテキストエリアのIDを取得して、そのIDに対してSENDSTRしてください。 方法としては例えば、、 ・GETALLWIN関数でダイアログの子ウィンドウのIDの一覧を取得、部品が動的に生成されるような物でなければ、固定の番号になってるかも。 ・マウスカーソルをテキストエリアに移動しておき、GETIDでマウスカーソル下のオブジェクトのIDを取得。 ・テキストエリアが識別できるクラス名が付いているなら、GETIDで対象クラス名を検索。 だとか。

wilion
質問者

補足

詳細なご回答、誠にありがとうございました。 大変参考になりました。 クリックアイテムを取得するプログラムを使って 目的のテキストエリアは ITM_STATIC で 1)ファイル名(&N): ITM_ACCTXT で 6)ファイル名(N): という情報だけわかりました。 しかしこれをsndstr関数にどのように使うのか調べたものの、わかりません。 1や6が「固定の番号」ということでしょうか。 よろしければ、sendstr関数の中に、以上の情報をどのように活かせるか、教えていただけないでしょうか。

関連するQ&A

  • UWSCでテキストファイルを開いて表示したい

    UWSCでテキストファイルやExcelファイルを開きたいのですが、 FOPEN関数を使っても、たとえばテキストファイルを開こうと思っても開けません。 これはなぜでしょうか? すべてのパソコンでダメでした。 OSはXPSP3、7SP1、です。 UWSCのバージョンは最新のバージョン(4.8e1)です。 UWSC.EXEのあるフォルダに、「test01.txt」を作成し、 fid=FOPEN("test01.txt",F_READ or F_WRITE) と書いても、絶対パスで、 fid=FOPEN("C:\Users\user01\Desktop\uwsc\test01.txt",F_READ or F_WRITE) と書いても、ダメでした。 その一行しか書いてないのがダメな原因なのでしょうか? 「C:\Users\user01\Desktop\uwsc\test01.txt」は コマンドプロンプトやファイルを指定して実行、からは開けます。 アンチウィルスソフトは一時的にOFFにしてもだめでした。 OS(XPSP3)を再インストールして、ネットにつながず、 セキュリティソフトなしでやってみてもダメでした。 多分、自分が何か勘違いをしているのだと思いますが、 FOPEN関数は、ファイルを開いて表示するものだと思っていましたが 違うのでしょうか? Webで検索すると、他のみなさんは開いているようなのですが・・・ ファイルのIDを取得するだけではだめで、ほかの記述も必要ということなのでしょうか? ゆくゆくはExcelのファイルを普通に開きたいのです。 COMで開くような事例もあったので、それは試してみましたが、 Office2003のセキュリティの「中」設定が無視されて 開いてしまい、Auto_Openマクロも無視されたりで、 使いたくありません。 「中」設定のまま、「マクロを実行させるダイアログ」を 表示してExcelファイルを開きたいのです。 でもその前にということで、テキストファイルを試しにと思ったのですが テキストファイルすら開けません。 何度かWeb検索しても一向に手がかりがつかめません。 大変すみませんが、どなたがご存知の方がいらっしゃったら、 よろしくご指導くださいませ。

  • UWSCでファイルを開く方法

    UWSCというソフトに関する質問です。 UWSCを使って、テキストファイルを開くにはどうすればよいのでしょうか? 戻値 = FOPEN( ファイル名, [オープンモード]) の関数を使うということなので、例えば、test.txtというファイルを開きたいときに、 fid = FOPEN("test.txt" , F_READ or F_WRITE) というスクリプトを使ったのですが、うまくいきません。 ファイル名にファイルのある場所の情報(C:\Users\taro\Desktop\uwsc48c1など)を入れる必要があるのでしょうか? それとももっと別の場所で間違っているのでしょうか? とても初歩的な質問で大変申し訳ないのですが、どなたかご教授いただけないでしょうか。 よろしくお願いします。

  • UWSC教えて

    こんばんは UWSCというソフトでフォームに入力する際に、「半角英数ならそのまま、ひらなが入力モードなら半角英数にしてから入力」、つまり常に半角英数で入力したいのですが、どのようなコマンドを指定すればよいのでしょうか?

  • UWSCからエクセルのマクロを実行

    最近UWSCというソフトを使うようになりました。 で、エクセルからSHELLをつかってUWSCを立ち上げ実行し、UWSCの最後に再度エクセルの指定したマクロを実行したいと思っています。 エクセルファイル名= AAA.xls Excel = GETACTIVEOLEOBJ("Excel.Application" ,エクセルファイル名) ---- 中略 ---- Excel.Visible = True ACW(GETID("MICROSOFT EXCEL - " + エクセルファイル名 ,"XLMAIN"),-4,-4,1288,1002,0) CTRLWIN(GETID("MICROSOFT EXCEL"), MAX) msgbox("完了しました。") Excel.Application.Run エクセルファイル名 & "!Macro1" といったようなスクリプトを組んだのですが、なにもないままUWSCが終了してしまいます。 UWSCから指定のエクセルマクロを実行する方法を教えてください。

  • ACCESSマクロ:アプリの実行でUWSCファイル

    ACCESS2010でマクロを作っています。 その中のアクションでアプリケーションの実行を選び、uwscのファイルをフルパス指定していますが、起動しません。ファイルのフルパスの前に.exeファイルのフルパスを置いてもだめでした。 実行できるアプリケーションでuwscファイルを動かすには、どのようにしたらよいでしょうか。.batファイル化しないとだめでしょうか。 どうぞよろしくお願いします。

  • テキストファイルについて

     ご教授お願い致します。  あるレコードを自動でテキストファイルへ書きこむ作業がありまして  テキストファイルの保存先名の指定はできるのですが  タイトルをテキスト行の一行目につけたいとの要望がありました。  そのレコードのみの書き込みのため一行目に何の題名かが  自動で表示できればいいとの要望でした。  よって、保存先名を指定の場所でファイル名を作成すると同時に  一行目に指定した題名をつけることが可能でしょうか?  ぜひ、ご回答お願い致します。  

  • 保存先指定などファイルの参照をする際コ、ピペで一気に開けないタイプの解消

    ファイルの保存先 ファイルを開く など、ソフト上でフォルダやファイルを参照する場合 多くは、「ファイル名」エリアにフォルダやファイルのパスを 直接ペーストすれば、そのフォルダへ一気に飛んでファイルを 選択することが出来ますが、ソフトによっては 「ファイルの参照」のウインドウは表示されても 「ファイル名」の入力エリアが無く マイドキュメント等々がら いちいちたぐっていって フォルダやファイルを指定しないといけないタイプのものがあります。 これを、解消しどんなソフト?にも対応した、 「ファイル名」等、直接パスを入れられる入力エリアを出現 させるようなフリーソフトはありませんでしょうか?

  • フルパスを指定

    確定申告のソフトに去年までのデータを入力しようとファイル名を入力すると「フルパスを指定してください」とでました。 フルパスとは何ですかこの場合どういう操作をすればよいでしょうか?

  • UWSCで次のように処理したいのですが、どうしたらよろしいでしょうか?

    UWSCで次のように処理したいのですが、どうしたらよろしいでしょうか? 1.Ifb ChkImg("xxxx.bmp") で画像認証する 2.その画像が同じ場合に、その画像のファイル名をブラウザのキーボード入力が可能な場所に入力する どうかよろしくお願いします…

  • VBAでテキストファイルの件数を調べる方法

    Access2000のVBAで関数を使用して ファイルのパス名、ファイル名を指定すれば、 テキストファイルの件数を検索し変数に返す 関数はありませんか?     通常テキストファイルを開き1件1件カウントを 取っていけば件数を知ることは可能ですが、 数千レコードのテキストファイルが複数個存在 する場合処理スピードが遅くなるため何か 最適な関数はありませんか? よろしくお願い致します。

専門家に質問してみよう