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

CLKITEMがあるとき、無い時で操作を分けたい、breakしたい / たろこ
1.リストビューに存在する指定した名前の個数を取得する
 (単純に「ある」「ない」判定でも可で、現在はあるなし判定"NODATA")
2.個数によって動作を分ける LSTVIEW1に1つ→そのまま続行 1つも無い→breakで次に進む
3.「上書き警告」が出るので、「YES」を押す


2番で上手くbreakして中断してくれないために、3番で判定しようとして動作がとまります。
(対象のウィンドウが表示されないために待ち続けてしまいます)

if KEYWORD="NODATA" then break とやっても良いかもしれませんが
毎行そのように記載すると見づらいですし、上手く動かなかったと思います。

<質問>
・ウィンドウが出ない場合次に進みたい場合

ID=("Update Error Warning","#32770",-1)
if id<>-1 then CLKITEM(id,"YES",CLK_BTN)
 上記で進んでくれないのは何故か。組み方が悪いのか。

・途中でbreakさせたい。毎回If文を挟むしかないか

KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA",2)
HANTEI=DATA_CLICK(id,KEYWORD)
  if HANTEI=FALSE then break

上記のような形になるのか。(上手く動かなかった気がする)
 長文で申し訳ありませんが、回答よろしくお願いいたします。


WHILE HANTEI=TRUE
KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA",2)
HANTEI=DATA_CLICK(id,KEYWORD)

KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA2",2)
HANTEI=DATA_CLICK(id,KEYWORD)

KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA3",2)//実際の対象名称に法則性はありません。
HANTEI=DATA_CLICK(id,KEYWORD)
//
//似たような文が続く…

ID=("Update Error Warning","#32770",-1)
if id<>-1 then CLKITEM(id,"YES",CLK_BTN)
break
WEND

WHILE HANTEI=TRUE //2回目。別仕様として必要です。
KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA",2)
HANTEI=DATA_CLICK(id,KEYWORD)

KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA2",2)
HANTEI=DATA_CLICK(id,KEYWORD)

KEYWORD=ITEMWAIT(id,CLK_LSTVEW,"TESTDATA3",2)//実際の対象名称に法則性はありません。
HANTEI=DATA_CLICK(id,KEYWORD)
//
//似たような文が続く…

ID=("Update Error Warning","#32770",-1)
if id<>-1 then CLKITEM(id,"YES",CLK_BTN)
break
WEND




FUNCTION DATA_CLICK(id,item)
RESULT=FALSE

if item<>"NODATA" then
CLKITEM(id,item,CLK_LSTVIEW,True)
CLKITEM(id,item,CLK_LEFTCLK,True)
CLKITEM(id,item,CLK_DBLCLK,True)//操作は共通
RESULT=TRUE
endif
FEND


FUNCTION ITEMWAIT(id,kind,item,num)
count=0
While True
Sleep(0.5)
for n in GETITEM(id,kind,num,true)
if n=item then
RESULT = item
exit
endif

if count=3 then
RESULT = "NODATA"
exit
endif
next
count=count+1
wend
FEND

No.4084 2017/06/01(Thu) 18:31:22

Re: CLKITEMがあるとき、無い時で操作を分けたい、breakしたい / たろこ
スペースじゃなくてTABでインデントつけるんだったんですかね…
見づらくて申し訳ないです。

No.4085 2017/06/01(Thu) 18:32:11

Re: CLKITEMがあるとき、無い時で操作を分けたい、breakしたい / しろまさ
ID=("Update Error Warning","#32770",-1)

-1 は出ない限り永久待ちです。有限秒としてループでタイマーかけるとかしないと駄目です。

No.4086 2017/06/01(Thu) 18:56:23

Re: CLKITEMがあるとき、無い時で操作を分けたい、breakしたい / たろこ
しろまさ様

回答ありがとうございます。
あっ、そもそもGETIDって書き忘れてましたね…。

-1 のところを 1 等に変えて試してみようと思います。
ありがとうございました!

No.4088 2017/06/01(Thu) 19:08:45
実行中にSTOPを押すと停止できない / 俄プログラマー
タイトルの通りです。
いつの頃からか実行中にSTOPを押しプログラムを停止させるとプログラムは停止するものの
UWSCがSTOPの表示のままフリーズします。(応答無しにはならない。)
この為タスクマネージャーより強制停止を行い再度UWSC本体を起動させ実行しています。

Win10 UWSC5.2.2.0(このバージョンに限らず最近のバージョンだと思います)
会社のPC Win7でも同じ現象が起こっています。

一旦UWSCを削除し再度ダウンロードしても症状はかわりませんでした。
ランチメニューなど設定が残っているので完全には削除できてないようです。
何か対処の方法はないでしょうか?

No.4039 2017/05/27(Sat) 22:03:28

Re: 実行中にSTOPを押すと停止できない / 俄プログラマー
補足です。
毎度100%起こるわけではなく90%くらいの確率で発生しています。
この為、作成途中でテストを繰り返す時にすごく手間がかかっています。

No.4040 2017/05/27(Sat) 22:08:48

Re: 実行中にSTOPを押すと停止できない / satocha
簡単なスクリプトで調べましたが、再現しません。どちらも、問題なくに停止します。
どんなスクリプトでも9割がた発生するのでしょうか?
あと、ホットキー(既定値ならALT+F2)で止めるとどうなりますか?

win7 pro 32bit UWSC 5.5.0.2

テスト1(UWSC自身のループ)
repeat
sleep(0.1)
until getkeystate( vk_esc )

テスト2(他プロセスの終了待ち)
src ="$t=(date).addseconds(20);do{}while( $t.compareto((date)) -gt 0 )"
msgbox(powershell(src))

No.4041 2017/05/28(Sun) 08:15:19

Re: 実行中にSTOPを押すと停止できない / 俄プログラマー
検証ありがとうございます。

ホットキーで停止も同様でした。

これと言って特定できないのですが
GETKEYSTATE 特定の条件の時動作の制限や停止に使用
CHKIMG (多様 業務上の専用ソフトの為ボタンや文字情報が取れないものが多い。この条件にあう時BTNを使用)
THREAD (機能別に6種ほどwhile trueでループし同時に進行)

あたりがメインのコードです。全体400行程度のコードです。(空行含む

for文だけの単純コードだと止まりました。

No.4042 2017/05/28(Sun) 08:47:52

Re: 実行中にSTOPを押すと停止できない / 俄プログラマー
動作検証用にコードを作成して色々テストしてみます。
No.4043 2017/05/28(Sun) 08:49:06

Re: 実行中にSTOPを押すと停止できない / miles
> 一旦UWSCを削除し再度ダウンロードしても症状はかわりませんでした。
> ランチメニューなど設定が残っているので完全には削除できてないようです。


違うかもしれませんが、UWSC.INIは、削除されましたか?
(ランチメニューなどの設定もクリアされるはずですが...)

No.4044 2017/05/28(Sun) 09:04:43

Re: 実行中にSTOPを押すと停止できない / 俄プログラマー
//UWSCのフォルダ丸ごと削除したので安心してしまいました。
//AppData\Roaming\UWSCにあるUWSC.INIも削除してみました。(内容が復活?)
//
//以下はちょっと質問の道から外れるのですがスレッドから共通のPROCEDUREを呼び出すと
//吹き出しの表示がうまく行かない現象になり、このあたりからも停止しない原因があるのかもしれないです。
//本来なら0、スレッド1、スレッド2が同時に表示されるはずなのにスレッドからのPROCEDUREを使った吹き出しは同時に表示できず。
//このコードでは停止はできました。
//引き続き検証を続けます。(本日は時間的にむりになりました。)

thread スレッド1()
thread スレッド2()

while true
if 画像("0") then
ふき("0",0,0)
else
//ふき("",0,0)
endif
SLEEP(1)
wend

PROCEDURE スレッド1()
while true
if 画像("0") then
ふき("スレッド1",0,50)
else
ふき("",0,0)
endif
SLEEP(1)
wend
FEND

PROCEDURE スレッド2()
while true
if 画像("0") then
ふき("スレッド2",0,100)
else
ふき("",0,0)
endif
SLEEP(1)
wend
FEND

//画像が有るか無いか確認
FUNCTION 画像(画像名)
if CHKIMG(画像名 + ".bmp") then
RESULT = true
else
RESULT = false
endif
FEND

PROCEDURE ふき(テキスト,x,y)
fukidasi(テキスト,x,y)
FEND

No.4046 2017/05/28(Sun) 10:02:46

Re: 実行中にSTOPを押すと停止できない / satocha
根本解決ではありませんが、狙ったUWSだけを止めるpowershell ワンライナーです

gwmi win32_process|?{$_.name -eq "uwsc.exe" -and $_.commandline -like "*止めたいスクリプト.uws"}|%{$_.terminate()}

No.4047 2017/05/28(Sun) 10:58:50

Re: 実行中にSTOPを押すと停止できない / 俄プログラマー
satochaさんありがとうございます。ちょっと使い方がわからないので調べてみます<m(__)m>
No.4058 2017/05/30(Tue) 00:36:50

Re: 実行中にSTOPを押すと停止できない / たろこ
以前誰かに教えてもらいとても助かりましたが、以下スクリプトに書いたらどうですか?
ESCを押したら即座に停止できるようになります。

// これをスクリプトの最初の方に書いておく
sethotkey(VK_ESC, 0, "ForceStop")

// これをスクリプトの最後に書いておく
procedure ForceStop()
 exitexit
fend

No.4082 2017/06/01(Thu) 18:06:52
IE11で動かなくなりました / t-kawamura
GET_UWSC_VER=5.21
GET_UWSC_PRO=0
動作環境 Windows 7 professional 32bit です。

Internet Explorer 9 で動作していた uwsc のプログラムが
Internet Explorer 11 へ変更したら、動かなくなりました。

GetElementsByTagName が動いたり、error だったり。
nextSibling は常に error になります。

何が問題なのでしょうか?

No.4077 2017/06/01(Thu) 16:23:32

Re: IE11で動かなくなりました / stuncloud
> 何が問題なのでしょうか?
わかりません
IE9では動作してIE11でエラーを起こす最小限のコードとそのためにアクセスしたURLを提示してください

No.4079 2017/06/01(Thu) 17:10:58
GetActiveOleObj が変。 / しろまさ
Book1.xls 又は Book1.xlsx を作成して開いておき、
下記のように名前指定でGetActiveOleObjを使用します。

 xl = GetActiveOleObj("Excel.Application", "Book1.xls") // ここでエラー
 xl.range("A1").value = GetTime()

大抵、Bookをもうひとつ開こうとしているような画面(2重に表示)になり、ComErrorになります。
「同じ名前のBookを同時に開くことは出来ません」というウィンドウが出る場合もあります。

UWSCv511 ではなりません。UWSCv5302では確実に起こります。
win7 pro 32bit Excel.Application.15
みなさんの環境ではいかがですか?

No.4066 2017/05/31(Wed) 10:50:47

Re: GetActiveOleObj が変。 / しき
win7x64Pro UWSC5.302
Book1.xls
Excel 2003, 2007, 2013
で試しました。エラーにはなりません。正常に動作します

xl = GetActiveOleObj("Excel.Application", "Book1.xls")
s = get_uwsc_ver + " "+ xl.Version
sendstr(0, s)
msgbox(s)
//5.302 11.0
//5.302 12.0
//5.302 15.0

No.4068 2017/05/31(Wed) 14:49:01

Re: GetActiveOleObj が変。 / しろまさ
しきさん、ありがとうございます。正常ですか。
症状が出るのは1台じゃないんですよね。ウィルスバスターが悪さしてるのかなぁ?

No.4069 2017/05/31(Wed) 16:34:16

Re: GetActiveOleObj が変。 / しゅん
手元の環境では問題なさそうですが、別のおかしな現象を見つけました。

Win7 pro x86/x64, Office 2013(Excel.Appicatoin.15)
・ファイルがBook1.xlsxで、スクリプトがBook1.xlsの時
・ファイルがBook1.xlsで、スクリプトがBook1.xlsxの時

"Excel.Application.15"で取得しようとすると、
拡張子が違うのに取得できてしまう。
"Excel.Application"では、COMエラーになります。
5.1.1では"Excel.Application"でも取得できます。

謎ですね。
ま、COM周りは、、、という気もします。

No.4071 2017/05/31(Wed) 19:36:06

Re: GetActiveOleObj が変。 / しろまさ
しゅんさん、ありがとうございます。

そか、"Excel.Application.15" で行う手もあるのですね。思いつかなかった><
例外処理でクラス文字を移行させることで GetActive うまくいきました。
CLSIDからProgIDを読んで指定するのがスムーズそうなのでこれから作成してみます。

しきさん、しゅんさん、ご協力ありがとうございました。

No.4072 2017/06/01(Thu) 09:05:47

Re: GetActiveOleObj が変。 / しろまさ
あれ?違う。 "Excel.Application.15"だと名前指定が無視されているだけか・・?
No.4076 2017/06/01(Thu) 16:16:56
ボタンの押し方を教えてください / テニスじいさん
おせわになります。
庭球場7の下の18時のところのボタンを押したいのですがうまくいきません。なんとかお助けください。

以下はプログラムです。骨子のみ表示してあります。よろしくお願いします
//


GetTime
nn=G_TIME_YY
mm=G_Time_MM


// 日付の読み込み
    year=nn
month=mm+3
if month> 12 then
month=month-12
year=year+1
endif






IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True



愛知(IE)


///


id="01007390"
paswd="Aich0075"
  


施設予約システムに入る(IE)


IESetData(IE,id,"layoutChildBody:childForm:userid")         // Id
IESetData(IE,paswd,"layoutChildBody:childForm:passwd") // 暗証番号
ログイン(IE)
//

   施設名から探す(IE)
   
   上記の内容で検索(IE)

   小幡緑地(IE)

no=17
日付の選択(IE,no)

n=7
   次の5件(IE)

   摂取(IE)
 






//=============================================================

// ボタン

//=============================================================

// ======愛知ネットにはいる========

Procedure 愛知(ie)
IE.Navigate("https://www4.pref.aichi.jp/yoyaku/index.jsp")
BusyWait(ie)
Fend

//========施設予約システムに入る=================
Procedure 施設予約システムに入る(IE)
IE.navigate("javaScript: doSubmit('childForm', 'doLogin');" )
BusyWait(IE)
Fend

//================ログイン======================
Procedure ログイン(IE)
IE.document.getElementById("doLogin").click()
BusyWait(IE)
sleep(0.2)
Fend

//================施設名から探す====================== goNameSearch
Procedure 施設名から探す(IE)
IE.document.getElementById("goNameSearch").click()
BusyWait(IE)
sleep(0.2)

Fend

//================上記の範囲で検索======================
Procedure 上記の内容で検索(IE)
IE.document.getElementById("doSearch").click()
BusyWait(IE)
sleep(0.2)

Fend
//================小幡緑地====================== 
Procedure 小幡緑地(IE)
IESetData(IE,TRUE,"layoutChildBody:childForm:resultItems:2:doSelect")
BusyWait(IE)
Fend



//================対象館一覧を表示======================
Procedure 対象館一覧(IE)
IE.document.getElementById("doSearch").click()
BusyWait(IE)
Fend

//================施設の決定======================
Procedure 施設の決定(IE)
IE.document.getElementById("doAreaSet").click()
BusyWait(IE)
Fend

//================日付の選択======================
Procedure 日付の選択(IE,no)

 ban=no+""
id = GETID("空き状況/ネットあいち施設予約システム - Internet Explorer", "IEFrame", -1)
SLEEP(0.2)
nmon="次月"
CLKITEM(id,nmon,CLK_LINK)
CLKITEM(id,nmon,CLK_LINK)
CLKITEM(id, ban, CLK_LINK)
BusyWait(ie)
Fend




//================摂取====================== 
Procedure 摂取(IE)
 IESetData(IE,TRUE,"layoutChildBody:childForm:rsvEmptyStateItems:1:emptyStateItemsItems:0:emptyStateItems:10:sel")
 
BusyWait(IE)
Fend

//================
//========== 時間帯============

Procedure 時間帯(IE,moji)
nn=pos("a",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:0:chkKom-1")
nn=pos("b",moji)
if nn>0 then  IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:1:chkKom-1")
nn=pos("c",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:2:chkKom-1")
nn=pos("d",moji)
if nn>0 then IESetData(IE,True,"layoutChildBody:childForm:lotEmptyStateListItemsItems:0:lotEmptyStateListItems--:3:chkKom-1")
BusyWait(IE)
Fend

//================申し込み確定======================
Procedure 申し込み確定(IE)
IE.document.getElementById("doDateTimeSet").click()
BusyWait(IE)
sleep(0.2)
Fend

//================利用目的======================
Procedure 利用目的(IE)
 IESetData(IE,"硬式テニス","layoutChildBody:childForm:makeList")
 IESetData(IE,"19","layoutChildBody:childForm:applycnt")     //人数 
BusyWait(IE)
Fend

//================抽選内容の確認=========申し込みをする=============
Procedure 抽選内容の確認(IE)
 IE.document.getElementById("doConfirm").click()
 BusyWait(IE)
 sleep(0.2)
 //IE.document.getElementById("doOnceFix").click() //申し込み←原因はここです。
 //IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
 //http://www.uwsc.info/faq.html#N25
 Thread PopupWin("Web ページからのメッセージ")
 IESETDATA(IE,True,"","抽選を申込む")
 BusyWait(IE)
 sleep(0.2)
Fend
//--------------
Procedure PopupWin(StrLine)
  id = GETID(StrLine, "#32770", -1)
  SLEEP(1)
  Check = CLKITEM(id, "OK", CLK_BTN)

Fend

//================別の日付======================
Procedure 別の日付(IE)
IE.document.getElementById("doDateSearch").click()
BusyWait(IE)
Fend

//================ログアウト======================
Procedure ログアウト(IE)
IE.document.getElementById("doLogout").click()
BusyWait(IE)
sleep(0.2)
Fend

//===================== 花火====================
procedure 花火(ie)
ie.navigate("http://phoenix911.sub.jp/flashanime/hanabi.swf")
BusyWait(ie)
Fend

//===============抽選申し込みの一覧へ======================
Procedure 抽選申し込みの一覧へ(IE)
IE.document.getElementById("goLotStatusList").click()
BusyWait(IE)
Fend

//================次の5件======================
Procedure 次の5件(IE)
IE.document.getElementById("goNextPager").click()
BusyWait(IE)
sleep(0.2)

Fend


//================1へ======================
Procedure マイページ(IE)
IE.navigate("javascript: doMenuBtn('MYPAGE');" )
BusyWait(IE)
Fend

//================予約状況の一覧へ======================
Procedure 予約状況の一覧へ(IE)
IE.document.getElementById("goRsvStatusList").click()
BusyWait(IE)
sleep(0.2)
Fend

//================確定作業====================== goLotSerach
Procedure 確定作業(IE)
IE.document.getElementById("goLotElectConfirm").click()
BusyWait(IE)
sleep(0.2)

Fend

//================同意する====================== goLotSerach
Procedure 同意する(IE)
IE.document.getElementById("yeslabel").click()
BusyWait(IE)
sleep(0.2)

Fend


//================当選結果の確定====================== goLotSerach
Procedure 当選結果の確定(IE)
IE.document.getElementById("doOnceLockFix").click()
BusyWait(IE)
sleep(0.2)

Fend
//================一覧へもどる====================== goLotSerach
Procedure 一覧へもどる(IE)
IE.document.getElementById("jumpLotStatusList").click()
BusyWait(IE)
sleep(0.2)

Fend
//===============
Procedure BusyWait(ie)
 repeat
  Sleep(0.1)
 until (! ie.busy) and (ie.readyState=4)
Sleep(0.2)
Fend

//=================================

No.4074 2017/06/01(Thu) 14:51:19

Re: ボタンの押し方を教えてください / stuncloud
1. 「庭球場7」の表を探す
2. 18時の位置を探す
3. 画像をクリック
という感じの動作にします
「庭球場7」の表示されているページが開かれている状態だとします

*************************************

アイコンクリック(ie, "庭球場7", 18)

procedure アイコンクリック(ie, 施設, 時) // 施設は部分一致で良いです
 tablebg2 = ie.document.querySelectorAll(".tablebg2")
 for i = 0 to tablebg2.length - 1
  inamem = tablebg2.item(i).querySelector("span[id=<#DBL>inamem<#DBL>]")
  if inamem <> NULL then
   if pos(施設, inamem.innerText) then
    hourlable = tablebg2.item(i).querySelectorAll("span[id=<#DBL>hourlable<#DBL>]")
    for j = 0 to hourlable.length - 1
     if hourlable.item(j).innerText = 時 then
      tablebg2.item(i).querySelectorAll("img").item(j).click()
      break
     endif
    next
    break
   endif
  endif
 next
fend

*************************************

ところで、ログインIDとパスワードが使えてしまうようですが大丈夫なのでしょうか?
個人的に使われているアカウントであれば消しておいたほうがよいと思いますが…(個人名と思しき姓名が表示されちゃってます)

# しかしこのサイト、多重tableだわidがユニークじゃないだわでわりとひどい作りですね…DOMツリー見ながらげんなりしてました

No.4075 2017/06/01(Thu) 15:50:08
ThunderbirdのAdd-onのIDを取得する方法 / あきら
Thunderbirdに「Provider for Google Calendar」と言うAdd-onがあります。Thunderbirdを立ち上げると必ず毎回出てきます。必ずGoogleアカウントをパスワードを入れて許可すると言う操作をしなければなりません。低レベル記録でテキストファイルからコピーアンドペーストしたりキーボード操作すると記録は出来ます。しかし、出てきたダイアログボックス(Googleのだと思いますが)に入力しようとして
EXEC("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe")
CID=GETID("Sign in to your account ***-****-****-****-**********","MozillaDialogClass")
SENDSTR(CID,"********@gmail.com")
としてもそのダイアログに入力できません。
その次にエンターキーの操作も今一つ分からないので、キーボードのエンターキーを押すと言う風にしています。
そしてパスワードの入力も上と同じように書いたのですが、それで良いのかどうかです。
最後の難関が「許可」と言うボタンのクリックです。これがどうもマウスでしか操作できないようで、これを何とかしたいと思っています。
ただ、そのダイアログボックスはThunderbirdの一部として動いていますが、タスクマネージャーを見るとThnderbirdから枝分かれしたプロセスになっています。そのプロセスの名前はダイアログボックスの上に記述された文字列になっています。これは上に書いたアカウント*****-****-****で書かれた文字列とは違っています。このダイアログボックスに入力するにはどう記述すれば良いのでしょうか?
低レベル記録しか無いのでしょうか?そうなると結構時間が掛かります。これでは手入力の方が速いと言う事になります。

そもそも、UWSCに関心を持ったので手始めにこれを題材に勉強しようと思ったのですが、それが無謀だったのでしょうか?よろしくお願いいたします。

No.4056 2017/05/29(Mon) 22:40:58

ThunderbirdのAdd-onのIDを取得する方法(訂正) / あきら
>これは上に書いたアカウント*****-****-****で書かれた文字列とは違っています。
は間違いで、これがダイアログボックスの上に書かれています。

No.4057 2017/05/29(Mon) 22:45:20

Re: ThunderbirdのAdd-onのIDを取得する方法 / しろまさ
質問の趣旨から外れますが、Gmailは2段階認証を入れてませんか?
その場合はアプリパスワードを使うことでログイン認証を省くことが出来ます。

アプリパスワードについてはリンクの「2段階認証をすり抜ける。」を参考にして下さい。
http://siromasa.html.xdomain.jp/uwsc/u_term/Gmail.html

違ってたら無視して下さい。

No.4059 2017/05/30(Tue) 08:50:52

Re: ThunderbirdのAdd-onのIDを取得する方法 / あきら
しろまさ様
ありがとうございます。2段階認証では無いですが、Add-onを使うためにGoogleの許可をもらうと言うだけのようです。最近結構Googleのサービスと連携させる場合その様な事をさせられるようになっています。ThunderbirdでGmailを設定すると出てきたりします。今まではその様な事は無かったのですが。セキュリティの問題だと思いますが。UWSC結構スクリプトを考えて行くと面白いのではまりそうです。

No.4060 2017/05/30(Tue) 09:52:53

Re: ThunderbirdのAdd-onのIDを取得する方法 / しろまさ
今 Provider for Google Calendar を入れ、新規作成 カレンダー で gmailにリンクさせたんですが
TB再起動してもパスワード認証が出ず、Box操作が試せません><
こちらは2段階認証を入れてますが他に何が違うのか・・?(TBは Portable版)

設定途中で「このアプリが許可を求めています」みたいな画面で許可を通したのですが、
再度カレンダーを新規作成して、アプリ認証してみるのはいかがですか?

No.4061 2017/05/30(Tue) 11:55:14

Re: ThunderbirdのAdd-onのIDを取得する方法 / あきら
仰る通りに再度作りました。
>設定途中で「このアプリが許可を求めています」みたいな画面で許可を通したのですが、

は仰る通り出てきます。がこれは以前にも出ていたもので、やはり毎回認証が必要なようです。
Add-on紹介のところにも認証がいると注意が出ていました。ただ、それが毎回だとは思いませんでした。作者にもメールしてみます。ありがとうございます。

No.4062 2017/05/30(Tue) 15:16:04

Re: ThunderbirdのAdd-onのIDを取得する方法 / しろまさ
駄目でしたか。残念>< 2段階認証いいですよ! 

話を戻しまして、

GetIDはタイトル部分一致又は省略でも通ります(Classは絶対一致)
MouseOrgで座標を決め打つことが出来ます。
ChkImgで画像座標を取得できます。
PosACCで座標位置の文字を取得できたりします。
SendStrが聞かない入力は仮想キーを連続で打つ方法もあります。http://siromasa.html.xdomain.jp/uwsc/u_term/75_Mojinyuuryoku.html

ウィンドウが出ないので検証は出来ませんが、いろいろ試すと結構なんとかなるもんです。
ご検討をお祈りいたします。

No.4063 2017/05/30(Tue) 17:33:44

Re: ThunderbirdのAdd-onのIDを取得する方法 / あきら
CID=GETID("Sign in to your account ********-****-****-****-************","MozillaDialogClass")
ACW(CID,467,49,432,627,0)
BTN(LEFT,CLICK,614,101,78)
SENDSTR(CID,"********@gmail.com")
KBD(VK_RETURN)
CID=GETID("Sign in to your account ********-****-****-****-************","MozillaDialogClass")
ACW(CID,467,49,432,627,0)
BTN(LEFT,CLICK,513,337,94)
SENDSTR(CID,"**********")
KBD(VK_RETURN)
と作ってみましたが、最初の入力から出来ないです。
低レベル記録で作って手直しをしてみたのですが。
ここで、キーボード操作やコピペの部分をSENDSTRで置き換えました。
しかし、入力されません。

No.4067 2017/05/31(Wed) 13:54:04

Re: ThunderbirdのAdd-onのIDを取得する方法 / しろまさ
多分このウィンドウかな? ということで一例です。

wID = GetID("Sign in to ", "MozillaDialogClass", 0.2)
MouseOrg(wID, 1)
  BTN_MMV(350, 280)
  KBD_W(VK_CTRL, VK_A)
  SendKBD("siromasa@gmail.com")
//  BTN_MMV(350, 370)  //  次へ
MouseOrg(0)

Procedure  BTN_MMV(x, y)
  BTN(LEFT, CLICK, x, y)
  MMV(x, y)
FEnd
Procedure  SendKBD(a)
  Dim i, n, Key[]  = "","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","32","s49","s50","s51","s52","s53","s54","s55","s56","s57","106","107","188","189","190","191","48","49","50","51","52","53","54","55","56","57","186","187","s188","s189","s190","s191","192","s65","s66","s67","s68","s69","s70","s71","s72","s73","s74","s75","s76","s77","s78","s79","s80","s81","s82","s83","s84","s85","s86","s87","s88","s89","s90","219","220","221","222","s226","s192","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","s219","s220","s221","s222"
  If GetKeyState(TGL_CAPSLOCK)  Then KBD_W(VK_SHIFT, VK_CAPITAL)
  For i = 1  To Length(a)
    n = Key[ASC(Copy(a, i, 1))]  ; If ChkNum(n)  Then KBD(n)  Else KBD_W(VK_SHIFT, Copy(n, 2))
  Next
FEnd
Procedure  KBD_W(a_Key1, a_Key2)  // a_Key1 を押しながら a_Key2 押下
  KBD(a_Key1, 1);  KBD(a_Key2);  KBD(a_Key1, 2)
FEnd

No.4070 2017/05/31(Wed) 17:14:41
COM_Error:アクセスが拒否されました。が出てIEが開けない / ぽんず
COM_Error:アクセスが拒否されました。,ProgID:"InternetExplorer.Application"71行目:IE = CREATEOLEOBJ("InternerExplorer.Application")

のエラーが表示されてIE動作が停止します。
以前は問題なかったのですが、突然発生するようになりました。
IEの保護モード,セキュリティーソフト等は切っています。

どうかよろしくお願いします。

No.4064 2017/05/31(Wed) 00:54:31

Re: COM_Error:アクセスが拒否されました。が出てIEが開けない / ぽんず
OSはWindows10 pro 64bit
IEは11.296.15063.0

IEのリセット等も行いました。

No.4065 2017/05/31(Wed) 00:56:39
UWSC自身の幅と高さが正しく取得できません / siguma
お世話になります。

UWSC Free版 Ver5.2.3
を使用時は

ID = GETID(GET_THISUWSC_WIN)
print "幅 " + STATUS(ID, ST_WIDTH)
print "高さ " + STATUS(ID, ST_HEIGHT)

を実行すると「幅 220」「高さ 60」と表示されていたのですが

UWSC Free版 Ver5.3.0.2
では「幅 1」「高さ 1」と表示されてしまいます。

(なおX座標・Y座標・タイトル・クラス名ではどちらのVerでも同じ値が表示されます)

No.4054 2017/05/29(Mon) 12:04:47
パソコンを変えました、すると / kubo
いつもありがたく使わせていただいていますが
新しいパソコンに替えたら、記憶ボタンなどが灰色で、使えません
64ビツトのWindows10です。
以前のように使う方法はありますか?
よろしくお願いいたします。

No.4050 2017/05/28(Sun) 21:58:26

Re: パソコンを変えました、すると / koi
まさかとは思いますが
旧環境のUSWC.exeだけを新環境にコピーしたとか言わないですよね?
(アーカイブ配布されてるものを新環境でそのまま展開していますか?)
  実行ファイルコピーだけだと(必要なDLLが無いと)
  記憶ボタンはグレーアウトされてます

No.4052 2017/05/29(Mon) 09:39:42
文字検索クリックについて(上級) / 初心者
お世話になっております。

ヤフオクのページから『今すぐエントリー』という文字を検索してそれをクリックして実行するという
プログラムを作成したいのですがうまくいきません。

この場合、文字が印字されているような感じのタイプの文字検索は可能なのでしょうか??



それと『今すぐエントリー』の中で『エントリー』だけで検索クリックできるようにしたいのですが
そちらも可能なのでしょうか。





IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://auctions.yahoo.co.jp/")


//完全に表示されるまで待機
REPEAT
SLEEP(0.01)
UNTIL ((ie.Busy=FALSE) AND (ie.ReadyState=4))

sleep(5)

atags=ie.document.getElementsByTagName("a")
FOR k=0 TO atags.Length-1
IFB (atags.Item(k).InnerText="今すぐエントリー") THEN
atags.Item(k).Click()
BREAK
ENDIF
NEXT

No.4030 2017/05/26(Fri) 00:36:19

Re: 文字検索クリックについて(上級) / トリビア
対象サイトに「今すぐエントリー」というテキストは存在していますか?
ご確認ください。

No.4032 2017/05/26(Fri) 16:07:25

Re: 文字検索クリックについて(上級) / koi
書かれてるURL見てみました

> 文字が印字されているような感じのタイプの文字

少なくても今回に限って言えば
完全に画像ファイルなので文字列としての検索とかは不可能です

見たとき表示されてたのは以下の画像
https://s.yimg.jp/images/auct/salespromotion/2017_5/0508_selldebut_cp/188x188_03.png

No.4033 2017/05/26(Fri) 17:13:38

Re: 文字検索クリックについて(上級) / 初心者
ご返信有難うございます。

では、これが仮に画像ファイルではなかった場合はどのようなプログラムを書きますでしょうか?

文字列としてですが、文字をクリックできるようなタグではない場合です。

例としましては、
あるスマホアプリの何々さんから『コメントが来ました』の時にその場所をクリックして表示させたいのですが可能ですか。

コメントが来ましたが頻繁するので効率的に文字検索してその画面を一度に複数開きたいです。

記載したスクリプトでやってみましたが動きませんでした。

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

No.4035 2017/05/26(Fri) 18:09:25

Re: 文字検索クリックについて(上級) / トリビア
>初心者さん
Web記録でトライしてみてください。

No.4036 2017/05/26(Fri) 20:10:18

Re: 文字検索クリックについて(上級) / 初心者
Web記録でトライしましたが、一応切り替わるのですが
IEのみしか出来ないのでグーグルChromeなどでも出来るようにしたいです。

それと複数のコメントを複数タブで開けなかったです。

出来れば、複数あります『コメント』という文字を文字検索してそこにマウスを移動させたいのですがそれは可能ですか?

No.4048 2017/05/28(Sun) 13:46:08

Re: 文字検索クリックについて(上級) / 初心者
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("https://~~~")
BusyWait()

IELink(IE,"コメント") // https://www~~~
BusyWait()

追記ですが、web記録でやるとこういった感じになりましたが、
コメントのある場所を特定して複数同時に開きたいのと、可能であればマウスを文字の上に移動させたいです。

文字検索によりマウスが移動出来ればそこから右クリックなどで複数開けるはずです。

複雑ですがよろしくお願い申し上げます。

No.4049 2017/05/28(Sun) 20:02:02

Re: 文字検索クリックについて(上級) / しろまさ
>文字検索によりマウスが移動出来ればそこから右クリックなどで複数開けるはずです。

そう思うならそういったものを作成し、
何がうまくいかないかもっと焦点を絞って質問して下さい。

ここは作成依頼掲示板ではありません。
具体的なコードやページが無ければこちらで検証もできません。

No.4051 2017/05/29(Mon) 09:01:16


 過去ログ(〜2017/03/22)・検索ツール


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