[ 掲示板に戻る ]

過去ログ閲覧モード

win10 ie11 でcomエラー多発。 / 01niw
UWSC5.2.2

win101(64bit) ie11 でcomエラー多発。
同じスクリプトで win7(64bit) ie11では、エラーがおきないのですが。

IE=GETACTIVEOLEOBJ("InternetExplorer.Application")

until (! ie.busy) and (ie.readyState=4)

こんな場所で、comエラー。

どうしたらよいでしょうか?
よろしくお願いいたします。

No.2403 2016/05/24(Tue) 10:55:14

Re: win10 ie11 でcomエラー多発。 / ある
状況が全くわかりませんが、とりあえず
print IE
でIEが掴めているかどうか確認されてはいかがでしょう?

No.2406 2016/05/24(Tue) 18:25:32

Re: win10 ie11 でcomエラー多発。 / 01niw
ある様 ありがとうございます。

下のスクリプトが、win7(64bit)IE11では動くのですが win10(64bit)IE11では動かないんです。
1行目でCOMエラーです。
よろしくお願いいたします。

IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
SLEEP(1)
print ie
PRINT IEGetSrc(IE, "TITLE")

No.2408 2016/05/25(Wed) 18:28:55

Re: win10 ie11 でcomエラー多発。 / 01niw
 解決しました。
セキュリティの問題でした。
すみませんでした。

No.2409 2016/05/25(Wed) 18:52:05
GETKEYSTATEの仕様についての質問 / Get
【環境】
Win7 pro
IE11
UWSC5.2.2

【質問内容】
以下のプログラムを実行した場合の挙動は仕様でしょうか?
内側のループ中に外側のループ脱出条件のPAUSEキーを押下し、
その後、内側のループ条件を満たすと外側のループ(プログラム)が終了してしまう。
 ※内側のループのみ終了させ、外側のループは終了させたくない。

【手順】
1.以下のプログラムを実行する。
2.吹き出しに「外ループ」と表示される。
3.PageUpキー押下する。
4.吹き出しが「内ループ」に変更される。
5.PAUSEキーを押下する。(吹き出しに変化なし)
6.PageUpキー押下する。(処理が終了する。)

【ソース】
REPEAT
 SLEEP(0.5)
 FUKIDASI("外ループ")
 IFB GETKEYSTATE(VK_PRIOR) THEN//PageUpキー
  REPEAT
   SLEEP(0.5)
//ここで特定の処理を実行させる。
   FUKIDASI("内ループ")
  UNTIL GETKEYSTATE(VK_PRIOR) //PageUpキー
  cnt = 0
 ENDIF
UNTIL GETKEYSTATE(VK_PAUSE)  //PAUSEキー

No.2400 2016/05/23(Mon) 14:04:17

Re: GETKEYSTATEの仕様についての質問 / Liners
仕様と思われます。GETKEYSTATEは、履歴を見ているようなものです。
キャンセルするには、キャンセルしたいブロックの最後で再度実行します。

  cnt = 0
  GETKEYSTATE(VK_PAUSE) //キャンセル
 ENDIF

No.2401 2016/05/23(Mon) 15:01:20

Re: GETKEYSTATEの仕様についての質問 / Get
Linersさん
ご返信ありがとうございます。

想定通りに動作させることができました。
ありがとうございます。

No.2405 2016/05/24(Tue) 15:57:55
マウス / 新快速
パソコンのマウスの真ん中のボタンは録画されないのですか
お願いします

No.2394 2016/05/19(Thu) 19:55:59
タスクバーの常駐ソフト / ボブ
右下のタスクバーにある常駐されてるソフトを右クリックしたいのですが何か方法はないでしょうか?
No.2392 2016/05/18(Wed) 19:59:10

Re: タスクバーの常駐ソフト / routa
これでどうでしょう
CLKITEM(GETID("","Shell_TrayWnd"), "タイトル", CLK_ACC or CLK_RIGHTCLK)

No.2393 2016/05/18(Wed) 23:34:31
テキストボックスの位置を把握するには? / ミスターワタナベ
あるソフトにマクロでデータを入力したいのですが、一番上のテキストボックスをアクティブにする方法は、座標指定しかないのでしょうか?スタートが分かれば後は順番にテキストを入力できます。
No.2389 2016/05/15(Sun) 12:53:53

Re: テキストボックスの位置を把握するには? / ある
どのソフトか書かないとわからないですよ。
getactiveoleobjで拾えるのであればIEsetdataで入力できるでしょうし、
拾えなくてもchkimgで座標取得は可能です。

No.2390 2016/05/15(Sun) 19:51:58

Re: テキストボックスの位置を把握するには? / stuncloud
sendstr(id, "第三引数で番号指定", 1) // 1個目のテキストボックスに入力
No.2391 2016/05/16(Mon) 11:59:32
CHKIMGの動作かな? / たかはる
ノベルゲームをやってて、面倒くさい部分が有ったので、UWSCで自動化してみました。
表示された条件に従って、選択肢を選んでクリックしていくのです。

終了 = 0
repeat
画面をチェックして選択肢を選ぶ処理
SLCTBOXを出して強制的にループを抜けられる様にもする
until 終了 = 1

ざっとこんな感じで作っていました。

ある程度まともに動くように成ったので、一秒縛りの有るSLCTBOXを消して、ちゃっちゃと動くようにしようとしました。
しかし、SLCTBOXを消すと、選択肢を選ぶ処理の動きがおかしくなりました。
画面は替わってるのに、前回選んだ選択肢の処理を行ったり、画面に何も表示されてないのに何処かクリックしたり。
原因が解らず、SLEEPをあっちこっちに放り込んでみたりしたのですが解決せず。w
で、フォーカスと言うかそーゆーのが、一旦、ゲーム画面から外れないと、CHKIMGが上手く機能しないのでは?と考え、FUKIDASIを出すようにしたら、あら解決。w

そういうもんなんですか?問題点がCHKIMGの動作と解ったワケではないですが。

No.2388 2016/05/12(Thu) 14:10:11
セレクトボックス、メッセージボックスの前回の位置 / ケイティー
セレクトボックス、メッセージボックスは表示位置を指定できますが
前回の位置で表示したい場合はどうすれば良いでしょうか?
繰り返し作業の中で任意の場所に移動させてもまた同じ位置に戻ってしまう為
前回の位置に表示したいです。

No.2386 2016/05/12(Thu) 11:50:19

Re: セレクトボックス、メッセージボックスの前回の位置 / stuncloud
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=2225

msgboxならクラスにTUmsgDlg_uwscを指定
slctboxならTUslctBox_uwsc

No.2387 2016/05/12(Thu) 12:05:44
uri文字列?を復元したいです / もき
お世話になってます。

FirefoxアドオンのDownloadStatusbar(DL履歴をステータスバー表示)の
内部ファイルのJsonファイル(history.json)を変換したいのですが漢字が変換できません。

たとえば、A を B へと読み下したいのですがうまくできません。

A C%3A%5CUsers%5CHOGE%5CDownloads%5C%E6%9D%B1%E6%96%B9.jpg
B C:\Users\HOGE\Downloads\東方.jpg

"方"が "E696B9" になるのはUTF8らしいとこまではわかったのですが、
DECOCE関数でテストしてもうまく復元できません

どうすれば変換できるでしょうか?


それと別件ですが、テストコードでデバックしてた時、下のような文でエラーになりました。
これは仕様でしょうか?
たぶん、//が空行扱いになって、空行と結合したから最後の括弧が無いというエラー
じゃないかなと思うんですが、最初はコメント化しただけでエラーになるので、
意味不明で混乱してしまったので…

a=""
repeat

a= input("エンコードテキスト入力",a)

URL = decode(a,CODE_URL)
UTF8 = decode(a,CODE_UTF8)
HTML = decode(a,CODE_HTML)

msgbox( "<#CR>Url:<#Tab>" + URL + _
"<#CR>Utf8:<#Tab>" + UTF8 + _
"<#CR>Htil:<#Tab>" + HTML + _
// "<#CR>BYTEutf16:<#Tab>" + BYTEutf16 + _
)

until a=""

よろしくお願います。

No.2381 2016/05/07(Sat) 21:56:18

Re: uri文字列?を復元したいです / リキュール
以下ではどうでしょうか。

a="C%3A%5CUsers%5CHOGE%5CDownloads%5C%E6%9D%B1%E6%96%B9.jpg"
URL = decode(a,CODE_URL)
b=decode(URL,CODE_UTF8)
msgbox(b)

No.2382 2016/05/08(Sun) 10:39:29

Re: uri文字列?を復元したいです / miles
コメント化の件は、行結合(_)までコメントされているから。。。

msgbox( "<#CR>Url:<#Tab>" + URL + _
"<#CR>Utf8:<#Tab>" + UTF8 + _
"<#CR>Htil:<#Tab>" + HTML + _
_//"<#CR>BYTEutf16:<#Tab>" + BYTEutf16 + _
)

No.2383 2016/05/08(Sun) 15:17:11

Re: uri文字列?を復元したいです / もき
いま起きました

リキュール 様
ありがとうございます。
テストは当初はちゃんと循環適応用にループしてたのに、途中から
結果を各種同時に出すようにしたら循環適応ループしなくなってた
間抜けに気がつきました…orz

miles 様
今の正しくはそうなるんだと思いますが、コメントアウトで変になるのは
違和感有るなぁと。
_の結合は強欲(空行は無視する)か、行頭//は無とする(行も存在しない)
として上の例でも普通に通った方が書くの楽で素直じゃ無いかなと。
素人考えなので、言語界では行結合の仕様はこれが常識という状態でしたら
ごめんなさい。

No.2384 2016/05/08(Sun) 16:41:20

Re: uri文字列?を復元したいです / 森
// は行末までがコメントアウトの対象であって改行記号は対象外です。

したがって、
------------------------------
msgbox("a"_
// コメント
)
------------------------------
は、
------------------------------
msgbox("a"_
)
------------------------------
と同じではなく、
------------------------------
msgbox("a"_

)
------------------------------
と同じなのでエラーになります。

なぜならば、複数行にわたる時は行末に_が必要なので、
------------------------------
msgbox("a"_
_
)
------------------------------
としなければいけないからです。

つまり、もきさんの希望は、
------------------------------
msgbox("a"_
_// コメントアウト記号の前にアンダーバーを付ける
)
------------------------------
で解決しますね^^

No.2385 2016/05/09(Mon) 15:31:47
IE アクセス先のチェック / わかば
お世話になっております。
本ソフトで開いたIEのアクセス先を定期的にチェックするため、下記コードを作りました。
しかし、
URL=IE.document.url
でCOM_Error例外が発生します。対処方法を教えていただけますでしょうか?
よろしくお願いします。

Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("http://www.uwsc.info/")
BusyWait()
Thread AccessCheck
Msgbox("別のページにアクセス")
// OleEvent(IE); IE.Quit() // OleEventクリア & IE終了

Procedure AccessCheck
While True
URL=IE.document.url
IfB POS("uwsc",URL)=0
ExitExit
EndIf
Sleep(2)
Wend
Fend

No.2370 2016/04/30(Sat) 16:26:21

Re: IE アクセス先のチェック / ある
一応、エラーが出ない方法としては下記のような形で。
と言ってもtreadを外しただけですが。
busywait()でbusy状態からは抜けているのでスレッドにする必要はないです。
ただスレッドだとエラーになってしまう理由は正直わかりません。
それはきっと他の方が解説してくれると思います(^^;;)

Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("http://www.uwsc.info/")
BusyWait()
AccessCheck
Msgbox("別のページにアクセス")

Procedure AccessCheck
while true
URL=IE.document.url
print "url="+url
IfB POS("uwsc",URL)=0
ExitExit
EndIf
Sleep(2)
wend
Fend

No.2371 2016/04/30(Sat) 17:05:12

Re: IE アクセス先のチェック / しゅん
IEオブジェクトは、別スレッドに渡せません。
GetActiveOleObjを使って、同じIEオブジェクトを別スレッドから操作することは可能です。
なので、どうしてもスレッドでやりたい場合は、Procedure内でIEオブジェクトを取得する必要があります。
なお、GetActiveOleObjで同じIEオブジェクトを取得するには注意が必要です。(ヘルプ読んでください)


Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("http://www.uwsc.info/")
BusyWait()
Thread AccessCheck
Msgbox("別のページにアクセス")
// OleEvent(IE); IE.Quit() // OleEventクリア & IE終了

Procedure AccessCheck
  DIM ieAc = GetActiveOLEObj("InternetExplorer.Application")
  DIM URL
  While True
    URL=ieAc.document.url
    IfB POS("uwsc",URL)=0
      ExitExit
    EndIf
    Sleep(2)
  Wend
Fend

No.2372 2016/04/30(Sat) 17:22:32

Re: IE アクセス先のチェック / わかば
ありがとうございます。所望のことができました。

>GetActiveOleObjで同じIEオブジェクトを取得するには注意が必要です。
順番のデフォルトは最新(一番最後に起動)のものになるということですね。
取得する前に別のIEを立ち上げることはまずないので、実用上は問題なさそうです。

No.2373 2016/05/01(Sun) 00:01:25

Re: IE アクセス先のチェック / わかば
お世話になっております。

treadを使わない方法がないかと思い、fucDocCompに所定のURL以外をアクセスすると停止する
コードを追加して動作がすることができました。
しかし、SLCTBOXはfucDocComp内のExitExitでは消すことができません。
何か方策がありますでしょうか?
よろしくお願いします。

Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("http://www.uwsc.info/")
BusyWait()
SLCTBOX(SLCT_BTN, 0, "どれか選んでね", "AAAA", "BBBB", "CCCC")
//手動で別のURLにアクセス


Procedure fucDocComp()
ifb (Pos("javascript:",""+EVENT_PRM[1])=0) and ("about:blank"<>""+EVENT_PRM[1])
Pub_docc = Pub_docc + "*"+EVENT_PRM[1]+"*"
Pub_DocComp_cnt = Pub_DocComp_cnt + 1
endif
Pub_inp_flg = True

//追加したコード
DIM URL
URL=IE.document.url
IfB POS("uwsc",URL)=0
IE.quit
ExitExit

EndIf

No.2378 2016/05/07(Sat) 01:01:18

Re: IE アクセス先のチェック / しゅん
イベントから、SLCTBOXを閉じてはどうでしょうか。
IE.quitとExitExitの間に「CTRLWIN(GETID(, "TUslctBox_uwsc"), CLOSE)」で。
ただし、SLCTBOXが複数出る状況ですと、工夫が必要です。

No.2379 2016/05/07(Sat) 10:18:06

Re: IE アクセス先のチェック / わかば
ありがとうございます。うまくいきました!!
No.2380 2016/05/07(Sat) 13:51:30
UWSCで起動したエクセルのマクロが動作しない / フェアリ
UWSCでエクセル(Excel 2013)を自動起動させています。
エクセルにはマクロ(VBA)を動作させるボタンがいくつか配置されています。(購入したソフトなので中身のコード等詳細は不明)
手動でこのエクセルファイルを起動した場合は、これらのボタンが普通に動作するのですが、UWSCで自動起動させるとその後これらのボタンを押しても動作しません。
この2つの起動の仕方で何が異なるのでしょうか?
UWSCで自動起動させた場合にも同じようにマクロのボタンを押したら動作するようにしたいのですが、どうすればよいでしょうか?

No.2375 2016/05/01(Sun) 18:59:02

Re: UWSCで起動したエクセルのマクロが動作しない / Liners
>この2つの起動の仕方で何が異なるのでしょうか?
通常、差異はありません。ただし、自動起動をCreateOleObjで行っている場合は、アドイン等、外部プログラムを別途、登録・読み込む必要があります。

この操作は、結構面倒なので手動と同じ操作をさせるか、コマンドラインで起動してからGETACTIVEOLEOBJをする方が簡単でしょう。

No.2376 2016/05/02(Mon) 01:57:04

Re: UWSCで起動したエクセルのマクロが動作しない / フェアリ
なるほど、そういうものなのですね。
ありがとうございます。
まさにCreateOleObjでやっています。
「コマンドラインで起動して」というのは具体的にはどのように記述すればよいでしょう?
ど素人で申し訳ありませんが、ゴメンドウでなければよろしくお願いいたします。

No.2377 2016/05/02(Mon) 07:38:54
全727件 [ ページ : << 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 73 >> ]