複数フォルダに右クリックを用いた処理を繰り返し実行させたい

こんにちは、お世話になります。
先日は漠然とした質問だったにも関わらずお答えいただきありがとうございました。

標記の件につきまして、質問させてください。

【やりたいこと】
特定フォルダ内に格納されている複数フォルダに、右クリックを用いた同様の処理をさせたい

フォルダ内にある複数のフォルダに、暗号化ソフトを用いて暗号化を掛ける作業の自動化を考えています。
フォルダ/ファイルに暗号化を掛ける場合、ソフトの仕様上で右クリックメニューからでしか暗号化が掛けられません。

現在、GetDirectoriesメソッドを用いてフォルダ情報を取得し、繰り返しFor Eachで処理をさせようと組み立てておりますが、右クリックを用いるとフォルダが指定されてしまうため他のフォルダで同処理ができません。
フォルダ内のフォルダに、右クリックから選択する処理を繰り返し実行させることは不可能でしょうか。

どなたかご教示いただけると幸いです。
よろしくお願いいたします。

かなり強引ですが。。。こんな発想で。。。

1)基点となるフォルダを代入アクティビティに入れる
2)直下のディレクトリ数を得る
3)プロセスを開始で基点を引数として、Explorer.exeを開始する
⇒エクスプローラが開く
4)ウィンドウにアタッチする
その中で。。。
4-1)フォルダを選択する
4-2)クリックして、フォルダを確定する
4-3)右クリックする
4-4)右クリックから以降の処理をする

4-1、-2、-3のエレメントは、

こんな感じです。
titleが"*"になっているのは、フォルダ名不定でも対応可能なようにです。
FOLに、フォルダの数(0~)を文字列にして差し込みます。

なんとなく出来そうな気がしています。

1 Like

HANACCHIさん

早速のアドバイスありがとうございます。

上記のようなやり方があったんですね。
ご教示いただけたやり方をメインにして改めて組み立ててみます。

取り急ぎ、お礼の返信となります。

1 Like

ああ…また引用が失敗しています。
度々不慣れで申し訳ありません。

ご教示していただいたセレクターエディタの内容も参考に、再度チャレンジしてみたいと思います。

1 Like

コミュニティエディション2020.6ですので、変数の所と、エクスプローラの表示のところで、動きが変わるかも知れませんね。

1 Like

HANACCHIさん

細かな補足まで…ありがとうございます。
当方が使用しているエディションは2020.4でした。今のところ差異は無いように感じられます。

度々の質問で大変恐縮ですが、4-1~4-3で示していただきましたエレメントについてお伺いさせてください。

→ ctrl automationid=‘{{FOL}}’ /
こちらについては、{{FOL}}と記載することで、
2)で取得したディレクトリ数が反映されるという認識で良いのでしょうか。

よろしくお願いいたします。

数が反映されると言うより、0~ディレクトリの数 - 1を設定するのですよ。
だもんで、ひとつずつフォルダを処理するのに、このFOLの値を変えていくのですo

HANACCHIさん
度々のご返信、感謝いたします。

少し混乱しておりまして、{{FOL}}と記載してあれば上記の動作が実行されるということでしょうか。
「0~ディレクトリの数 - 1」をさらに自身で設定する必要があるということでしょうか。
理解が遅くてお恥ずかしいところです。

大変恐縮ですが、よろしくお願いいたします。
また遅い時間になりましたので、返信はお手隙の時で大丈夫です。

あっ!ご自身で設定です。

多分、ディレクトリリストを取得されてたので、その数分、「繰り返し(コレクションの各要素)」アクティビティで繰り返して。。。
その際、繰り返し(コレクションの各要素)」アクティビティの「現在のインデックス」に値を設定すると、0から1ずつ増えていくので、それを利用するのが早いと思います。

HANACCHIさん

おはようございます。
遅い時間にも関わらずご返信いただけたこと、とても感謝いたします。
また、当方の返信が遅くなってしまい申し訳ありません。

度々お聞きすることになってしまい申し訳ないのですが、以下の通りになるということでしょうか。

■繰り返し(コレクションの要素)プロパティ


出力>インデックスの要素に変数(Int32)を設定する。変数名はfile_countとする。

■4-1)~ 4-3)のセレクター


「送付書類」というフォルダの中にあるフォルダに右クリック動作を連続させる場合、
セレクターの上段は①のように記載。

②のところに、変数として設定した「file_count」を文字列として記載する。
ctrl automationid=’file_count.ToString()’ /
ということでしょうか…?

セレクタの前に、FOL(String型)にfile_count.ToString()をしていただいて、セレクタの"0"部分を選択したのち右クリックで、出てきたメニューから、「変数を選択」でFOLを指定するとOKかと。

それと、このセレクタの前にウインドウをアタッチしていると思いますが、必要に応じて、titleを「添付書類」から「*」に変えてくださいね。

HANACCHIさん

早速のご返信、ありがとうございます。
わかってきた気がしています。

代入アクティビティでFOL変数の右辺にfile_count.ToString()として、
FOL変数をセレクタに差し込むということでしょうか。

1 Like

それでいける!と想像しています(^・^)

1 Like

Continuing the discussion from 複数フォルダに右クリックを用いた処理を繰り返し実行させたい:

HANACCHIさん

返信ありがとうございます!
また、こちらの返信が遅くなり申し訳ありません。

いただいたアドバイスを元に、動作確認をしたいと思います。
度々のご助言、ありがとうございました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.