UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

exe化について / おむ
今日Pro版をダウンロードし、exe化を試してみようと思いましたがやり方がわかりません。
HELPを見ようと思いましたが見れず、free版のHELPには載っておらず皆様に質問した次第です。
exe化によってどんなファイル構成になるのか等知りたかったので試してみようと思ったのですが、どなたかご教授願えませんでしょうか?

No.5447 2018/06/30(Sat) 22:22:07

Re: exe化について / おむ
ちなみにまだ試用版です。
本家の支払い方法のページが表示されない為、ユーザー登録は出来ていません。

No.5448 2018/06/30(Sat) 22:57:11

Re: exe化について / おむ
読める範囲で過去ログ見たら支払等は現在受け付けていないようですね。
Pro試用版でもexe化は出来ないのでしょうか?
どなたかご教授頂けますと助かります。

No.5449 2018/06/30(Sat) 23:25:44

Re: exe化について / トンボ
過去ログNo.5253でわかりますが、Pro版のライセンスは購入不可です。試用期間中のPro版でもexe化は使えたはずですが、未登録ならいずれ使用不可になるでしょう。再インストールでも解決不可だったはずです。
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=5253

Free版だとUWSC コバヤシ式に情報ありますが、exe化は使用不可ですね。
http://canal22.org/download/

No.5450 2018/06/30(Sat) 23:38:50

Re: exe化について / おむ
トンボ 様

調べて頂きありがとうございます。
残念ですが諦めるしかないのですね。

No.5451 2018/07/01(Sun) 00:38:51

Re: exe化について / siguma
横から失礼します。

「試用」状態のUWSC Proでも「一応」exe化はできましたよ

@UWSC Proの右側の「設定」ボタンをクリックして「Uws2Exe (EXE作成)」をクリックします
A「EXE化するスクリプトを指定して下さい」のところでEXE化したいスクリプトを選択します
(他のオプションはお好みで)
BOKボタンをクリックします

ただし!これで生成されたEXEは以下の制限があります

・スクリプト実行前に「UWSC Pro 試用中 サンプル用EXEです」というダイアログが強制的に出ます
・2周間たつと動かなくなります

以上の点から鑑みますと、実用的にはトンボさんのおっしゃる通り「使用不可」といえるでしょうね

No.5454 2018/07/01(Sun) 04:08:48

Re: exe化について / おむ
siguma 様

レスありがとうございます。
当方インストールしたPro試用版で設定には「Uws2Exe (EXE作成)」項目が無く、記録方法、ホットキー、スケジューラーの3項目しかない為検証出来ませんでした。
情報ありがとうございました。

No.5475 2018/07/03(Tue) 18:54:00

Re: exe化について / おむ
手違いでPro試用版を開いてたつもりが無料版が開いてました。
確かに「Uws2Exe (EXE作成)」でサンプル〜出ますね。
試用期限越えたらexe化出来なくなるのかは、まだ使用期限が残ってますのでわかりませんがサンプル〜が出ても使えそうなら使いたいと思います。
早く有料版にしたいのが本音ですが。

siguma様、貴重な情報ありがとうございました。

No.5476 2018/07/03(Tue) 19:10:21

Re: exe化について / 柿ごはん
正規のやり方ではないですが、IExpressを使うとexe化できます。
管理者権限で実行できない等の制限はありますが。。

No.5487 2018/07/05(Thu) 09:22:32

Re: exe化について / satocha
>IExpressを使うとexe化できます。
exe化できても、人に渡すことはできません。

readme.txt抜粋
・商用利用、配布について
  商用利用は自己責任において可です。
  二次配布(スクリプトにFree版のUWSC.EXEを同封)するような事はご遠慮ください。
  この場合は、シェアウェア版のUWSC ProにてEXE化したものを配布するか
  当サイトからFree版をダウンロードしてもらうようお願い致します。

誰にも渡せず、自分一人でしか使えないのなら、exe化する意味はほとんどありません。

実はこの方法はpro版リリース以前は黙認のような形で使われていた形跡があります。スクリプトを効率的に配布したいというユーザーの声にこたえるために、作者としてはしかたなく黙認していたものと思われます。この問題もpro版を開発する動機になったのではないかと推察できます。

No.5490 2018/07/05(Thu) 16:52:30
月日を見つけて年月日に変換する / SEN
いつもお世話になっております。
ある備考に1週間から2週間先の完工日予定が年なしで、「月/日」で入力されていまして、
年を足して、6桁の年月日に直して出力したく作成してみました。
12月は当然、翌年の月日が入力されているので結構、複雑になりました。
正規表現の部分も2つに分かれてしまいました。
自分としては精一杯なんですが、こんなものでしょうか?
ご教授頂ければ、幸いです。


備考 = "1/1工事予定" // "7/8予定" "7/9完工予定"
print f月日を見つけて取り出す(備考)

FUNCTION f年日を見つけて取り出す(var 備考)
 G今日 = gettime()
 今年 = G_TIME_YY2
 備考 = STRCONV(備考,SC_HALFWIDTH)// 半角文字
 正規 = CREATEOLEOBJ("VBScript.RegExp")
 DIM パターン[] = "([1-9]|1[012])/([12][0-9]|3[01])","([1-9]|1[012])/([1-9]|[12][0-9]|3[01])"
 FOR i = 0 to length(パターン[]) - 1
  正規.Pattern = パターン[i]
  切出 = 正規.Execute(備考)
  ifb 切出.count > 0 then
   DIM 月 = 切出.item(0).Submatches.item(0)
   DIM 日 = 切出.item(0).Submatches.item(1)
   月 = REPLACE(FORMAT(val(月),2)," ", "0") // 2桁の文字列に変換
   日 = REPLACE(FORMAT(val(日),2)," ", "0") // 2桁の文字列に変換
   年月日 = 今年 + 月 + 日
   G完工日 = gettime(0,"20"+年月日)
   ifb G今日 > G完工日 then
    Result = val(val(今年)+1)+月 + 日
   else
    Result = 年月日
   endif
   break
  endif
 next
fend

No.5452 2018/07/01(Sun) 00:56:13

Re: 月日を見つけて年月日に変換する / siguma

> DIM パターン[] = "([1-9]|1[012])/([12][0-9]|3[01])","([1-9]|1[012])/([1-9]|[12][0-9]|3[01])"

で2つに分けてる理由がよく分からなかったのですが?(後ろのだけでいいような?)

とりあえず私はシンプルな形で実装してみました

さらに
・取り出しだけでなく備考自体も書き換える親切設計
・手抜きの日付チェック機能付き

のおまけ付き(笑)

備考 = "1/1工事予定"
//備考 = "7/8予定"
//備考 = "7/9完工予定"
//備考 = "1/1工事予定 7/9完工予定" // ← 2つ以上あるようなのはダメ"
//備考 = "1工事予定" // ← 無視
//備考 = "12/32完工予定" // ← エラー。入力した人を見つけて叱って下さい
print f月日を見つけて取り出す(備考)
print 備考

Function f月日を見つけて取り出す(var 備考)
 G今日 = GetTime()
 今年 = G_TIME_YY
 来年 = Val(今年) + 1
 備考 = StrConv(備考, SC_HALFWIDTH) // 半角文字
 正規 = CreateOleObj("VBScript.RegExp")
 正規.Global = True
 パターン = "(\d+)/(\d+)"
 正規.Pattern = パターン
 切出 = 正規.Execute(備考)
 ifb 切出.count = 0 then
  MsgBox("日付がない")
  exitexit
 elseif 切出.count > 1 then
  MsgBox("日付が2つ以上ある")
  exitexit
 endif
 md = Replace(Format(Val(切出.item(0).Submatches.item(0)), 2), " ", "0") + Replace(Format(Val(切出.item(0).Submatches.item(1)), 2), " ", "0")
 try
  ifb GetTime(0, 今年 + md) < GetTime() then
   ymd = 来年 + md
  else
   ymd = 今年 + md
  endif
 except
  MsgBox("日付がおかしい")
  exitexit
 endtry
 ymd = Copy(ymd, 3) // ex. 20180702 → 180702
 備考 = Replace(備考, 切出.item(0).value, ymd)
 Result = ymd
Fend

別に仕事でもないのにここまで作り込むのは個人的にはあまりしたくないことですが、さっさと下に流してしまいたいスレがあるものでつい…(笑)

No.5462 2018/07/02(Mon) 03:47:58

Re: 月日を見つけて年月日に変換する / satocha
powershellの柔軟な型変換と.netのdatetime構造体の機能を利用すれば、正規表現周りの難しいことは考えずに済みます。powershell呼び出しのオーバーヘッドが難点ではありますが。
「予定」ということなので、算出された日付が過去なら1年足す処理を入れています。
※追加 powershell部分に注釈を入れました。

dim 備考リスト[]="1/1工事予定" , "7/8予定" ,"7/9完工予定","3月2日まで"
for 備考 in 備考リスト
  msgbox( f月日を見つけて取り出す(備考) )
next
exitexit

function f月日を見つけて取り出す(備考)
  result=powershell( replace( src, "<STRING>",STRCONV(備考,SC_HALFWIDTH)) )
  textblock src
try{
  #年月日らしき部分を文字列から切り出し、一気にdatetimeオブジェクトにしてしまう。
  $day=[datetime]("<STRING>" -replace "([\d/年月日]+).*",'$1')
  #得られた年月日が過去の日付なら1年を足す
  if ( $day.compareto((get-date)) -lt 0 ){
    $day=$day.addyears(1)
  }
  #datetimeオブジェクトから年、月、日の文字列を取り出す。ゼロで左埋めも行う。
  $yyyy=$day.year
  $mm=([string]$day.month).padleft(2,"0")
  $dd=([string]$day.day).padleft(2,"0")
  #年月日変数をまとめて出力
  "$yyyy$mm$dd"
}catch{
  #datetimeオブジェクトへの変換が失敗したときは元の文字列を返す
"<STRING>"
}
  endtextblock
fend

No.5463 2018/07/02(Mon) 06:51:18

Re: 月日を見つけて年月日に変換する / SEN
siguma様・satocha様
じっくり調べて、やってみます。
ありがとうございました。

No.5485 2018/07/04(Wed) 21:17:00

Re: 月日を見つけて年月日に変換する / しろまさ
// こういう健全な質問ならスッと答えるのにね。

MsgBox( Chk("1/2工事予定") +" "+ Chk("7/8予定") +" "+ Chk("7/9完工予定") )

Function Chk(md)
 md = rRep(rRep(StrConv(md, SC_HALFWIDTH), "(^|\D)(\d)(?=\D|$)", "$10$2"), "(\d|/)|.", "$1")
 GetTime(); Dim yy = G_TIME_YY;
 If G_TIME_MM2+"/"+G_TIME_DD2 > md Then Result = (yy+1)+"/"+md Else Result = yy+"/"+md
 Result = Copy(Result, 3)
FEnd
Function rRep(txt, ptn, aft) // 正規表現 置換
 Dim r = CreateOLEObj("VBScript.Regexp"); r.Global = TRUE; r.Multiline = TRUE; r.pattern = ptn;
 Result = r.Replace(txt, aft)
FEnd

No.5489 2018/07/05(Thu) 10:13:12
サブライムエディターで複数のタブを開いている状態で特定のタブのテキストエリア部分を文字列を取得する方法 / 荒鷲
サブライムエディターで3つタブ開いているとします。タブ名の1つ目はaaa、タブ名の2つ目はbbb、タブ名の3つ目はccc
bbbタブの位置は固定ではなく変動とします。

bbbタブに入力されている文字列を取得する方法がなかなかうまくいきません。

[したい処理]
サブライムエディターが最小化されている状態でスクリプト起動でbbbタブ内のテキストエリアの文字列をコピーしたい。

bbbタブのテキストテキストエリアには「ああああああああああいいいいいいいいいいいいいいい」と入力されているとします。
「ああああああああああいいいいいいいいいいいいいいい」をコピーしたいです。

bbbタブをクリックした状態でuwscで記録したら下記が出力されました。
このコード起動してもbbbタブのテキストエリア内の文字列の取得はできません。

ACW(GETID("bbb • - Sublime Text (UNREGISTERED)","PX_WINDOW_CLASS"),0,0,1600,862,0)
MOUSEORG(GETID("bbb • - Sublime Text (UNREGISTERED)","PX_WINDOW_CLASS"))
sckey(GETID("bbb • - Sublime Text (UNREGISTERED)","PX_WINDOW_CLASS"),VK_ctrl, VK_c)
---------------------
下記も試しましたがうまくいきません。

a=getstr(GETID("bbb • - Sublime Text (UNREGISTERED)","PX_WINDOW_CLASS"))
msg=a
msgbox(msg)

No.5481 2018/07/04(Wed) 09:54:25

Re: サブライムエディターで複数のタブを開いている状態で特定のタブのテキストエリア部分を文字列を取得する方法 / satocha
この掲示板の巨匠のお一方に触発されてSublime textに挑戦していたのですが、いつの間にか使い慣れたサクラエディタに戻ってしまいました。そういうわけで、具体的な話はできませんことをお断りしておきます。

閑話休題。

この種の高機能エディタなら、全部UWSCでやるより、エディタのマクロ・プラグインで作ったほうがはるかに簡単だったりします。最終的にそのマクロをキックするところだけUWSCのkbdコマンドでやったほうが簡単だと思います。

※ざっと調べた所、CTRL+SHIFT+]のキーシーケンスでタブ間を移動できるようですね。あと、CTRL+A、CTRL+CなどでコピペすればUWSCだけでうまく行くかもしれません。

No.5484 2018/07/04(Wed) 12:57:24

Re: サブライムエディターで複数のタブを開いている状態で特定のタブのテキストエリア部分を文字列を取得する方法 / stuncloud
PackageControlでTab Filterというパッケージを導入した上で以下の方法でなんとかなりました

tabname = "bbb"

id = getid(" - Sublime Text")
sckey(id, VK_SHIFT, VK_CTRL, VK_P)
sendstr(id, "tab filter")
sckey(id, VK_RETURN)
sendstr(id, tabname)
sckey(id, VK_RETURN)
sckey(id, VK_CTRL, VK_A, VK_C)

が!
>サブライムエディターが最小化されている状態でスクリプト起動でbbbタブ内のテキストエリアの文字列をコピーしたい。
>最小化されている状態

最小化の部分を見落としてました
最小化してなければ上記スクリプトでなんとかなったんですが、最小化してると無理でした…
開いてるタブの内容をファイルに保存してfopen()したほうが良いかもしれんです

No.5488 2018/07/05(Thu) 10:12:20
ナナミさんへ / stuncloud
あまりにも頭に来たので新規スレッド立ち上げさせていただきます
「No.5394 ずらしてクリック」に関する件です、元が長くなりすぎててもう上げたくないので

No.5478より引用します
>umiumi様の代わりのおつもりなのでしょうか、ご自分の存在を示したいのであれば、コードや具体的ヒントでのみ表現してくださいませ、それ以外無用です。
なんだこの言い草は
クレクレ君そのものじゃねーか
いい加減にしろよ

僕は今後ナナミさんの質問には回答しません

あともしかしたらこのスレッドも荒れるかもしれないのでそうなった場合、ナナミさんに伝わってることが確認できたらスレ消します
こんなことやるべきじゃないんだけど本当に気分が悪く書かずにはいられなかった

No.5482 2018/07/04(Wed) 10:00:47
ずらしてクリック / ナナミ
お世話になります。
難しい、できない?stuncloudさんなら可能?なのかもしれませんが、以下の動作をすることは、可能でしょうか。
nekoがあれば、その2つ上の文字とサムネイル(この場合、"ぶた猫"と"にゃん猫.jpg")をクリックすることです。もちろん、直接でなく、2つずれた文字、画像です。
お知恵のある方、よろしくお願いいたします。

ぶた
ネコ
ぶた猫
ねこ
neko
イヌ

いぬ
ブタ

ぶた
ネコ
猫.jpg
ねこ
neko
イヌ

いぬ

No.5394 2018/06/20(Wed) 22:07:29

Re: ずらしてクリック / sai
過去ログから遡って確認しましたが、何で毎回丸投げヘルプなんですか?
コードを書くなりの努力をして再現できなくて申し訳ない気持ちくらいの配慮はできませんか?

マナーの悪い方が多くなりますと、質問に答える方が離れて、次第に誰も書き込まれなくなって廃れてしまった掲示板は数多く見てきました。
私は昔からUWSC掲示板をたまに閲覧し、書き込みせず参考にしてきましたが、これには耐えません。
今度からは気をつけてください、お願いします。

--- 以下は編集によって加筆(2018/07/09 04:03) ---

No.5397につきましては誠に申し訳ございません。
私の返信によってお手数を掛けた方については感謝を申し上げます。

丸投げヘルプについては、説明不足で曖昧かつ誤解を生む原因だった事は言うまでもなく私が悪いです。
この時の考えは、質問者の都合に合わせる事ができないくらい説明が足りないという意味と、スクリプト作成依頼と寸分ない問題の書き方であったからです。
スクリプトは、プログラム同様、論理と推理が要求されます。質問者の説明が足りないと、質問者が頭で理解してる事と違う結果になりやすいからで、返信回数が増えて回答者は面倒になって答えたくなくなります。
意思疎通を図るにも足りない出来事が過去ログからは多く確認できます。曖昧な質問ほど、返信回数が多くなる傾向になります。どこからどこまでが曖昧で、その説明が相手に理解されるかどうかも分かりません。
マナーの意味については相手を逆撫でする結果になったのも不徳の致すところです。経験上、返信しないほうが良い内容に近いものがあり、そう判断すると荒らしの一種に近いものがあると考えて、質問内容と書き方から想像するにあたって、質問者に誤解しないようにしつつ、皆様にも理解できる内容で注意できたと思い込んでました。
掲示板では注意文または質問外の内容を長文で書き込む事は雰囲気を悪くする可能性があり、経験上はそれを避ける為に手短に、単語に複数の意味を込めて書き込みました。No.5397は1時間考えて文章を纏めたもので当時はお願いとして書いたつもりでしたが、要求文だった事に気づきませんでした。
当時は掲示板が険悪な雰囲気にならないよう配慮しながら返信しましたが、認識が甘く、皆様の不満が溜まっていた事までは知らず、暗黙の扉を開けてしまうきっかけに繋がった可能性があり後悔しています。
あの書き込み以来はこの掲示板を閲覧していなくて、そんな出来事になっていたのも検知しなかった事も反省します。

過去ログの二千番未満の書き込みのsaiもしくはSaiは私ではありません。過去ログに名前の重複があった事については確認していませんでした。
私はこの書き込み以降は当掲示板に一切の投稿・返信・編集を致しません。当掲示板では名前はsaiのまま変更しない事が私の謝罪としますが、この書き込み以降において万が一返信した場合は最後まで責任持って問題が解決されるまで定期的に確認する事をお約束します。
二千番未満の方は私ではないことをご理解下さい。もしも二千番未満の本人がこの名前で書き込んだとしたら本当に申し訳ありません。出来れば、別人として対応お願いします。この書き込みの直後に私はプロバイダサービスの設定からwww.rocketbbs.comとwww3.rocketbbs.comのアクセス遮断を行うためUWSC 掲 示 板を回覧できなくなります。
No.5397を編集したのは、解決済みスレッドを最新に移動しない為です。原文は一切の変更を行っていません。

皆様に対し大変な誤解とご迷惑をお掛けしました事を誠にお詫び申し上げます。
問題児が事を締めるには不謹慎で無礼講を前もってお詫びしますが、再び揉めてしまう事が予想されるため、この件の質問についてはどうかご容赦ください。

No.5397 2018/06/21(Thu) 03:00:45

Re: ずらしてクリック / h
IF
CHKIMG
BTN
ヘルプファイルで調べて

No.5400 2018/06/21(Thu) 16:11:13

Re: ずらしてクリック / トンボ
一見可否を回答するだけで済みそうですが、単純ではありません。説明が曖昧で要件が複雑なので、多種の処理を組み合わせたコード作成と検証(実験)、コード付き解説が多数必要になりそう。的外れ回答もあり得えます。回答者にとって高負荷ですね汗(一から十まで考えさせるコード作成依頼に近いレベルの質問です。)
特に「XXがあれば、2つずれた文字列と画像のクリック」が技術的に難問で説明不足なので、具体的な回答が困難になり、曖昧なヒント回答だけになるでしょう。(肝心の可否の回答が無いままもあり得ます。)

プログラミングと本掲示板への理解力向上、論理的な思考化のためのアドバイスが必要と感じました。

下記を順番に実施した方が良いでしょう。
@UWSCと操作対象アプリケーションを基本だけでも一通り習得する。
 複雑な処理作成や円滑な会話をするために、一定以上のプログラミング能力(思いつきで作成する力)、理解力、語彙力をつけましょう。

A要件は細かく具体的にする。
 上記の質問内容を細分化すると、「エクスプローラから画像ファイル名のリストを作成する」「リストの中からnekoという画像ファイル名を検索し、検出箇所から2つ前の画像ファイル名を取得する」「取得した画像ファイル名のファイルをクリックする」といった3つの要件があることがわかります。(これが正解かは置いといて。)

B要件を1つずつプログラミングする。(簡単なコード作成から始める。)
 3つの要件を一辺にやると作成困難ですが、要件が1つずつならプログラミング難易度が簡単になります。
 1つの要件でも、初心者なら数日以上はかかりますので根気よく取り組みましょう。当然ヘルプ、インターネットや過去の事例など幅広く調べて、プログラミングに試行錯誤するべきです。 

C全く解決できなければ、「本当に上手くいかないこと」だけを本掲示板に質問しましょう。
 できるだけピンポイントかつ具体的な内容で質問すべきです。操作対象ウィンドウ(IEなど)やコードは記載した方がよいでしょう。下手に説明を省くと困らせる場合があります。
 例えば、質問者が「こんな感じに動かしたくて、こんな感じで作成したら、こんな感じで失敗した」と説明すれば、回答者は「失敗箇所はここにあって、こういう風に修正すればOK」と的確に指摘できます。

D最終的に複雑で膨大なスクリプトを作成し、上手くいかない場合は本掲示板にコード添削依頼する。
 例え数十行のコード量だったとしても、コード添削なら回答者は具体的な指摘がしやすいです。

初心者でも質問OKで、技術難易度や内容は基本自由で、マナーと勉強不足、説明下手、作業ミス、手抜き、軽率な行動は多少容認しますが、多少なので「それが露骨すぎる、または延々と続く」とトラブルになりかねません汗

そのため、様々な過程を飛ばした上に全ての要件を丸投げヘルプは推奨できません。

#誤解防止と今後のために一層わかりやすくしました。(2018/06/26)

No.5401 2018/06/21(Thu) 21:11:59

Re: ずらしてクリック / トンボ
さらに長文&連投で申し訳ないですが、ヒントを記載しますので、一度プログラミング頑張って下さい。

・エクスプローラから画像ファイル名のリストを作成する
→GETDIR関数と一次元配列変数を使用する。

・リストの中からnekoという画像ファイル名を検索し、検出箇所から2つ前の画像ファイル名を取得する
→FOR文、IF文、POS関数を使用する。(配列の文字列検索。)

・取得した画像ファイル名のファイルをクリックする
→GETID関数、CLKITEM関数を使用する。(実はエクスプローラのファイルもクリックできます。)

No.5402 2018/06/21(Thu) 21:18:55

Re: ずらしてクリック / ナナミ
回答ありがとうございます。
saiさんの丸投げヘルプの意味がわかりませんでしたが、トンボさんのおかげで理解できました、優しいアドバイス本当にありがとうございます、理解力が不足しているのはご容赦ください。

@UWSCは、1ヶ月ですが、過去の事例でもわかりませんでした。
 こちらの使えないコードを記しても参考にならない、完全手直しであるのがわかっているのに、
 ここに、コードを表示させないと、教えていただけないのでしょうか。
 ちなみに、以下は、参考にできませんでした。
   画面中央座標の取得 sai
   画面中央の座標を取得するにはどうすればよいのでしょうか?
    DATE:2007/12/18(Tue) 15:31 No.1335

Anekoは、画像でなく、文字です。
 コードは、書けませんがこの掲示板のソースでよろしいでしょうか。
 

ぶた
ネコ
ぶた猫
ねこ
neko
 実際のものは、spanとかも挟んでいますが、煩雑なので、あえて簡単にしました。
 GETID関数、CLKITEM関数を見てもわからなかったので、お願いしています。
 

No.5404 2018/06/22(Fri) 00:07:03

Re: ずらしてクリック / h
ヘルプファイルの調べ方を身に付けたほうがいい。
やりたい事をやりたいならば一度全部目を通してサンプルを作って経験を積むこと
でないと質問君の域を抜け出せない。


ぶた猫
ねこ
neko
のセットを文字ごとキャプチャして一つの画像ファイルとして保存@
ぶた猫の画像をキャプチャして画像ファイルとして保存A
ねこの画像をキャプチャして画像ファイルとして保存B

もし@があればその座標からAとBの画像をクリックすればいい

No.5406 2018/06/22(Fri) 11:55:32

Re: ずらしてクリック / stuncloud
> こちらの使えないコードを記しても参考にならない、完全手直しであるのがわかっているのに、
> ここに、コードを表示させないと、教えていただけないのでしょうか。

コードを見たほうが質問者が何を理解できていないのかや何が足りていないかを文章で説明されるより把握しやすい可能性があるからです
加えてコードのどの部分が自分の希望とは異なる動作をしてしまうなどの注釈も付いてるとありがたいですね

No.5407 2018/06/22(Fri) 11:56:06

Re: ずらしてクリック / トシ
丸投げヘルプの意味、本当に理解されてます?理解してたら

>GETID関数、CLKITEM関数を見てもわからなかったので、お願いしています。

などという言葉は出てこないです。
最低でも、GETID関数のここがわからないと具体的にわからない所を質問すべきですし、わからない所だらけと言うのであればUWSCの基本がわかっていないので、トンボさんのアドバイスに沿ってまずは基本からやるべきです。

あと、ご自分のコードを晒すのを渋られておりますが、1文字間違えているだけでも全く動かないことがままあるのがプログラミングです。
完全手直しになるかどうかは見てみないとわかりませんし、仮に全くのトンチンカンなコードであってもそれはそれで質問者の理解度、プログラミングレベルが伝わりますので、回答者のアドバイスもそれに応じたものになるでしょう。無意味ではないのです。

問題を解決するのは最終的にはご自分であると理解した上で取り組んで下さい。

No.5408 2018/06/22(Fri) 12:04:40

Re: ずらしてクリック / トンボ
>@
>画面中央の座標を取得するにはどうすればよいのでしょうか?

→下記の変数に四則演算するとよいでしょう。
 G_SCREEN_W     // 画面幅
 G_SCREEN_H     // 画面高

>Anekoは、画像でなく、文字です。
→もしかして操作対象アプリケーションは、IEでしょうか?

No.5413 2018/06/22(Fri) 20:34:23

Re: ずらしてクリック / ナナミ
回答ありがとうございます。
プログラマーではありません、レベルは、超初心者、UWSCを勉強する時間も睡眠時間もまともに取れない環境にいるものだと思ってください、ヘルプにある、検索しろ、晒せ、勉強しろ、で終わるならこの掲示板は、限られた方のものだけでしかなくなります。
丸投げヘルプとか質問君とか、この掲示板特有のもので、意味が本当にわかりません。
hさん
アドバイスのキャプチャした画像からの方法は、自分でなんとかできます。
ただ、ズレた文字(ぶた猫)は、毎回違う(ボス猫だったり)ので、セットできず、この方法が使えないのです。
stuncloudさんトシさん
理路整然としたアドバイスありがとうございます。
レベルが低く、コード、注釈を付けれる身分ではありません。
たとえば、以下を晒してみますが、応用できると思えません。
IDie = GETID("動物ランド")
ClkItem(IDie, "neko", CLK_ACC or CLK_MUSMOVE, False) 
トンボさん
@座標をずらす、ポインタの位置をずらすみたいな感じでできませんでした。
位置が、xyともずれているからなのでしょうか。
r = clkitem(wid, "neco", CLK_ACC or CLK_MUSMOVE, TRUE)
x = G_MOUSE_X
while muscur() = CUR_IBEAM
  x = x - 15; mmv(x, G_MOUSE_Y)
wend
btn(LEFT, CLICK)
Aアプリケーションでなく、IEです。

No.5414 2018/06/22(Fri) 23:38:52

Re: ずらしてクリック / トンボ
@上のコードはナナミさんの目的(要件)がわかりやすいです。(画面中央はやめた模様ですね。)

指摘ですが、CUR_IBEAMだと恐らくループせずにbtn関数へジャンプすると思います。UWSC実行直後のマウスカーソル種別に変更すれば解決するでしょう。(私のPCだと標準矢印カーソルのCUR_ARROWです。)

x = G_MOUSE_X
while muscur() = CUR_ARROW   // ←指摘箇所を修正。標準矢印カーソルである限りループします。
 x = x - 15; mmv(x, G_MOUSE_Y)
 print "ループ実行したよ"   // ←ループ内の実行状況確認のため挿入。
 sleep(1)           // ←UWSCのSTOPボタンを押しやすくするため挿入。
wend
btn(LEFT, CLICK)

AIEとなると可否の回答難しいので、数日お待ちください。

No.5415 2018/06/23(Sat) 00:21:00

Re: ずらしてクリック / え?
>プログラマーではありません、レベルは、超初心者、UWSCを勉強する時間も睡眠時間もまともに取れない環境にいるものだと思ってください、ヘルプにある、検索しろ、晒せ、勉強しろ、で終わるならこの掲示板は、限られた方のものだけでしかなくなります。

無駄レス申し訳ないですがあまりに酷いので言わせてください。

労せず利を得ようとしているから言われるんじゃないんですかね?
その労を他の人任せにしているのも問題。自分が出来ない環境だのいい訳に過ぎないですよ。
時間がないのならお金出して別の場所で依頼すればいいじゃないですか?
例えばあなたが苦労して得たものを私に無償で考えたり調べたりデザインしたり作ったりして頂けるのですか?

No.5416 2018/06/23(Sat) 13:50:29

Re: ずらしてクリック / エサやり禁止
>丸投げヘルプとか質問君とか、この掲示板特有のもので、意味が本当にわかりません。

確かに他の掲示板だと「教えて君」とか「クレクレ君」とか言いますよね。

質問ではなく、プログラムの製作依頼であれば、「ランサーズ」とかで依頼したらどうでしょうか。

知らない言葉があればググって・・・いやGoogleで検索してくださいね。

No.5417 2018/06/23(Sat) 16:42:32

Re: ずらしてクリック / ナナミ
え?さん エサやり禁止さん
掲示板で、初めて登場された方々ですか、言い回しが、saiさんですね。
お知恵のある方からのヒントがいただきたかっただけですが、何か勘違いされているようです。
トンボさん
ありがとうございます、おかげで何とかできそうです。
今後似たようなことをしたい方々の参考になればと思います。

No.5418 2018/06/23(Sat) 22:25:49

Re: ずらしてクリック / トンボ
あらら。Aはもういいのでしょうか。

私はエクスプローラと勘違いしましたが、IEウィンドウだとCLKITEM関数が効かない場合があるので、CreateOLEObj関数を使う必要があります。(少し難しいので、使わない方が良いかもしれません。)
http://canal22.org/gyaku/createoleobj/

一番上の質問内容がかなり分かり難いため、常識力、文章力、説明力などを磨いて質問をすれば回答者は的確に答えてくれます(^^)b

No.5421 2018/06/24(Sun) 07:22:15

Re: ずらしてクリック / ナナミ
素人の素朴な質問が、何故、"コード作成依頼"となっしまうのでしょうか。
何故、ナナミさんでは難しいので、"使わない方が良いかもしれません。"となるのでしょうか。
私の相談は、スレタイにも書いてある通り、ずらしてクリックが可能かどうかをお尋ねしています。
そして、できれば、ヒントをいただきたかっただけです。
無駄レスですが、学生ではありませんし、基本レベルの知識としてのURL等は、不要です。
失礼ないい方になりますが、必要無いかどうかはトンボさんが決めることではないと思います。
拙い質問に的確なお答えをいただいていることには、とても感謝しております。
ただ、掲示板を利用する人間は、まず基本習得と要件詳細具体化、過去事例を探して色々試して「本当に上手くいかないものだけ」
を証明しなければ、投稿すらできないのでしょうか?
主がいなくなった掲示板ですが、pro版のサポートにも、
「UWSCの操作に関する質問やバグ報告等は Web上のFAQや掲示板をご確認の上、掲示板へお願いいたします。」とあります。
漠然とした疑問はあるけど、どう質問伝えて良いか分からないというユーザーを排除されています。
それと、基本的に掲示板は、教えて君が集まるところだと思います。
答える答えないは自由ですので、それよりuwscユーザーが増えることの方が重要なのではないですか。
「配慮はできませんか?耐えません!」とコードや基本習得を前提に質問を遮る方が、不思議です。
ご指摘のCLKITEM関数が効かない場合があるのは、承知しています。
これ以上、トンボさんに負荷をかけるのは、申し訳ないからです。

No.5422 2018/06/24(Sun) 23:18:29

Re: ずらしてクリック / ZEROSAM
皆さん冷静に。
http://www.geocities.jp/stardust774/

多くの第三者も見ているのですから、双方ともここではここのルール(umiumiさんの意向)を守りましょうよ。
「ネットゲーム関係の質問はご遠慮ください」

No.5423 2018/06/25(Mon) 00:47:30

Re: ずらしてクリック / h
>アドバイスのキャプチャした画像からの方法は、自分でなんとかできます。
ただ、ズレた文字(ぶた猫)は、毎回違う(ボス猫だったり)ので、セットできず、この方法が使えないのです。

仮に10パターンあれば画像も10パターン作れば可能あまりに多いのなら別の方法も考える
使えないと思うのではなく工夫すればクリアできる問題もある

No.5425 2018/06/25(Mon) 14:20:02

Re: ずらしてクリック / トリビア
ご提示された文字列が何らかの規則的なHTML構造で成立しているのであれば、答えとしては可能です。
No.5426 2018/06/25(Mon) 17:28:41

Re: ずらしてクリック / 失敗経験者
>CreateOLEObj関数を使う必要があります。(少し難しいので、使わない方が良いかもしれません。)
数年前に仕事で作成経験ある。冒頭質問の答えは可能になるけど、とっくに取り組んでる画像関係の方をオススメ。画像キャプチャや画像チェックでもするのかな。

何故かというと、HTMLタグ文字列と画像ファイル名の一覧を職場好みに並び替えるためソート処理、余計な文字列を削除する処理作ったんよ。でもプログラミング技術(アルゴリズムだっけ?)もスクリプト作成もかなり難しかった。転職前の職場にスクリプト置いてきたからうろ覚えだけど、コード量は数百いってたと思う。
数か月かけて完成したけど、サイト大幅更新で一層不規則になり、たった2年で使わなくなった。複雑すぎたスクリプト直すの骨だし。
今回はその処理が必要かはわからんが、そもそもHTML構造がどんな感じかわからんし、CreateOLEObj関数よりも画像関係を使えばええと思う。
苦労したからついつい割込み投稿したけど、もうUWSCやってない部外者お邪魔ごめん。

No.5427 2018/06/25(Mon) 21:16:19

Re: ずらしてクリック / ナナミ
遠ざかっている間に、回答された方ありがとうございます。
書き込みは、編集パスで、後から修正削除できるのですね、気が付きませんでした。
ZEROSAMさん
オタク情報urlは、不要でしたね、質問=教えて君でいいのに、個人の都合解釈が、あたかも注釈っぽく書かれてて面白いですね、正解のある回答は誰も書けないことを案に教えていただいているのですか。
hさん
アドバイスありがとうございます、確かにパターンが無限に近く決まってないので、使えないと思っていましたが、工夫の余地がどこかにあるのでしょうか。
トリビアさん
トンボさんの変数、関数を使うアドバイスでできそうであることは先に教えていただきました。
失敗経験者さん
ソート処理はできますが、単純にずらせる方法があるのかが、知りたかったです。
結局、難しくて誰も具体的に答えられなかったということですね、ありがとうございました。

No.5429 2018/06/27(Wed) 22:25:53

Re: ずらしてクリック / しゅん
挑発があったので、つられることにしました。

> 結局、難しくて誰も具体的に答えられなかったということですね

その通りです。
ナナミさんの質問では、要件が不明確なため、ナナミさんの思考が読める超能力者でも連れてこないと、回答できません。
もちろん、ある程度想像はできますが、外した回答をした場合、労力の無駄になるからしたくない、という回答者の気持ちもわかってあげてください。
自分のスクリプティング能力をあげたい、という姿勢が見られる質問者の場合、外した回答でも、そこから得られることがあるだろうから、労力は無駄にならない・答えてあげたい、という気持ちにもなるというものです。

なお、スクリプトは一部を出しても意味があまりありません。
あまりに冗長でない限りは全体を出してください。
私に限った話かもしれませんが、それで質問者のレベルを計って、回答内容を決めているからです。


なお、個人的には、UWSCはWindowsでできることは何でもできる、と思っています。


あげたくないので追記 2018/06/30
> "探求"とか"挑戦"とか
の価値のある質問なら、スクリプトの提示がなくてもついつい回答しちゃいますけどね。
これ、IEならDOM操作すれば良いだけですよね。
「仁心」?ああ、すみません、私は持ち合わせてません。
いや、もうちょっと愛嬌のある文章なら、持ち合わせも少しあったかもしれません。
まあでも相変わらず要件が不明ですし、stuncloudさんも答えないといいなー、と思ったりします。

No.5433 2018/06/28(Thu) 09:16:21

Re: ずらしてクリック / stuncloud
僕も釣られそうになったけどしゅんさんが言いたいことほとんど書いてくれてた

今まで何度かナナミさんの質問に答えてきましたが、正直今回は無理だなと早々にさじを投げてました
一応経過は見守ってたけど案の定どうにもなりませんでしたしね
挙げ句、
>正解のある回答は誰も書けない
だとか
>難しくて誰も具体的に答えられなかった
だとか書いてるあたりやっぱこの人ヒントよりも答えがほしいだけなんだろうなという思いを強くしましたよ

で、提案なんですが

操作対象がIEということは何かしらのWebサイトなんですよね
そこのURLを貼ってください
そしたらそれを見て動作するスクリプトを書きます

それで終わりにしましょう

No.5434 2018/06/28(Thu) 10:30:18

Re: ずらしてクリック / トンボ
>ただ、掲示板を利用する人間は、まず基本習得と要件詳細具体化、過去事例を探して色々試して「本当に上手くいかないものだけ」を証明しなければ、投稿すらできないのでしょうか?
案の定、回答者に考えさせる事が多すぎて、質問者が納得する回答が一向に出ないですね…汗
(なお、学生扱いはごめんさない。)

本記事を投稿するか悩みましたが、一応質問されていますので回答します。(ZEROSAMさん、ごめんなさい。)
様々な過程を省略しての投稿は推奨できないだけで元より禁止できませんが、ルール破りには大人の対応が必要です。また、質問内容が曖昧すぎると迷惑行為になります。謝罪はgoodですが、「今回の質問はさすがに不備が多すぎて」総合的に全然ダメですね汗(理解力抜群の回答者も困惑する内容です。)

「今後」はなるべく穏便かつ的確な回答したいので、トラブルを起こさない質問の仕方を書きます。
ウィンドウ操作自体は簡単だから処理も簡単とは限りませんので、よく考えましょう。

指摘を一部だけ挙げます。
(1)無神経なコメントはなるべく控えましょう。友人同士のラインではないので挑発と誤解されます。
 次のコメントだと、他の方は無理という差別的発言に捉えること「も」できます。
>難しい、できない?stuncloudさんなら可能?なのかもしれませんが、以下の動作をすることは、可能でしょうか。
(2)何をずらすのでしょうか。多分マウスカーソルでしょうが、5W1Hがほぼできていません。
(3)(2)と同じでアプリケーション(またはウィンドウ名)の記入は必須です。IE以外にFirefoxなどもありますので。
(4)「可能でしょうか?」だけでは、回答者はヒント程度または具体的がいいのか判断できません。
 「可能」と簡単なヒントを伝えるだけで十分でしょうか。多数の方が指摘していますが、技術面の状況説明(コード記載など)が全く無いのも一因です。質問者の力量がわからないので、回答者が膨大なコード作成して一から十まで説明した方がいいでしょうか汗(コード作成依頼に近い状況になりますね。)
(5)技術面の状況説明が無くてもウィンドウ操作手順はしっかり書きましょう。UWSC専門用語はおろかIT専門用語もほとんど無いので、わかりにくいです。(サムネイルとクリックだけです。)

参考として一例を挙げます。細かい内容ですが、全てを厳守する必要はありません。
ただ、結局技術面の要件(どんな処理にしたいか)がまだまだ曖昧なので、具体的回答が出るかはわかりません。
==== ずらしてクリック処理だけを知りたい場合 ====
いつもお世話になっております。

http://www.XXXXXX(←Web関係はURLを記載するとgood。トンボ)
IEウィンドウ(動物園HPサイト)のあるWebページで次の文字列と画像が縦方向一直線に羅列されています。それらの表示位置(座標)は等間隔で並んでいます。(←実際は違うかもしれませんが、配置イメージをわかりやすくするとgood。トンボ)
 豚
 画像(にゃん猫.jpg)
 …(←リストがかなり長いので本記事では省きます。トンボ)

ウィンドウ操作はこのような感じになっていて、これらをスクリプトの処理にするつもりです。
@IEウィンドウの文字列と画像(画像ファイル名)を上から順に文字列検索します。
A文字列が一致した場合、その2つ上にある文字列または画像にマウスカーソルを移動させ、左クリックします。
B文字列なら文字色が変化し、画像なら別の画像が変わります。(←実際は違うかもしれませんが、何が起こるか書くとgood。トンボ)
C全てを検索するまでABを繰り返します。("neko"の場合、"ぶた猫"と"にゃん猫.jpg"をクリックします。)

(↓まだまだ不十分ですが、技術面側の状況説明を入れるとgood。コード記載ならなお良し。トンボ)
GETSTR関数、POS関数、CHKIMG関数、BTN関数を使えば可能そうですが、2つ上にマウスカーソルを移動させる方法だけは全く思いつかず、これでよいのかわかりません。
UWSCを含めプログラミング自体初心者(一か月程度)なので、何を切り口に調べればよいかもわかりません。何か参考になる情報が無いでしょうか。(どの関数を使えばいい、参考URLを記載する程度でも構いません。)
上の関数のサンプルを試作した程度で@〜Cの一連処理が全然できてませんが、ひとまずは、2つ上にマウスカーソルを移動させる方法の突破口だけでも知りたいです。

大変申し訳ありませんが、説明不足な点などがありましたら、ご指導お願いします。

No.5438 2018/06/29(Fri) 09:23:59

Re: ずらしてクリック / エサやり禁止
ナナミさん

「え?」さんと「sai」さんの名誉のために念のためコメントしますが、
私は「え?」さんでも「sai」さんでもありませんよ。
言い回しがどうとかで勝手に勘違いしないでくださいね。

それでは私がナナミさんの最初の質問を一文ずつ引用しながら回答してあげましょう。

>難しい、できない?
たぶんできますよ。
該当のURLを提示してください。

>stuncloudさんなら可能?なのかもしれませんが、以下の動作をすることは、可能でしょうか。
要件定義を正確に行えば、stuncloudさん以外でもできると思いますよ。

>nekoがあれば、その2つ上の文字とサムネイル(この場合、"ぶた猫"と"にゃん猫.jpg")をクリックすることです。
クリックすることは可能ですよ。

>もちろん、直接でなく、2つずれた文字、画像です。
もちろんです。

>お知恵のある方、よろしくお願いいたします。
質問されたことだけに回答してみました。

これ以上の回答やプログラムの製作は求めていないということですよね。

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

No.5439 2018/06/29(Fri) 17:07:53

Re: ずらしてクリック / ナナミ
続けての回答ありがとうございます。
しゅん 様
私のような低レベルの思考、姿勢も理解しようとされていることに感謝いたします。
確かにしゅん 様の言われている回答者様の気持ちをまったく理解できていませんでした。
外した回答をした=労力の無駄になる、対価に見合うものをご提示できず申し訳ありません。
でも、掲示板を参考にさせていただいている私からしたら、違う回答でも、回答者様の聰明さに胸を打たれ、とても参考になります。
"労力"とか"無駄"とかでなく、有識者様は、"探求"とか"挑戦"とか"仁心"で、ヒントを教えていただいければ幸いです。
けっして挑発するつもりではありませんでしたが、アプローチを変えてみることは、UWSCに必要な思考でしょ。
stuncloud 様
無理無茶な質問に的確で聡明な回答、恐れ入ります。
他の掲示板で、URLを載せることは、ステマを助長するので控えるよう教えられてきましたが、この板は、大丈夫なのでしょうか。
他の方もURLをご希望ということなので、URLを晒してみます。
ttps://www.youtube.com/watch?v=xiEX24D1bzU
コメントに"狩野アナ"があれば、その先にある文字、サムネイルです。
具体的なヒントよりスクリプトがいいのは確かですが、高負荷であれば、ずらすヒントをいただければ幸いです。
トンボ様
この度は、ご迷惑をおかけしました。
また、親切に色々教えていただきありがとうございました。
(1)以前、的確に教えていただいたので、個人名を挙げて思わず頼ってしまいました。
 差別的発言に聞こえる方がいらしたとは、想像すらしていませんでした。
(2)ずらすのは、目標という意味でしたが、わかりずらかったみたいですね。
(3)IEです。
(4)(5)言葉が足りなかったですね、レベルが低いのは、お分かりですよね。
質問の仕方は、なるほどと感心します、とてもそのように上手に書けそうにありません。
次回の質問の時は、参考にさせていただきます。←突っ込まれそうですが。

No.5441 2018/06/29(Fri) 19:36:42

Re: ずらしてクリック / ナナミ
エサやり禁止様
質問を引用され、念のためとご意見を投稿されているようですが、回答でなくハラスメントされているだけということにお気づきでしょうか。
エサやり禁止さんの回答を過去ログから遡って確認しましたが、他を見つけられませんでした。
え?さんのの回答も過去ログから遡って確認しましたが、見つけられませんでした。
アカウントを多用しているのかの疑惑回答は、uwsc掲示板とは、全く関係ないものですが、私は責められっぱなしで、決して終わりにはさせません。
saiさんが、"最初に書き込みせず参考にしてきましたが、これには耐えません。今度からは気をつけてください。"と質問を違う方向に持っていきましたね、このことに対しては、"ご意見"は、ございませんか?弱い立場の質問者をいっしょに責めるだけで、終わりでしょうか。
ちなみに、saiさんの丸投げ書き込みヘルプは、過去ログから、多数検索できました。

No.5460 2018/07/01(Sun) 22:16:30

Re: ずらしてクリック / え?
ナナミさん

もう止めましょうよ?寝る時間も無い人が人を疑ったりどうでもいい過去ログ検索してどうなるんですか?そんな時間があるなら努力して欲しいコード考えたらいいじゃないですか。
私はこのスレに書かれていたレスを参考にして先ずは動けばいい程度のコードは完成させましたよ?

No.5461 2018/07/01(Sun) 23:09:40

Re: ずらしてクリック / stuncloud
> 他の掲示板で、URLを載せることは、ステマを助長するので控えるよう教えられてきましたが、この板は、大丈夫なのでしょうか。
ステマ…?有名な人がやってこそ意味があるものでこんな場末の掲示板でいらん配慮しますね…?
今回の場合はナナミさんとのやり取りだけではラチがあかんのでいっそ現物見たほうが説明しやすいと判断したからです
逆に言えばナナミさんも質問が困難だと感じたら見せられるものであれば現物見せたほうが早いですよ
しかしまさかのYouTubeか…にゃん猫.jpgが出てくるものだと思ってた…

さて
> コメントに"狩野アナ"があれば、
この点に関してはめっちゃ簡単でした
…なんですけど
> その先にある文字、サムネイルです。
ごめんなさい「その先」がわかんない…
まさかURL出してきたのに具体的に何をするか教えてもらえないのは考慮しとらんかった
(こういうのがナナミさんの問題となっている点、伝える力の欠如だと思います)

しかしどうやら本人やる気があるようですしあとは自力でなんとかしてもらえるようにサンプル書いておきます
IEで対象URLを開いている状態から実行してください

// すでに該当URLを開いているIEのオブジェクトを取得
ie = getactiveoleobj("InternetExplorer.Application")

// コメントを表示している要素をコレクションとして得る
comments = ie.document.querySelectorAll(".comment-renderer-content")
// コメントの個数分ループする
for i = 0 to comments.length - 1
 // コメント分を取得
 comment = comments.item(i).querySelector(".comment-renderer-text-content").innerText
 if pos("狩野アナ", comment) > 0 then
  // 「狩野アナ」が含まれていたら、そのコメントをつけたユーザー名を取得してprint
  author = comments.item(i).querySelector(".comment-author-text").innerText
  print author
 endif
next

DOMというものを使ってブラウザ上で描画されている要素を探したり読み取ったりするものです
これでコメント部分の要素を探して、そのうちコメントに「狩野アナ」が含まれているものがあればコメントしたユーサー名をprintしています
コメントの記述内容を元にそれに関連する「コメントではない部分」に対してなにかする、というサンプルになります
ずらす、というのはそういうことですよね…?これを応用すればクリックすることも可能です

もしここからどうすればいいかわからないということであればまた質問スレ建ててください
No.5394の続きみたいな感じで、これは長くなりすぎてますし
ただ、DOMに関して一から教えるとなると対面やチャットならともかく掲示板だと不可能だと思ってるので、そこはある程度勉強しておいて貰う必要があります
幸い過去ログにもたくさん情報ある(多分一番多い)ので、教材には事欠かないはず
YouTubeもjsでゴリゴリ動的にDOM書き換わってる感があるのでぶっちゃけるとちょっとDOMかじった程度じゃわからないことが沢山あると思います
勉強した上で二進も三進も行かなくなったらまた来てください、そのときはできればコードも添えて

No.5465 2018/07/02(Mon) 11:07:11

Re: ずらしてクリック / トンボ
多分プロフィール画像(人物アイコンか写真)とアカウントの名前(名前かハンドルネーム)の事でしょうね。その先のサムネイルというのは、返信グループ内に内包されたプロフィール画像の一覧を指しているような気がします。間違っているかもしれませんが、とりあえず2つの正式名称を伝えたく。(返信不要です。)
No.5469 2018/07/02(Mon) 22:57:33

Re: ずらしてクリック / ナナミ
stuncloud様★★★★★、先に、お礼申し上げます、おかげで、やりたいことが、全部出来ました。
素人考えでは、ユーザー名要素取得しないで、innerTextを編集して、ずらすことで、できるような気がしていました。
しゅん様、え?様追記は不要です、何故回答するつもりがないのに無駄レス投稿を続けられるのでしょうか、umiumi様の代わりのおつもりなのでしょうか、ご自分の存在を示したいのであれば、コードや具体的ヒントでのみ表現してくださいませ、それ以外無用です。

No.5478 2018/07/03(Tue) 22:03:07
TEXTファイルの中の該当文字列の行を取得したい / みつ
お世話になります。

TEXTファイルAの文字列を一行ずつ、TEXTファイルBの中から
探して、見つかった場合はTEXTファイルBの中の該当文字列
の行を取得(またはファイル名をフルパスで取得)したいです。

下記の場合には、555のみ一致しているので
555_xxx.docが3行目であること、または555_xxx.docの
名前を取りたいです。

TEXTファイルAの中
111.doc
555.doc
888.doc

TEXTファイルBの中
222_xxx.doc
333_xxx.doc
555_xxx.doc
666_xxx.doc

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

No.5470 2018/07/03(Tue) 12:09:44

Re: TEXTファイルの中の該当文字列の行を取得したい / stuncloud
要件が一部不明瞭なので確認させてください
>下記の場合には、555のみ一致しているので
これって今回は 555.doc と 555_xxx.doc で555が一致しているという話ですけど
単純に 555.doc の 555 を切り出して探すというだけでいいんでしょうか
それともファイルAには例えば 555_yyy.doc が出現する可能性があるのでしょうか?
そして 555_yyy.doc の場合でもファイルBの 555_xxx.doc を取り出したい、ということになるんでしょうか?

前者だとわりと単純そうなんですが後者だと一気に難易度上がりますね

No.5471 2018/07/03(Tue) 12:26:58

Re: TEXTファイルの中の該当文字列の行を取得したい / みつ
ご返信ありがとうございます。

>回は 555.doc と 555_xxx.doc で555が一致しているという話ですけど
単純に 555.doc の 555 を切り出して探すというだけでいいんでしょうか

はい。ファイルAの555.docの555の文字列で
ファイルBの555_xxx.docを探して、行または555_xxx.docを取得したいです。

>ファイルAには例えば 555_yyy.doc が出現する可能性があるのでしょうか?

ありません。

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

No.5472 2018/07/03(Tue) 13:10:05

Re: TEXTファイルの中の該当文字列の行を取得したい / stuncloud
なるほど、では今回の例で言えば 111 555 888 のいずれかを含むファイル名を探したいということになりますね
正規表現で言うと「111|555|888」というパターンにマッチすればいいということになります
のでファイルAの情報を正規表現のパターンに加工します
拡張子より前の部分を切り出して | で連結するだけなのでやり方はなんでもいいんですが、配列に入れて | でjoin()するというサンプルを書いてみました

fida = fopen("ファイルA", F_READ)
dim tmp[fget(fida, F_LINECOUNT) - 1]
for i = 1 to length(tmp)
 tmp[i - 1] = split(fget(fida, i), ".")[0]
next
fclose(fida)
pattern = join(tmp, "|")
print pattern

これで「111|555|888」ができました
あとはファイルBを一行ごとに読み取って正規表現でマッチした行の内容と行番号を出力します
マッチしたかの判断にはVBScript.RegExpのTest()メソッドを使います

re = createoleobj("VBScript.RegExp")
re.pattern = pattern

fidb = fopen("ファイルB", F_READ)
for i = 1 to fget(fidb, F_LINECOUNT)
 row = fget(fidb, i)
 if re.Test(row) then
  print i + "行目"
  print row
 endif
next
fclose(fidb)

これで今回の例では
3行目
555_xxx.doc
が出力されます

No.5473 2018/07/03(Tue) 14:47:11

Re: TEXTファイルの中の該当文字列の行を取得したい / 森
この程度なら、正規表現や配列といった上級者向けのコマンドを使わなくても大丈夫です。
a.txtとb.txtを総当たりでチェックして、結果をc.txtに出力するサンプルです。

a = fopen("a.txt")
b = fopen("b.txt")
c = fopen("c.txt" , F_WRITE)

for i = 1 to fget(a , F_LINECOUNT)
 s = betweenstr(fget(a , i) ,, ".doc") // 探す文字列(555)
 for j = 1 to fget(b , F_LINECOUNT)
  t = fget(b , j) // 探される文字列(555_xxx.doc)
  // 探す文字列が探される文字列にあれば記録
  if pos(s, t) then fput(c , j + "," + t)
 next
next

fclose(c)
fclose(b)
fclose(a)

No.5474 2018/07/03(Tue) 17:52:54

Re: TEXTファイルの中の該当文字列の行を取得したい / みつ
stuncloud様、森様

詳細なご回答ありがとうございます。
2つのスクリプト共、バッチリ動きました。

自分ではどうしても考え付かなかったので本当に助かりました。
ありがとうございました。

No.5477 2018/07/03(Tue) 22:00:22
品番を品名に変換して入力したい / おで
UWSCを使わせていただいている初心者です。
すみませんが、教えてください。

たとえば、「A」という品番をUWSCのINPUTボックスに入力すると、
「りんご」という品名に変換して、あるソフトに入力させたいのですが、
この品番が1000種類あるので、Excelで品番と品名の一覧表を作成し、
そこから品名データを持ってきたいと思っております。

このようなことでできるのであれば、どのようなスクリプトを組めばよろしいでしょうか?
また、ExcelがインストールされていないPCにて動作させようと思った場合、
品番と品名の一覧表が、Excelではなく、テキストデータでも同様のことは可能なのでしょうか?

No.5444 2018/06/30(Sat) 10:57:50

Re: 品番を品名に変換して入力したい / トンボ
>このようなことでできるのであれば、どのようなスクリプトを組めばよろしいでしょうか?
ひとまず、こんな感じで試すとよいでしょう。SENDSTR関数が効くか確認するため、Bから取り組んでください。
@INPUT関数で入力データを取り出す。
AFOPEN/FGET/FCLOSE関数でcsvファイルのデータを読み取り、文字列検索&変換(または置換)する。
 検索&変換方法は色々ありますが、私ならFOR文やPOS関数、REPLACE関数を使いますね。
BSENDSTR関数でソフトに文字列を入力する。

>品番と品名の一覧表が、Excelではなく、テキストデータでも同様のことは可能なのでしょうか?
可能です。txtでもよいですが、csvならnotepadとExcelどちらでも編集できますね。ヘルプのFOPEN関数にcsv読み書きのサンプルがあります。
あとExcelでの品番や品名の表示が変になったら「csv 表示 トラブル」などでググって原因を調べてください。

No.5445 2018/06/30(Sat) 14:52:36

Re: 品番を品名に変換して入力したい / おで
トンボさん
早々の回答ありがとうございます
試してみます。
取り急ぎお礼まで

No.5446 2018/06/30(Sat) 16:04:08

Re: 品番を品名に変換して入力したい / Liners
サンプルです。データ埋め込み型・連想配列検索変換
入力された品番を変換し、メモ帳へ送ります。

実際に試せるので、理解しやすいでしょう。
ただ書き方は、uwsc特有のものが多いですが、慣れです!

たまたま、以前に書いたものがあったので、今回の質問に合わせました。
csvデータの分離も簡単です。


hashtbl h_data

for line in split(data, "<#CR>" )
  name = token(",", line)
  h_data[name] = line
next

id = exec("notepad")

while true
  n = input("品番入力")
  if h_data[n, HASH_EXISTS]
    sendstr(id, h_data[n] + "<#CR>")
  else
    if msgbox("未登録品番です。終了しますか?", BTN_YES or BTN_NO) = BTN_YES then exitexit
  endif
wend


textblock data
A,りんご
G,ぶどう
O,みかん
P,もも
endtextblock

No.5453 2018/07/01(Sun) 02:23:14

Re: 品番を品名に変換して入力したい / トンボ
Aの別パターンで使いやすいですね。先にこちらで試すことを推奨します。より高度な知識が身に付きます。

#他のログでもそうですが、最近ベテランが積極的で嬉しいですね(^^) フォローありがとうございます。

No.5455 2018/07/01(Sun) 05:52:11

Re: 品番を品名に変換して入力したい / おで
Linersさん
サンプル提供いただきまして、ありがとうございます。
試してみます!

No.5456 2018/07/01(Sun) 10:06:20

Re: 品番を品名に変換して入力したい / おで
Linersさん
サンプル試行いたしました。
こちらの希望の動きです。ありがとうございます。

お手数ですが、2点教えてください。
@CSVデータへの分離
品番、品名の対比表をCSV形式で、他のフォルダに保存した場合は、どのように記述すればよろしいでしょうか?
A対比表の項目追加
条件の後出しで恐れ入ります。
項目が増えた場合(たとえば、「産地」が増えた時)
インプットボックスで、品番の「A」と入力すると、
品名の「リンゴ」と産地の「青森」をそれぞれ分けて、出力したい場合はどのように、記述すればよろしいでしょうか?

No.5457 2018/07/01(Sun) 10:46:01

Re: 品番を品名に変換して入力したい / Liners
カスタマイズは、各個人で…と言いたいところだが、今回のみ具体例を挙げてみましょう。

>@ textblock 以下を削除しDim文を追加
  フォルダが異なる場合はフルパスでファイル名を指定。(c:\temp\品番マスタ.csvなど)

>A UWSCの連想配列は一対一対応で多項目は苦手。
  なので、一段目をインデックスとして、さらに分解する。

とまあ説明しても最初は、チンプンカンプンでしょう。
他の質問でもありますが、自分で書いてみて初めて明確になることも多いのです。

ますは、私自身から。サラッと書けているようで最初は中々こうは書けないですね。


dim data = fget(fopen("c:\temp\品番マスタ.csv"), F_ALLTEXT)
hashtbl h_data

for line in split(data, "<#CR>" )
  name = token(",", line)
  h_data[name] = line
next

id1 = exec("notepad",0,0,0)
id2 = exec("notepad",0,100,0)

while true
  n = input("品番入力")
  if h_data[n, HASH_EXISTS]
    項目= split(h_data[n], ",")
    sendstr(id1, 項目[0] + "<#CR>")
    sendstr(id2, 項目[1] + "<#CR>")
  else
    if msgbox("未登録品番です。終了しますか?", BTN_YES or BTN_NO) = BTN_YES then exitexit
  endif
wend


// c:\temp\品番マスタ.csv

A,りんご,青森
G,ぶどう,長野
O,みかん,和歌山
P,もも,山梨

No.5458 2018/07/01(Sun) 17:27:20

Re: 品番を品名に変換して入力したい / おで
Linersさん
丸投げは申し訳ないと思いながらも、カスタマイズが分かりませんでしたので、お聞きした次第です。
無理を聞いていただきまして、ありがとうございます。

教えていただいたものを参考に、自分なりに理解し、実際の仕組みとして活用したいと思います。
取り急ぎ、お礼まで。

No.5459 2018/07/01(Sun) 17:58:47
マウスのホイール操作を検出したいのですが… / シクロロ
現在、マウスでのスクロールを利用した処理をしたいと思っています。
【GETKEYSTATE】では、クリックボタンは検出できるのですが、ホイールは見当たりません。

別途、操作としての機能を利用して【BTN(WHEEL,1,1000,100,500)】を応用できないかとも考えたのですが、駄目でした。

スクロールの進めと戻りを検出する方法を思いつく方がいましたら、助けて頂けると助かります。

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

No.5442 2018/06/29(Fri) 21:05:59

Re: マウスのホイール操作を検出したいのですが… / しゅん
これ、簡単ではありません。
ヒントだけですみませんが、
・複数のアプリケーションにまたがって処理したい場合、グローバルフックが必要です
 →DLL使ったグローバルフックを行うのが一番楽ですが、、、結構難儀な道です。
・対象がモダンなブラウザの場合、ブラウザで処理するのが楽です
 →私なら、UWSC使わないでUserScriptで処理するかな
・マウスホイールの処理をするアプリケーションを作成したい場合、今なら.net使うのが楽です
 →UWSCからなら、PowerShell関数を使って、PowerShellで書くかな
・逆に、SetHotKeyでキーの組み合わせを受け付けたら、マウスホイールを動かしてはどうでしょう
 →駄目でした、の記述がこの観点だったらすみません
  ただ、駄目な理由も欲しいところです
  マウスポインターが対象の座標にないと機能しないケースもあります
  クリックしてからホイールすると上手く行くケースもあります(アプリケーション次第)

No.5443 2018/06/30(Sat) 10:44:26
ダウンロードされたファイルの名前を取得したい / エデン
いつも有効活用させて頂いております。よろしくお願いします。
UWSCにてIEでファイルを自動ダウンロードする処理を作成したのですが、
ファイル名が重複する場合にIEは自動的に「●●(2).zip」などのカッコとその中の数字をファイル名に追記するようです。
この追記済みのファイル名を取得したいのですがググっても方法がわかりませんでした。
どうかお知恵をお貸し頂けましたら幸いです。

ダウンロード時のアンダーバー出現時には、
GETID("Internet Explorer","IEFrame")
でつかんでからダウンロードボタンをクリックさせています。

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

No.5436 2018/06/28(Thu) 16:20:08

Re: ダウンロードされたファイルの名前を取得したい / siguma
ヒントといたしましては

@「名前を付けて保存」ダイアログを出させる
Aダイアログからファイル名を抽出する(GETSTR)
Bあとは抽出したファイル名を自分の好きなように利用する

というやり方があります。

http://www.uwsc.info/sample.html#N58 あたりを参考に頑張ってみて下さい

No.5437 2018/06/29(Fri) 03:15:55

Re: ダウンロードされたファイルの名前を取得したい / エデン
無事に取得できました。どうもありがとうございました。
No.5440 2018/06/29(Fri) 18:50:11
EXCELでの活用 / orange
UWSCをエクセルで使用中ですが、置き換えが上手くいきません。

やりたいことは下記の通りです。

たとえばセルに

"123abc456"

"あいう"

とそれぞれ入っていた場合に、
”abc”という文字列をブック上からを検索し、そのセルを"OK"という文字列に書き換えたいと思っております。

UWSCコバヤシ式様を参考に、

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.Offset(10,10).Select
A = EXCEL.Range("A1:J10").Replace("23ab","OK")

という様なプログラムを作成しましたが、

"123OK456"

"あいう"

というセルになってしまいます。
"123OK456"ではなく"OK"とセルを書き換えるためにはどの様な手順が必要でしょうか?

ご教授いただけますと助かります。
宜しくお願い致します。

No.5428 2018/06/27(Wed) 22:22:59

Re: EXCELでの活用 / orange
また、下記のようなプログラムも作成しました。
書き換えはうまくいくのですが、検索対象がなくなってしまった際(abcが入っているセルがなくなる)にread of addressエラーでUWSCが止まってしまいます。

EXCEL.ActiveCell.Offset(10,10).Select

FOR B = 1 TO 10

A = EXCEL.Range("A1:J10").Find("abc").Select
IF A = True
EXCEL.ActiveCell.value = "OK"

ENDIF

NEXT

No.5430 2018/06/27(Wed) 22:27:54

Re: EXCELでの活用 / siguma

"123abc456"と入力して

A = EXCEL.Range("A1:J10").Replace("23ab","OK")

とすると、"123OK456"でなく"1OKc456"となると思うのですが、本当にコードの記載はそれで合ってますか?

仮に("abc","OK")だったとして、orangeさんの意図する動作をさせるにはワイルドカードを使います。

Replace("*abc*","OK")

No.5431 2018/06/28(Thu) 02:49:40

Re: EXCELでの活用 / siguma
また2つ目は
オブジェクトの存在しないもの(=Nothing)をSelectメソッドで選択しようとしたことで起きたエラーですので、この場合はSelectの前に

if EXCEL.Range("A1:J10").Find("abc") = NOTHING then break

をかませるとうまくいきます。

余談ですが、UWSCでExcelを操作させるプログラムを書く際コバヤシ式さんのサイトだけでは少し情報不足ですので「エクセル VBA」などでググってVBAを専門に解説しているサイト(http://officetanaka.net/excel/vba/tips/ など)を参考にされるのが良いですよ

No.5432 2018/06/28(Thu) 03:11:00

Re: EXCELでの活用 / orange
siguma 様

迅速にご教授いただきましてありがとうございます。
1番目に関しましては、例文として分かりやすく書き直したときにミスをしてしまったようです。
確認不足でした。混乱させてしまい申し訳ありません。

2番目に関してはif文でエラーを回避しようとは思いついたのですが、
"もしabcが入っていたら下記を実行"という様なif文にしていたのでうまく実行できていませんでした。
ともあれ、ご回答大変助かりました。ご教授いただいた通りに変更し上手く実行できることを確認しました。

また、調べていくうちにUWSCがVBAベースということも分かってきましたので、教えていただいたサイトを参考にさせていただきます。ご回答ありがとうございました。

No.5435 2018/06/28(Thu) 11:53:51


 過去ログ(〜2017/08/24)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
200/200件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 20 >> | 過去ログ ]