[ 掲示板に戻る ]

過去ログ閲覧モード

有料版について / karin
UWSCに興味があるのですが、有料版なら
複数起動ができますか?
あと、お試しで2週間使えると思うのですが
ユーザー登録はどこでできますか?

No.1129 2015/04/12(Sun) 10:18:02

Re: 有料版について / えあり
>UWSCに興味があるのですが、有料版なら
>複数起動ができますか?


無料版と有料版の動作の違いはIEとExcelが扱えるかで、内包される機能はほぼ同一です
「複数起動」の定義の問題になると思いますが
 ・本体は多重起動できません
 ・スクリプトは同時に無限に起動できます


>ユーザー登録はどこでできますか?
ホームページの お問い合わせ に書いてありますよ

有料版の追加機能であるスクリプトのExe化は大変便利ですよ

No.1130 2015/04/12(Sun) 11:01:46
CALL制御による違い / mimin
IESetData(IE,True,"","○○")でボタンクリックを処理したいのですが、
単体ファイル(ファイル名:A.UWS)では動作するのですが、
そのファイルをCALLすると動作しません。

しかし、A.UWSにIESetDataで
フォームへの文字入力やチェックボックスの選択をしているのですが、
こちらはCALLに関係なく動作できていません。

なぜボタンクリックだけができないのか、
原因と対策を教えてください。

No.1116 2015/04/09(Thu) 18:37:19

Re: CALL制御による違い / routa
スクリプトを出さないと誰にも何にもわからないですよ。
まずはスクリプトをシンプルにて動作確認したらどうですか。

No.1117 2015/04/09(Thu) 21:52:59

Re: CALL制御による違い / mimin
//A.UWS
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.Navigate(△△)
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4
IESetData(IE,True,"","○○")//ボタン操作

でAファイル単体ならボタン操作可能ですが、

//B.UWS
CALL A.UWS

でBファイルから実行すると、IEは動作するのですがボタン操作ができません。

よろしくお願いします

No.1126 2015/04/11(Sat) 21:47:04

Re: CALL制御による違い / ある
IEの値が渡されていないからでは?

getactiveoleobjでAファイルからもIEを取得するか、
call A.uws(IE)でAに渡してあげないとダメだと思います。

No.1127 2015/04/12(Sun) 06:33:56

Re: CALL制御による違い / ある
あ、BでIEを作成していると誤解してました。
スルーして下さい。

No.1128 2015/04/12(Sun) 06:38:45
画像認識について / おっとっと
いつもお世話になっています。

UWSC本体が新しくなっていたので更新したところ画像認識ができませんでした。

UWSC4.9c→最新版

最新版から4.9cに戻したところ正常に認識できました。何か仕様が変わったのでしょうか?

No.1121 2015/04/10(Fri) 19:17:10

Re: 画像認識について / えあり
サンプルでいいので動かない部分の引数を書いてみては?
どう動かないのかがはっきりしないとバグかどうかも判断つきにくいでしょうし
仕様が変わっていたとしてもアドバイスできませんよ

No.1122 2015/04/10(Fri) 19:25:41

Re: 画像認識について / おっとっと
回答ありがとうございます。

引数と言われましてもごく簡単な
CHKIMG(Test[0],-1)
で使っています。

No.1123 2015/04/10(Fri) 19:46:13

Re: 画像認識について / えあり
//以下のスクリプトを流してみました

Dim BMP = "a.bmp"
Dim Trans[5] = "BoX","NoN","L-U","R-U","L-D","R-D"
Dim Msg

Repeat
Msg = ""
For i = -1 to 4 Step 1
  Msg = Msg + "Trans:" + Trans[i+1]
  Chk = CHKIMG( BMP, i)
  Ifb Chk = True
    Msg = Msg + " NoRange:" + G_IMG_X +","+ G_IMG_Y
    Find = CHKIMG( BMP, i, 0, 0, G_SCREEN_W, G_SCREEN_H, -1)
    Ifb Find > 0
        Msg = Msg + " ScreenRange(Find:"+Find+")"
      For j = 0 to Find -1 Step 1
        Msg = Msg + " ["+j+"]:" + ALL_IMG_X[j] +","+ ALL_IMG_Y[j]
      Next
    Else
        Msg = Msg + " ScreenRange:N/A"
    EndIf
  Else
    Msg = Msg + " NoRange:N/A"
  EndIf
  If i<> 4 Then Msg = Msg + "<#CR>"
Next
Fukidasi(Msg); Sleep(0.3)
Until GetKeyState(VK_ESC)

// 結果
// V4.5b以前 複数ヒット非対応のため検証せず
// V4.6 初回のみ全値が正常に取れるが、ループした2回目以後BOX以外の値の取得不可
// V4.7C 問題なし
// V4.9C 問題なし
// V5.03 問題なし
// V5.10 問題なし
// V5.11 問題なし

考えられる点
?@ MousOrgでUWSCの検知位置を制限してませんか?(している場合は今回非検証です)
?A 色幅検知をしていますか? (している場合は今回非検証です)
?B 画像が来るであろう位置が前もって把握しており、ピンポイントで指定していませんか?
> ver5.0.4
 > CHKIMG関数にてアプリ最大化でバックグランド時に位置が8ドットずれるパターンを修正
「最新版」をダウンロードしたタイミングがこれですと該当している可能性があります

No.1124 2015/04/10(Fri) 23:01:39

Re: 画像認識について / おっとっと
スクリプトまで組んでいただきありがとうございます。改めて以下のもので流してみました。

IFB CHKIMG("A",-1)
print "ok"
ENDIF

の簡単なものでも反応しませんでした。相性なのか個体差なのかわかりませんが、4.9cで使っていきます。検証ありがとうございました。

No.1125 2015/04/11(Sat) 07:23:05
このページでフォーム入力とボタンクリックするには? / 富士山太郎
IEで下記ページをバックグランドで操作しようと考えています。
https://www.google.com/webmasters/tools/removals
(要Googleアカウント)

・フォーム「古いコンテンツのURLを入力して下さい」に入力。
・ボタン「削除をリクエスト」をクリック。

それぞれを行うにはどうコードを書けば良いでしょうか?
ページのソースを見てもそれらしき部分が見当たらないし、
windowpicker2.uwsを使って調べてみて、自分なりにやってみましたらダメでした。

IE = GetActiveOLEObj("InternetExplorer.Application")
IE.Navigate("https://www.google.com/webmasters/tools/removals")
BusyWait(IE)
IESETDATA( IE, "てすと", "Clear value") //フォーム入力
IESETDATA( IE, True, "削除をリクエスト") //ボタンクリック

バックグランドでも確実にこれらの操作を行うには、どう書けばよいでしょうか?
よろしくお願いします。

No.1107 2015/04/07(Tue) 14:28:49

Re: このページでフォーム入力とボタンクリックするには? / ある
BusyWait()の後からです。

url="http//aaaaaaaaaaaaaaaaaaaa"
s=IEgetsrc(IE,"body")
s=replace(s,"古いコンテンツの URL を入力してください",URL)
IEsetsrc(IE,s,"body")
ID=getid("ウェブマスター")
clkitem(id,"削除をリクエスト",clk_btn)

書いておいてなんですが、↑のやり方だとURLが(黒色にならず)灰色のままだから
たぶん無効かと思います。あとclkitemは普段使うことがない上に、手動でボタンを押しても
挙動確認ができなかったので、かなり怪しいです。formは用意されていないみたいですね。

凄く原始的になりますが、ctrlwinで最大化して座標取得してkbd操作をするしか
思いつきませんでした。

No.1118 2015/04/09(Thu) 22:20:47

Re: このページでフォーム入力とボタンクリックするには? / umiumi
IESETDATA(IE, "てすと", "TAG=INPUT", "CLASSNAME=gwt-TextBox jfk-textinput HQ1MK3B-p-i")
IESETDATA(IE, True, "TAG=BUTTON", "ID=gwt-uid-28")

No.1119 2015/04/10(Fri) 00:54:10

Re: このページでフォーム入力とボタンクリックするには? / 富士山太郎
>umiumiさん

教えてくださったコードで動きました。ありがとうございます。
ページのソースの中でCLASSNAMEをJavascriptで生成しているみたいですね。
自分でもこれから解析してみます。

>あるさん

確かに中途半端にしか動きませんね。
低レベル関数だとバックグランドで操作出来ないので痛し痒しです。

でも新しい関数を覚えることが出来て感謝しています。
ありがとうございました。

No.1120 2015/04/10(Fri) 14:29:25
UWSCでExcel操作(数式入力) / 佐藤
フリー版を使ってます。
Excel2003、またはExcel2010を使います。

Excelを開き、数式を入力しようとすると
COM ERROR と表示されます。


//TEST2に数式を入れたい。

Dim Path_XL = "C:\Users\TESTUSER\Desktop\TEST1.csv"
Dim Path_2XL = "C:\Users\TESTUSER\Desktop\TEST2.csv"
FileName="TEST1.csv"
Dim o_XL = CreateOLEObj("Excel.Application")

Dim o_WB = o_XL.WorkBooks.Open(FileName := Path_XL, ReadOnly := False) // TEST1既存ファイルを開く
Dim o_EB = o_XL.WorkBooks.Open(FileName := Path_2XL, ReadOnly := False) // TEST2既存ファイルを開く 入力したいファイルのため後に開く
o_XL.Visible = TRUE // 可視状態に。
o_XL.DisplayAlerts = FALSE  // 警告やメッセージを表示しない設定

With o_XL.Activesheet
.range("H1")="日時"
.range("I1")="場所"
.range("J1")="人"
.range("K1")="物"

MSGBOX ("=VLOOKUP($B2," + FileName + "!$B$2:$HM$60000,MATCH(" + """ + "DATE" + """ + "," + FileName + "!$1$1,0)-1,0)")
   //数式がちゃんとしてるかMSGBOXで確認
.ActiveCell.value = "=rand()"//他のサイトで、上手く動くと書いてあったので、入力してみた。でもエラー。
.range("H2").value = "=VLOOKUP($B2," + FileName + "!$B$2:$HM$60000,MATCH(" + """ + "DATE" + """ + "," + FileName + "!$1$1,0)-1,0)"
.range("I2").value = "=VLOOKUP($B2," + FileName + "!$B$2:$HM$60000,MATCH(" + """ + "PLACE" + """ + "," + FileName + "!$1$1,0)-1,0)"
.range("J2").value = "=VLOOKUP($B2," + FileName + "!$B$2:$HM$60000,MATCH(" + """ + "PEOPLE" + """ + "," + FileName + "!$1$1,0)-1,0)"
.range("K2").value = "=VLOOKUP($B2," + FileName + "!$B$2:$HM$60000,MATCH(" + """ + "THERE" + """ + "," + FileName + "!$1$1,0)-1,0)"
EndWith


COM ERRORと表示されるのは、
=RAND()を入力するところです。

ためしに、VLOOKUPの「=」を外して
「VLOOKUP」→「VVLOOKUP」に変更。
そして、セルに入力された値を REPLACE をしたら
上手くいくかと思ったら、これもエラー。

セルに数式(関数)を入力したい場合、
どのようにしたら良いのでしょうか?

よろしくお願いします。

No.1113 2015/04/09(Thu) 11:38:20

Re: UWSCでExcel操作(数式入力) / stuncloud
valueではなくFormula
No.1114 2015/04/09(Thu) 13:35:58

Re: UWSCでExcel操作(数式入力) / 佐藤
stuncloudさんありがとうございます!

Fomulaなんですね!
試してみます・・・!

VBAを主軸?にして作ったらとても作業が楽になってしまいました。
(VBA→UWSC起動→UWSC終了→VBA)

今後、UWSCのみで動かしたいときはFomulaだったということを忘れずに
使わせて頂きます^^ ありがとうございました!

No.1115 2015/04/09(Thu) 16:23:26
複数のPEEKCOLOR取得について / ターボ
最近はじめたばかりの初心者です。
座標指定して色の検出を行っているのですが、10箇所の検出で何箇所あったかはできたのですが何番目と何番目というような取得の方法がわかりません。

配列をどのように使ったら何番目と何番目というような取得ができるのかご教授おねがいします。

No.1108 2015/04/07(Tue) 18:45:56

Re: 複数のPEEKCOLOR取得について / Nagatani
これで合っているのでしょうか?

DIM LonI1,StrColor[10],StrX[10],StrY[10]
LonI1=1
WHILE !GETKEYSTATE(VK_ESC)//ESCで終了
 FUKIDASI(LonI1 +"回目 Shift + Clickで取得:Escで終了")
 IF (GETKEYSTATE(VK_SHIFT) AND GETKEYSTATE(VK_LBUTTON)) THEN
  StrX[LonI1]=G_MOUSE_X
  StrY[LonI1]=G_MOUSE_Y
  StrColor[LonI1] = PeekColor(StrX[LonI1], StrY[LonI1])
  sleep(1)
  LonI1=LonI1+1
  WHILE GETKEYSTATE(VK_LBUTTON); WEND
 ENDIF
WEND

FOR LonI2 = 1 TO 10
 IF StrX[LonI2]="" THEN BREAK
  PRINT LonI2 + "回目 X " + FORMAT(StrX[LonI2],4) + " Y " + FORMAT(StrY[LonI2],4) + _
  " Color " + FORMAT(StrColor[LonI2],8)
NEXT

No.1109 2015/04/07(Tue) 22:13:17

Re: 複数のPEEKCOLOR取得について / ターボ
Nagatani様回答ありがとうございます。

指定した色があったらその番号を取得したくて質問させていただきました。
こちらが書いたスクリプトもなく、また、稚拙な文章で意図が伝わりにくいにもかかわらず回答いただきまして本当にありがとうございます。

x = ID_X+300 //基準座標x
y = ID_Y+300 //基準座標y
FOR i = 1 to 10
x = x+50
y = y+50  
  RGBcolor(x,y) //色
  IF ←-------ここの書き方がわかりません
NEXT

FUNCTION 判定()
RESULT = FALSE
IFB R > 180 and R < 200 and (R > G and R > B) THEN
RESULT = TRUE
ENDIF
FEND

たとえば、RGBcolorと判定()が2回目、5回目、9回目で同じだった場合
OK[]配列に2,5,9と取得したいと考えています。

よろしくお願いします。

No.1110 2015/04/08(Wed) 08:42:28

Re: 複数のPEEKCOLOR取得について / ターボ
自己解決しました。
ありがとうございました。

No.1112 2015/04/09(Thu) 11:08:46
プログラムの何処にバグ?があるのか分からない / まろん
何度も色んな質問してすみませんorz

シフトキー+クリック(ドラッグ)で範囲指定
その際、ファイル名を決める。
ファイル名をCSV書き出し。(できれば、座標も一緒に出したい)

ALTキーで、画像保存。
ファイル名を選択します。

上手く行かない点
1.ファイル名入力画面が2度出る。
2.CSVに書き込むのが思ったように行かない。
(作成したパターン?を全て書き出したい)
(何故か、数字の「1」「2」が入力される)
3.シフト+ドラッグ を3回やると
 書き込みエラー?が出る

今も試行錯誤を繰り返していますが、
中々上手く行きません。
改善点等、よろしくお願い致します!

2015年04月06日 18時15分〜2015年04月09日 18時15分
https://free.filesend.to/filedn_infoindex?rp=0941863063852d54d022a4e896b3bbfo

No.1100 2015/04/06(Mon) 17:17:20

Re: プログラムの何処にバグ?があるのか分からない / えあり
//うまくいかない点を考慮しつつ読み解こうとするとかなり骨が折れるので
//まるっと作り変えてしまいましたがこんな感じでどうでしょう
//一つ一つのロジックが読み解きやすいように機能を関数ごとに分割してみました

Public SaveDir = GET_CUR_DIR //ファイルパス(とりあえず、UWSファイルあるとこにする)
Public ListFile = SaveDir + "\まとめ.csv"

Public Dim Files[0] // [0]大事
Dim Range
Dim FileName

/////////////////////////////////////メインここから
If FOpen(ListFile, F_Exists) Then GetList() // 既存ファイルリストの読込

Repeat
  Ifb GetKeyState(1) and GetKeyState(VK_Shift)
   Range  = GetRange()  // 範囲指定
   FileName = SetFileName() // ファイル名決定
   PutList(FileName, Range) // 画像保存
   While GetKeyState(1) and GetKeyState(VK_Shift); WEnd // キークリックを初期化
  EndIf

  If GetKeyState(VK_Alt) and Length(Files) > 1 Then SaveImage(SelectFile()) // ALTキーをトグルとして画像保存
Until GetKeyState(VK_Esc)
/////////////////////////////////////メインここまで

//既存ファイルをリストから読込
Procedure GetList()
  ListID = FOpen(ListFile, F_Read)
  ReSize(Files, FGet(ListID, F_LineCount))
   For i = 1 to ReSize(Files)
    Files[i] = FGet(ListID, i, 1)
   Next
  FClose(ListID)
  Msg( ReSize(Files) +" 行を読み込みました<#CR>最後の行:" + Files[ReSize(Files)] )
FEnd

// シフトキー+クリック(ドラッグ)で範囲指定
Function GetRange()
  Dim Mouse[4]
  Mouse[0] = G_Mouse_X; Mouse[1] = G_Mouse_Y    // マウスの位置を保存(始点)
  While GetKeyState(1) and GetKeyState(VK_Shift); WEnd // Shiftキーが離されるorドラッグ終了時を判別
  Mouse[2] = G_Mouse_X; Mouse[3] = G_Mouse_Y    // マウスの位置を保存(終点)
  Ifb Mouse[0] > Mouse[2] //マウスの動きが逆の時に始点終点を入替 x軸
   Mouse[4] = Mouse[0]; Mouse[0] = Mouse[2]; Mouse[2] = Mouse[4]
  EndIf
  Ifb Mouse[1] > Mouse[3] //マウスの動きが逆の時に始点終点を入替 y軸
   Mouse[4] = Mouse[1]; Mouse[1] = Mouse[3]; Mouse[3] = Mouse[4]
  EndIf
  Result = Mouse[0] +","+ Mouse[1] +","+ (Mouse[2] - Mouse[0]) +","+ (Mouse[3] - Mouse[1]) // 絶対座標から幅高に変換
  Msg(Result)
FEnd

//その際、ファイル名を決める。
Function SetFileName()
  Result = ""
  Repeat;  Result = Input("ファイル名を決めて下さい", Result)
   If Result = -1  Then Result = "" // ×を押されたら空欄と判断
   If Result = ""  Then Continue // 空欄ならもう一度
   For i = 1 to ReSize(Files) // リスト参照して重複チェック
    If Result = Files[i] Then Result = "" // 重複ならファイル名無しと同じ事にする
   Next
  Until Length(Result) > 0
  Msg("ファイル名:" + Result)
FEnd

//ファイル名をCSV書き出し。(できれば、座標も一緒に出したい)
Procedure PutList(FileName, Ranges)
  Files[ReSize(Files, Length(Files) + 1)] = FileName // 重複比較用配列サイズを増やすついでに配列に格納
  FileID = FOpen(ListFile, F_Read or F_Write) // ファイル名と保存したい位置をファイルに保存
   FPut(FileID, FileName +","+ Ranges)
  FClose(FileID)
  Msg(FileName +","+ Ranges)
FEnd

//ALTキーで、画像保存。
Procedure SaveImage(FileInfo)
  FileName = Copy(FileInfo , 1, PoS(",", FileInfo) - 1) // 保存メッセージが不要ならこの処理も不要
  SaveImg( Token(",", FileInfo), 0, Token(",", FileInfo), Token(",", FileInfo), Token(",", FileInfo), Token(",", FileInfo), False, 70, IMG_Fore )
  Msg(FileName + " に保存しました")
FEnd

//ファイル名を選択します。
Function SelectFile()
  File = -1 // ファイル名の未選択状態を-1と仮定
  If ReSize(Files) = 1 Then File = Files[1] // 保存ファイル名が1つしか決まってなければ即決定
  While File = -1 // ファイル名が決定するまでループ
   File = SlctBox(Slct_Cmb + Slct_Str, 0, "保存ファイル名を選んでね!", Files)
  WEnd

  FileID = FOpen(ListFile, F_Read) // ファイル名が決まったらリストファイルから保存位置を読み込み
   For i = 1 to FGet(FileID, F_LineCount)
    If Length(Result) > 0 Then Break // 保存位置の抜き取りが成功していたらそれ以上詮索しない
    If FGet(FileID, i, 1) = File Then Result = FGet(FileID, i) // ファイル名とリストファイルが一致したら情報抜取
   Next
  FClose(FileID)
  Repeat; Until GetID("","TUslctBox_uwsc") // ファイル名選択ダイヤログが消えるまで待機
  Msg(Result)
FEnd

//メッセージ用。不要な場合はコメントアウトで
Procedure Msg(Str)
  Fukidasi(Str)
FEnd

No.1101 2015/04/07(Tue) 02:02:23

Re: プログラムの何処にバグ?があるのか分からない / まろん
えあり様、
回答ありがとうございます。

座標までしっかり取れて…凄いです!
解読に時間がかかりそうです(笑

ざっくりと見たのですが、
画像の上書き保存は禁止にしたいと思っているので、
1度使ったキーワードの削除?をしたいと思っています。
(同じキーワードを入れたときも、エラーを出し再度入力を促そうかと…)
教えて頂いたコードを元に、もう少し自分で色々考えてみます^^

色々と説明不足なのに、
ここまで作っていただき、ありがとうございました!!

No.1106 2015/04/07(Tue) 14:17:41
wend から while true に戻ってくれない。 / 赤い恋人
当方、超初心者です。いつも便利に使わしていただいています。
エクセルで四ケタのパスワードが掛かっているのを外したいと思い、色々やっているのですが、
1回目のパスワード入力で違っていたら、パスワードは間違っていますと言うエクセル側の
メッセージをOKして再度そのエクセルファイルを起ち上げ、次のパスワードを入力する、
と言う方法でパスワードを見つけたいのですが、wend から while true に戻ってくれません。
doscmd の次で止まってしまいます。
どこが間違っているのか、どなたかお願いします。

n=1
while true
print n+"番目です。"

id=getid("パスワード")
ifb id>0 then
pw=input("パスワードを入力して下さい。")
sendstr(id,pw)
sckey(id,vk_enter)

id=getid("Microsoft Excel")
ifb id>0 then
print pw+"は違います。"
clkitem(id,"ok")
//---------------------------
doscmd("C:\……●●●.xlsx")
//----------------------------
else
print "パスワードは"+pw+"です。"
exitexit
endif

n=n+1
wend

endif

No.1102 2015/04/07(Tue) 10:40:39

Re: wend から while true に戻ってくれない。 / yanyan
使用目的が、パスワード探しとはあまり感心できませんが、

whileとwend、ifbとendifが入れ子になっていませんね。
構文エラーとすべき内容ですが、エラー検出の漏れでしょうか?

No.1103 2015/04/07(Tue) 11:54:10

Re: wend から while true に戻ってくれない。 / 赤い恋人
お客さんから送られてくるファイルを使って色々と
作業をするのですが、その中にたまたまパスワードが掛かっているものが
あるのです。通常はお客さんに電話して教えて貰うのですが、
最近はそれが面倒になってきました。別にパスワードを掛けて業者に
渡す必要も無いと思うのですが、最近はそう言うのが増えてきました。
お客さんからパスワードを電話で聞くのも芸がないかなとも思う様になり、
この様な事になりました。別に悪いことに使おうとしているのではありません。
基本が出来ていないために入れ子の意味さえ分からないのですから
悪いことなど出来るはずもありません。

No.1104 2015/04/07(Tue) 13:34:21

Re: wend から while true に戻ってくれない。 / yanyan
パスワード探しはお任せするとして、
今回の例では、whileとifの入れ子(制御文のネスティング)が下記のようになっているのでは
ないかと思います。インデントを入れると入れるとわかりやすい。

while
 ..
 ifb then
  ..
 endif
..
 ifb then
   ..
  else
  ..
 endif
..
wend

No.1105 2015/04/07(Tue) 13:55:34
画面キャプチャーのタイミングが合わない / まろん
先日はお世話になりました。
先日教えて頂いたプログラムを参考に、
作りたかったものを作ってみました。

HASHTBL ALLFILENAME = HASH_CASECARE
Dim BEFORENAME = "テスト", FNAME, MSG
FPATH=GET_CUR_DIR//ファイルパス

Repeat
Ifb GetKeyState(VK_SHIFT) AND GetKeyState(VK_LBUTTON)//SHIFT
MSG = "保存するファイル名を入力して下さい"
Repeat
FNAME = Input(MSG, BEFORENAME)
MSG = "違うファイル名を入力して下さい"
Until ! ALLFILENAME[FNAME, HASH_EXISTS]
If NAME = "" Then Continue // キャンセル処理のタイミングは任意で。
BEFORENAME = FNAME
ALLFILENAME[FNAME] = FNAME
Elseif GETKEYSTATE(VK_ALT)=TRUE//ALT
REPEAT
SLEEP(0.1)
UNTIL GETKEYSTATE(VK_ALT)=FALSE//ALT離すまでSLEEP

REPEAT
SELFILENAME=SLCTBOX(SLCT_CMB+ SLCT_STR,0,"保存ファイル名を選んでください。",ALLFILENAME)
UNTIL SELFILENAME<>-1//キャンセル選ばなくなるまで

SLEEP(2)
SAVEIMG(FPATH +"\image\"+SELFILENAME, 0, , , , , , 70,IMG_FORE)//★画像保存★
DUMMY=ALLFILENAME[SELFILENAME,HASH_REMOVE] //この項目名使い終わったから削除
EndIf

Sleep(0.2) // 負荷軽減
Until GetKeyState(VK_ESC)

画面キャプチャーを撮る前に、
保存するための名前を選択しているのですが、
選択するのに時間がかかってしまうのか
保存された画像を見てみると、SLCTBOXも撮っています。

SLCTBOXを選択し終わった後に、画面キャプチャーを撮りたいのですが
どうしたらいいでしょうか?

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

No.1097 2015/04/06(Mon) 10:52:29

Re: 画面キャプチャーのタイミングが合わない / えあり
>UNTIL SELFILENAME<>-1//キャンセル選ばなくなるまで
>
>SLEEP(2)


このSleepはウインドウが消えるまでの措置でしょうか、とするなら

REPEAT; UNTIL GetID("","TUslctBox_uwsc")

これに変えればいいんじゃないでしょうか


ウインドウを確実に操作する際には、そのウインドウが出ているか・消えたか
(同じウインドウで変化する場合はSTATICSやボタン名があるかどうか)
を確実に取得してから次に行った方が、全体的な動作の安定につながりますよ

No.1098 2015/04/06(Mon) 14:25:46

Re: 画面キャプチャーのタイミングが合わない / まろん
えあり様
回答ありがとうございます。

TUslctBox_uwsc というのを初めてみました…。
上手く行きました・・・! 助かりました!! ありがとうございました^^

No.1099 2015/04/06(Mon) 16:23:24
UWSC Ver5.1.1 / umiumi
POWERSHELL関数にて 文字化けするパターンがあるのを修正
COMの関数に 空文字を使用した時に エラーが出るパターンがあるのを修正
低レベル記録にて 画面のDPIスケーリングが100%以外の時にマウス位置がずれるのを修正
BALLOON関数にて 透明化が指定された時に正しいサイズで表示されないパターンがあるのを修正
MOUSEORG関数にて MORG_FOREが指定された時にアプリがマイナス側にあるとズレが出るのを修正
64bitアプリの リストビュー操作に対応できていなかったパターンを修正
SENSOR関数に 位置取得する SNSR_LOCATION_* を付けた
MONITOR関数に モニター名を返す MON_NAME を付けた
QSORT関数に 自然順ソートをするモードを付けた
OPTION指定に STOPボタンウィンドウを最前面固定するオプション TOPSTOPFORM を付けた
Pro版:
CREATEFORM関数にて タスクバーにアイコンを出さない FOM_NOTASKBAR を付けた

No.1096 2015/04/06(Mon) 05:53:16
全1170件 [ ページ : << 1 ... 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ... 117 >> ]