[ 掲示板に戻る ]

過去ログ閲覧モード

IEで表示されたページ内の画像もしくは文字での条件分岐について / たか君
IEで表示させたWEBサイト内にある、gif形式の画像もしくは文字を判定させて条件分岐させたいと思います。

1.gif形式の画像「btn_01.gif」があればaの処理をして、なければbの処理をする
2.表示されている文字列「選択してください」があればaの処理をして、なければbの処理をする

上記の、1または2のどちらでもかまいません。
このようなIEで表示された、WEBサイト上の処理をさせるにはどのようにすればよいのでしょうか?

宜しくお願い致します。

No.1677 2015/09/10(Thu) 02:52:39

Re: IEで表示されたページ内の画像もしくは文字での条件分岐について / stuncloud
> 1.gif形式の画像「btn_01.gif」があればaの処理をして、なければbの処理をする
以前と同じ質問ですよね?やることは変わりませんよ
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=1609
> 2.表示されている文字列「選択してください」があればaの処理をして、なければbの処理をする
pos関数を使えば良いでしょう

No.1679 2015/09/10(Thu) 10:25:36

Re: IEで表示されたページ内の画像もしくは文字での条件分岐について / たか君
stuncloudさん
お返事有り難うございます。

そうなんです、以前はURL内容が分かりましたが、今回はなせかわかりません。
ホームページ構造が分からないのです。
そこで、教えて頂いた png = ie.document.querySelector("btn_01.gif")とやってみたのですが、btn_01.gifがあってもなくても「画像がない」と出てきてしまうのです。
(pngは下の行に渡していると思って、そのままpngを使ってみました)
ie.document.querySelectorの部分にカギがあるような気がするのですが検索してもヘルプをみても解決できませんでした。

pos関数はこれから調べてやってみたいと思います。
有り難うございます。

No.1680 2015/09/10(Thu) 11:37:30

Re: IEで表示されたページ内の画像もしくは文字での条件分岐について / たか君
>stuncloudさん

有り難うございます、pos関数を頼りにヘルプを見たり検索をして、
msg=IEGETSRC(IE, "BODY")
IFB (POS("選択してください", msg)>0) THEN
MSGBOX("あります")
ELSE
MSGBOX("ありません")
ENDIF
としましたら正常に認識しました。
ところが、gif画像の方は何回やっても「ありません」です不思議です。

No.1681 2015/09/10(Thu) 12:26:58

Re: IEで表示されたページ内の画像もしくは文字での条件分岐について / stuncloud
> ie.document.querySelectorの部分にカギがあるような気がするのですが
その通りです、「CSSセレクタ」で検索してみてください
> querySelector("btn_01.gif")
ではダメだった理由も、前回
> <img width="200" height="50" class="roll" alt="決定" src="/images/btn/jp/btn_decision_01d.png">
というタグに対して
> querySelector("img[src=<#DBL>/images/btn/jp/btn_decision_01d.png<#DBL>]")
としていた意味もわかると思います

No.1682 2015/09/10(Thu) 15:59:19
ファイル移動について / 山田
uwsc初心者です。
for文をつかって変数の値を変えて複数のファイルを指定フォルダに移動しようとしているのですが、コマンドプロンプトが起動してもファイルが認識されていないのか移動されません。これを解決する方法はあるのでしょうか。
以下はそのプログラムから抜粋したものです      

  for name=5 to 20 step 1
    SAVEIMG(+name+, id,400,150,500,500)
    sleep(1)
FROM_URL = "C:\Users\home\Desktop\+name+.bmp"
TO_URL = "C:\Users\home\Desktop\sun"
CMDSTR = "move " + FROM_URL + " " + TO_URL
DOSCMD(CMDSTR,FALSE,TRUE)
  next
FROM_URL = "C:\Users\home\Desktop\+name+.bmp"の+name+の部分を5などの実数(保存しているファイル名)に変えた場合はきちんと移動するのでそもそも変数が使えない可能性もあるかもと思いましたが、分かる方おられたらお願いします。

No.1675 2015/09/09(Wed) 15:58:32

Re: ファイル移動について / しろまさ
"" で囲われたものは全て文字列評価です。変数は""の外に出しましょう。
"C:\Users\home\Desktop\" + name + ".bmp"

No.1678 2015/09/10(Thu) 09:02:05
webの回復画面をクリック / あゆ
ツイキャスを録画しているとき、ときどき「WEBの回復」画面がでて、止まってしまいます。
こういうとき、自動でカーソルでクリックするにはどうしたらいいのでしょうか。
よろしくお願いします。

No.1674 2015/09/09(Wed) 12:29:52
環境変数の扱いについて / まろっぺ
システム環境変数はUWSC内で扱えますが、ユーザ環境変数が扱えないようです。

//computername=システム環境変数
//hoge=ユーザ環境変数
computername = doscmd("echo %computername%")
hoge = doscmd("echo %hoge%")

MsgBox(doscmd("echo %computername%"))
MsgBox(computername)

MsgBox(doscmd("echo %hoge%"))
MsgBox(hoge)


上記の例では、%computername%も、computernameも、変数値が表示され、UWSCの
変数にも代入できますが、hogeでは、いづれも%hoge%となってしまいます。
これは、UWSCの仕様でしょうか。

No.1662 2015/09/04(Fri) 19:11:12

Re: 環境変数の扱いについて / しゅん
問題なく扱えます。
私が実行したところ、同じスクリプトでどちらも変数値が表示されました。

UWSCの問題ではなく、OSの仕様です。
環境変数について調べることをおすすめしますが、簡単に書きますと、
プロセス環境変数以外であれば、設定した後に起動したプロセスであるか、が重要です。
設定してからUWSCを起動してください。

なお、プロセス環境変数の場合、その子プロセスでしか有効ではありません。
コマンドプロンプトを起動して環境変数を定義したなら、そのコマンドプロンプトからUWSCを起動すれば、参照できます。

No.1664 2015/09/05(Sat) 14:52:37

Re: 環境変数の扱いについて / まろっぺ
お答え有難うございます。

なるほど、よく分かりました。
UWSC内で起動したバッチプログラムで生成した変数をUWSCに渡すのがうまく行って
いませんでした。
環境変数の仕様を確認します。

有難うございました。

No.1667 2015/09/06(Sun) 16:35:02

Re: 環境変数の扱いについて / しゅん
なるほど、そういう用途ですか。
バッチプログラムで、setxコマンド等でユーザー環境変数を設定しているなら、UWSCではレジストリを読むのが簡単かと思います。

ws = CreateOleObj("WScript.Shell")
MSGBOX(ws.RegRead("HKCU\Environment\hoge"))

No.1668 2015/09/06(Sun) 21:56:45

Re: 環境変数の扱いについて / まろっぺ
レジストリ取り出しのサンプル、有難うございます。
setxでレジストリ保存と取り出しの部分、うまく動きました。

バッチの方がまだ問題あってうまく動いてませんが、UWSCで組む部分はよさそうです。
なかなか使える処理になりそうです。

有難うございました。

No.1670 2015/09/07(Mon) 18:12:44
複数画像の有無と画像の座標取得 / わんこ
どなたか教えて下さい
9個の画像ファイル(.bmp)があります。IEの画面上で9個の画像の内2個が毎回表示されます。
(同じ画像が2個の場合もあり、毎回異なります。)

教えて頂きたいのは9個の画像ファイルを調べて画面上表示されている2個の画像ファイル名
とその座標を取得する方法
1個ならIF関数とCHKIMG関数を使えば出来るんですが、複数やる場合がわからないです。

No.1650 2015/09/03(Thu) 11:59:14

Re: 複数画像の有無と画像の座標取得 / stuncloud
なんかゲームっぽいけど
やるとしたらこんな感じですか、ね

BMP1に最初に見つかった画像の情報、BMP2に次に見つかった画像の情報を入れます
うっかり3つ目が見つかってしまう状況だとしても2つ見つかった時点で探すのを止めます

-------------------------------
folder = "C:\探す画像" // 9つでもいくつでもいいので画像が入ってるフォルダを指定

for bmp in getdir(folder, "*.bmp")
 select chkimg(folder + "\" + bmp, 0, , , , , -1)
  case 1
   if ! SetXY(bmp, ALL_IMG_X[0], ALL_IMG_Y[0]) then break
  case 2 // 同じ画像が2個見つかった場合
   for i = 0 to 1
    if ! SetXY(bmp, ALL_IMG_X[i], ALL_IMG_Y[i]) then break 2
   next
 selend
next

msg = "1つめ: " + BMP1.Name + " " + BMP1.X + ", " + BMP1.Y + "<#CR>" + "2つめ: " + BMP2.Name + " " + BMP2.X + ", " + BMP2.Y
msgbox(msg)

module BMP1
 public Name
 public X
 public Y
endmodule

module BMP2
 public Name
 public X
 public Y
endmodule

function SetXY(name, x, y)
 result = TRUE
 if BMP1.Name = EMPTY then
  BMP1.Name = name
  BMP1.X = x
  BMP1.Y = y
 elseif BMP2.Name = EMPTY
  BMP2.Name = name
  BMP2.X = x
  BMP2.Y = y
  result = FALSE // 2個目が見つかったらfalseを返す
 endif
fend

No.1654 2015/09/03(Thu) 22:48:24

Re: 複数画像の有無と画像の座標取得 / stuncloud
for-inループの中でselect使う必要なかったですね

for bmp in getdir(folder, "*.bmp")
 for i = 0 to chkimg(folder + "\" + bmp, 0, , , , , -1) - 1
  if ! SetXY(bmp, ALL_IMG_X[i], ALL_IMG_Y[i]) then break 2
 next
next

何してるコードなのかわかりにくくなりましたけど

No.1655 2015/09/03(Thu) 23:06:26

Re: 複数画像の有無と画像の座標取得 / わんこ
stuncloudさんレスありがとうございます。
思ってた通りの結果が得られました。ありがとうございます。
ひとつ教えて下さい。

メッセージボックスのファイル名に拡張子.bmpまで表示されるんですが
拡張子を省いた表示は可能でしょうか?
ファイル名 A.bmp → A

No.1659 2015/09/04(Fri) 13:45:21

Re: 複数画像の有無と画像の座標取得 / わんこ
EXCEL VBAのGETBASENAMEみたいな関数が使えたらいいんだけど...
No.1660 2015/09/04(Fri) 17:32:17

Re: 複数画像の有無と画像の座標取得 / わんこ
REPLACE関数とTRIM使って
fName=TRIM(REPLACE(BMP1.Name,".bmp"," "))

ファイル名のみ取得しました。自己解決ということですみません。お騒がせしました。

No.1661 2015/09/04(Fri) 17:53:36
エクセル 列番号から列名を求める / 藍
いつもお世話になります。
エクセルの列番号から列名を求めるのを作成してみました。
掲示板を参考にしています。お役に立てればと・・
-----------------------------
print "2 → " + 列名GET(2) // B
print "26 → " + 列名GET(26) // Z
print "29 → " + 列名GET(29) // AC
print "256 → " + 列名GET(256) // IV
print "605 → " + 列名GET(605) // WG
print "1131 → " + 列名GET(1131) // AQM
print "3696 → " + 列名GET(3696) // ELD
print "15234 → "+ 列名GET(15234) // VMX

//列番号から列名を求める
// 各桁をアルファベットに変換→文字を繋げて反転し列名を算出
//
Function 列名GET( 列番号)

Const Aの文字 = 65 // Aの文字コード
Const アルファベット数 = 26      // アルファベット数
//
Dim 各桁位置 // 
Dim 変換列名[3] // アルファベット変換格納
SETCLEAR( 変換列名 )    // 列名セットエリア NULL クリア
//
if 列番号 < 1 then exit   // 列番号が指定されていなければexit
列番号wk=列番号  // 列番号workにセット
i=3
//
REPEAT
各桁位置 = (列番号wk - 1) Mod アルファベット数
変換列名[i] = Chr(Aの文字 + 各桁位置) // アルファベットに変換し3桁目からセット
列番号wk = int((列番号wk - 1) / アルファベット数)
i=i-1
Until 列番号wk = 0
//
result = 変換列名[1]+ 変換列名[2]+ 変換列名[3]
FEnd

No.1652 2015/09/03(Thu) 17:25:41

Re: エクセル 列番号から列名を求める / stuncloud
 //(略)
 result = ""
 REPEAT
  各桁位置 = (列番号wk - 1) Mod アルファベット数
  result = Chr(Aの文字 + 各桁位置) + result
  列番号wk = int((列番号wk - 1) / アルファベット数)
 Until 列番号wk = 0
FEnd

こうすると配列いらなくなりますね、列名が4文字以上でもいけますよ!

No.1653 2015/09/03(Thu) 18:50:54

Re: エクセル 列番号から列名を求める / 藍
ありがとうござます。
No.1656 2015/09/04(Fri) 08:27:39

Re: エクセル 列番号から列名を求める / しろまさ
//無理やり圧縮。(文字列変更可)

Dim s = "abcdefghijklmnopqrstuvwxyz"
MsgBox(ColName(s, 26))
MsgBox(ColName(s, 27))
MsgBox(ColName(s, 15234))

Function ColName(s,n);Dim l=Length(s),m,t;Repeat;m=n mod l;t=l*(m=0)+m;Result=copy(s,t,1)+Result;n=(n-t)/l;Until n=0;FEnd

No.1658 2015/09/04(Fri) 10:30:38
開いているIEのURLを取得 / UWSC初心者
ネットで検索していたらここにたどり着きました。
どなたかご教授頂けると助かります。
IEでとあるサイトを開いているんですが、ランダムでバナー広告が自動で入ってしまい元々
表示されてたページがバナー広告のページに切り替わってしまいます。
そこでUWSCでもともと開いているIEのURLを取得してURLが変わったらIEの戻るボタンを
押して元のページに戻すという作業をUWSCでやりたいんですが、開いているIEのURLの取得方法が
わかりません。
色々探してGETACTIVEOLEOBJでできるようなのですが・・・使用してコードを
再生するとCOMエラーになってしまいます。

No.1642 2015/09/01(Tue) 17:46:37

Re: 開いているIEのURLを取得 / yanyan
まずは入り込んだバナー広告を表示するマルウェアを駆逐すべきかと。
No.1643 2015/09/01(Tue) 20:06:27

Re: 開いているIEのURLを取得 / しろまさ
https://www.malwarebytes.org/downloads/

個人的にお勧めのアンチマルウェアソフトです。フリー版も在り。

No.1644 2015/09/02(Wed) 09:25:29

Re: 開いているIEのURLを取得 / UWSC初心者
返事ありがとうございます。パソコンの方にはマルウェアは検出されませんでした。
No.1645 2015/09/02(Wed) 13:50:20

Re: 開いているIEのURLを取得 / しろまさ
保護モード解除は?
http://www.uwsc.info/faq.html#n30

No.1646 2015/09/02(Wed) 14:40:48

Re: 開いているIEのURLを取得 / UWSC初心者
しろまささん返事ありがとうございます。保護モード解除でCOMエラー回避できました。
ありがとうございました。

No.1651 2015/09/03(Thu) 14:56:01
IEのバックグランド実行について / ぽんぽん
いつもお世話になっております。
お尋ねします。

現在、証明書認証が伴うWebページへのバックグラウンドでのアクセスを検討しております。
IE、証明書の確認のダイアログ等はCtrlWin(id,HIDE)にて非表示化することが出来たのですが、ダイアログ出現のタイミングで一瞬だけでも表示されてしまいます。

この出現する一瞬も非表示にするにはどのようにすれば良いでしょうか??
ご教示お願い致します。

No.1635 2015/08/31(Mon) 14:11:20

Re: IEのバックグランド実行について / stuncloud
さすがにこればかりはしょうがないかな、と思います
一度証明書認証をしてしまえばIEを閉じるまでは表示されないので、その状態で使い続けるとか

ie.Silent = TRUE

としたら証明書選択ダイアログは出なくなったんですが、証明書認証も出来ないので無意味でした…
ダイアログを介さず証明書を指定する方法もなさそうでした

No.1636 2015/08/31(Mon) 14:52:12

Re: IEのバックグランド実行について / ぽんぽん
●stuncloudさん
ご回答ありがとうございます。
仕様上、やはり厳しいですかね。。

>一度証明書認証をしてしまえばIEを閉じるまでは表示されないので、その状態で使い続けるとか

 やりたいこととしては、「IE起動→証明書認証→IE終了→IE起動→証明書認証→…」
 のような挙動ですので、認証状態維持は難しいんです。。

No.1641 2015/09/01(Tue) 09:28:49

Re: IEのバックグランド実行について / stuncloud
ストアにクライアント証明書が一つしかない場合はダイアログを出さずにそれが選択されるという設定がIEにあるようです

参考:
http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=008541

「既存のクライアント証明書が1つ、または存在しない場合の証明書の選択」を有効にしておくと良いようです
手元の環境で試してみて、ダイアログは出ませんが証明書認証ができていることを確認しました
(ローカルイントラネットゾーンだとデフォルト設定のようですね)
あとは ie.visible = FALSE でIE自体も非表示にしておけば期待通りになるのではないかと

ただし、あくまで選択対象となるクライアント証明書がひとつしか存在していないことが前提なので完璧な解決策とは言えませんね…

No.1649 2015/09/03(Thu) 10:34:31
Windowsの画面をずっとアクティブにしておく / ヒロピー
教えてください。
Firefoxで画面をアクティブにしておくにはどうしたらいいでしょうか。
ツイキャスを録画するとき、タイマーを設定してもアクティブにならないので、録画できません。

No.1632 2015/08/31(Mon) 11:16:26

Re: Windowsの画面をずっとアクティブにしておく / routa
CTRLWIN関数にてTOPMOSTではだめですか。
No.1648 2015/09/02(Wed) 20:25:15
画像の場所が正常にクリックされません。 / れい


いつも使っているパソコンでは正常にクリックできましたが、別のパソコンを使ったときに画像と離れた位置をクリックしてしまいます。

ソースは以下のようなものでOSはwindows8.1、グラボはつんでおりません。
正常にクリックするにはどうしたらよいでしょうか。
どなたかご教授いただけないでしょうか。

ifb CHKIMG( "1"  )
x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入
BTN(LEFT, CLICK, x, y, 500)
endif

No.1639 2015/08/31(Mon) 17:57:08

Re: 画像の場所が正常にクリックされません。 / routa
FAQは確認しましたか?
CHKIMG関数が環境により認識しない  #n49

No.1647 2015/09/02(Wed) 19:28:32
全1097件 [ ページ : << 1 ... 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 ... 110 >> ]