[ 掲示板に戻る ]

過去ログ閲覧モード

指定フォルダの画像選択(ピクセル)→削除 / world
全くの初心者です。

いろいろ模索しておりましたがわからずご教授お願い致します。

今回指定フォルダの画像選択(ピクセル)→削除の件ですが

ある特定のフォルダ内の画像サイズ(例:300×300以下のピクセルは全て削除)というような
プログラムを作りたいのですがどのように書いたら宜しいでしょうか。



while True
if GETKEYSTATE(VK_ESC) then exit // ESCキーで終了
ifb CHKIMG("check.bmp") // 画像があった
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) // 左クリック
break
endif
ifb PEEKCOLOR(320, 320) = $00FF00 // 指定ピクセルが緑
KBD(VK_SPACE) // スペースキー
break
endif
sleep(1)
wend

こちらのスクリプトを応用するのでしょうか?

*指定したいのはファイルサイズ(削除のため)のみです。


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

No.3007 2016/10/06(Thu) 11:04:00

Re: 指定フォルダの画像選択(ピクセル)→削除 / 俄プログラマー
//画像ファイルのピクセルサイズ取得(ファイル情報より取得)
//参照元より少し変更しています。
//
//参照元:http://nymemo.com/uwsc/867/

//エクスプローラの詳細情報を得る
dim o_Shell = CreateOleObj("Shell.Application")
dim s_dir   = get_cur_dir

//このファイルと同じフォルダにあるものとする
dim s_fileName = "test.jpg"

//NameSpace(名前空間)でフォルダオブジェクトを作る
dim o_folder = o_Shell.NameSpace(s_dir)

//ParseNameで指定されたアイテムの FolderItem オブジェクトを作成し返す。
//FolderItem とは、フォルダに含まれる個々のファイルやフォルダのこと。
dim o_item  = o_folder.ParseName(s_fileName)

dim i = 31 //長さを参照するための番号win10の場合。必要に応じて変更

//GetDetailsOfメソッドでフォルダ内のアイテムについて詳細を取得。
dim s_columName = o_folder.GetDetailsOf(emptyparam, i)
dim s_value   = o_folder.GetDetailsOf(o_item, i)
s = i +" : "+ s_columName +" = "+ s_value
print s


以下ヘルプファイルを参照して考えてみてください。
ファイルの削除:DELETEFILE
ファイル名の取得:GETDIR

一度に全てを行おうとせずに、先ずは上の例で動作テストを行い
ピクセル情報が取得できたなら次のステップへ進みましょう。

No.3013 2016/10/06(Thu) 18:37:47
IESetData(IE,True,"","on",2) // CHECKBOX について / 小林健治
最近ライセンス購入しまだ慣れていない者ででございます。
ご教授お願いいたします。

IE11を使用しています。
JavaScliptで書かれたリスト構造の一覧があります。
200項目まで表示されているものです。
RecIEを使用して記録を取り(チェックBOXのクリック)再生してもチェックのON/OFFがききません。

Java Access Bridge for Microsoft Windows Operating System 2.0 をインストールしてください

とHELPに記載されています。HELPの下の方には
・ accessibility.properties を C:\Program Files (x86)\Java\jre7\lib へコピー
・ access-bridge.jar、jaccess.jar を C:\Program Files (x86)\Java\jre7\lib\ext へコピー
・ JavaAccessBridge.dll、JAWTAccessBridge.dll を C:\Program Files (x86)\Java\jre7\bin へコピー
と記載されていますが、私のPCのフォルダは以下ののようにバージョンが違います。

コピー先 C:\Program Files (x86)\Java\jre1.8.0_101
ファイル日付も新しい状態です。

それでも、Java Access Bridge for Microsoft Windows Operating System 2.0 のコピーは必要でしょうか?

以上、
 

No.2999 2016/10/05(Wed) 17:24:57

Re: IESetData(IE,True,"","on",2) // CHECKBOX について / stuncloud
> JavaScliptで書かれたリスト構造の一覧があります。
JavaScliptはtypoだとして、JavascriptとJavaは別物なんですがJavaで作られたページということで良いでしょうか?
そうである場合は以下に続きます、そうでない場合は別途回答します

> それでも、Java Access Bridge for Microsoft Windows Operating System 2.0 のコピーは必要でしょうか?
はい
ただ、今でも使えるのかどうかはわかりませんが…
使えるのであれば
> コピー先 C:\Program Files (x86)\Java\jre1.8.0_101
の中の然るべきフォルダにそれぞれのファイルを配置すれば良いかと思います

それとこの場合はiesetdataではなくclkitemを使うことになります

No.3000 2016/10/05(Wed) 18:05:14

Re: IESetData(IE,True,"","on",2) // CHECKBOX について / 小林健治
stuncloud さん
フォローありがとうございます。

結果から言いますと、Value指定が正しくなかたようです。
IE起動中にF12で立ち上がる「開発者ツール」の使い方を他者から聞きました。
確認したところ以下のValueでした。

IESetData( IE, True, "", "id=ctl00_content_TableView_0_1" ) // checkbox No.1

ご協力ありがとうございました。

No.3012 2016/10/06(Thu) 14:47:15
【エクセルでの行の指定】 / myuu
【エクセルでの行の指定】

エクセルのA1からA4000までを選択&コピー&貼り付け行いたいです。

その選択方法について教えてください。
以下のように選択することを考えましたが、B列、C列・・・・SG列と500個位同じ動作を繰り返す際に、列の指定が
難しくなります。
 EXCEL.Range("A1:A4000").Select


XLGETDATA(Excel,"A1:SG4000")と一度に全部取得することも考えましたが、取得データを貼り付ける際に、1マスづつの貼り付け
となり時間がかかりNGとしました。(KBD関数でコピー&貼り付けを行いたいです)

そこで、列をアルファベットではなく、数値で指定し、任意の範囲を選択出来ないでしょうか。

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

No.2987 2016/10/02(Sun) 16:43:37

Re: 【エクセルでの行の指定】 / 俄プログラマー
RangeではなくCellsを使います。
Excelの事なので詳しくはWebで使い方を調べてみてください。
例はたくさんあります。

No.2988 2016/10/02(Sun) 19:20:20

Re: 【エクセルでの行の指定】 / myuu
>俄プログラマー
解決しました(>_<)
大変ありがとうございます(^^)/

No.3003 2016/10/05(Wed) 22:49:55
クリックしたいのですが / カニ
<li class="left">
<span class="answer-select">

このソースをクリック出来ますか?

No.2938 2016/09/27(Tue) 07:52:49

Re: クリックしたいのですが / まるぱ
まずは一度試してみましょう
DOM操作で。
ヒントはつぎのとおりです

Ele = IE.document.getElementyByTagName("span")
for i =0 to Ele.length -1
CN = Ele.item(i).ClassName
if CN = "answer-select"
Ele.item(i).click()
break
endif
next

No.2941 2016/09/27(Tue) 09:06:24

Re: クリックしたいのですが / カニ
ご回答ありがとうございます


申し訳ありません、文章と説明が抜けていたので、補足します

<li class="left">
<span class="answer-select">
<img src="/assets/img/xxxxx/xxxxx/NT_xxxxxx_image18.png">


このサイトでは選択肢は複数あり、全てのソースは上記の通りです

そして、このソースに載っているimage18の部分も全て同じです

IESetData(IE,True,"","src="http://loqz-cdn.xxxx.jp/assets/img/xxxxx/xxxxx/NT_xxxxx_image18.png")

上記のようにプログラムを組むと、正常に選択してくれないのですが、どうすればよいのでしょうか?

No.2974 2016/09/30(Fri) 00:46:17

Re: クリックしたいのですが / まるぱ
ヘルプをよく読みましょう
戻値 = IESETDATA( IE, 値, Name, [Value, 番号] )

※ 第三引数に"TAG=IMG"が指定された場合には、第四引数には画像のパスの指定が可

No.2978 2016/09/30(Fri) 22:48:30

Re: クリックしたいのですが / カニ
ご回答ありがとうございます

返信が遅れて申し訳ありません、無事解決出来ました


重ねてお礼申し上げます

No.2998 2016/10/04(Tue) 16:48:30
何度もchkimg のループを実行する時のデータ呼び出しについて / masaki
while true
if chkimg("test.bmp") then
処理1
else
処理2
endif
sleep(0.1)
wend

とした場合に画像データはchkimgが実行される度に読み込みを行っていますか?
それともメモリ上にキャッシュされ画像データの読み込みは一度だけですか?
上記の例の場合1秒間に10回(実際にかかる時間は考慮せず)も読み込んでいるのかと疑問に思いました。

No.2981 2016/10/01(Sat) 10:00:42

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / まるぱ
while true
msgbox("test.bmpを入れ替えて下さい")
if chkimg("test.bmp") then

と変更して、メッセージボックスでOKを押す前に
test.bmpの画像を他の画像に入れ変えれば

その答えが出ますね。

他の画像(名前はtest.bmpにする)に入れ替えても処理1なら「画像データの読み込みは一度だけ」と考えていいのではないでしょうか?


疑問>実験>結果から考察>次の実験>結果から考察、、、、

No.2984 2016/10/01(Sat) 21:42:02

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / koi
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=534
でのumiumiさんの書き込みによると
BMPはUWSC内部でキャッシュしているので毎回読みには行きません。
ということのようです

No.2986 2016/10/02(Sun) 04:16:15

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / しゅん
回答でなくて申し訳ないですが、、、
koiさん、まるぱさんの意図を汲んでも良かったのではないでしょうか。
飢えている人に魚を与えるより、釣り方を教えた方が良いケースは多いかと思います。

masakiさん、スクリプトにPRINT文を適宜入れ、時間とログを取るようにすると、その手の疑問は解消しますよ。
いつ画像データを読むかも想像できるようになります。

No.2990 2016/10/03(Mon) 00:18:56

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / masaki
まるぱ様、koi様ご返信ありがとうございます。
先ず、まるば様の方法で試してみました。
結果は画像入れ替えで入れ替えた反応がでました。
つまり再読込がされている事になります。
続いてkoi様の過去の投稿にもある通り毎回読まないとumiumi様のご回答で確認致しました。
画像が変われば再読込をして画像がそのままであれば再読み込みしないと言う事で宜しいでしょうか?
それとも毎回読み込みを行っているのか少々混乱しております。
しゅん様ご返信ありがとう御座います。おっしゃる通りですが内部的要素を含むため今回質問させて頂きました。これはUWSCを作った側でしか判らないと判断しました。

No.2992 2016/10/03(Mon) 09:47:44

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / umiumi
>画像が変われば再読込をして画像がそのままであれば再読み込みしないと言う事で宜しいでしょうか?
そうです。

No.2994 2016/10/03(Mon) 21:37:02

Re: 何度もchkimg のループを実行する時のデータ呼び出しについて / masaki
umiumi様
おかげさまで疑問がすっきり解決しました。
ありがとうございました。

No.2996 2016/10/04(Tue) 08:29:08
特定のファイルをzipさせたい / taku
フォルダの中にある特定の複数のファイルをzip圧縮させたいのですが、

そもそもUWSCでzip圧縮する方法が分かりません。

分かる方いらしたら、ご教授くださいませ。

No.2982 2016/10/01(Sat) 15:09:01

Re: 特定のファイルをzipさせたい / Nagatani
Lhaplusであれば下記の通りです。

EXEC("<#DBL>C:\Program Files (x86)\Lhaplus\Lhaplus.exe<#DBL> /O:C:\Users\xxxxxxxx\Documents /C:zip C:\Users\xxxxxxxx\Documents\book1.xlsx",True)

No.2983 2016/10/01(Sat) 18:41:56

Re: 特定のファイルをzipさせたい / satocha
カレントディレクトリに"empty.zip"を作り、そこに圧縮する場合

sha = CreateOleObj("Shell.Application")
powershell( "Set-Content -path empty.zip -value (<#dbl>PK<#dbl> + [char]5 + [char]6 + (<#dbl>$([char]0)<#dbl> * 18)) -ErrorAction Sto" )
zip=sha.NameSpace("empty.zip")
zip.CopyHere(圧縮したいフォルダやファイルのパス)


このあと、zip.CopyHereでいくらでもファイルやフォルダを追加できます

No.2985 2016/10/02(Sun) 04:11:15

Re: 特定のファイルをzipさせたい / stuncloud
powershell()関数を使うのがアリで、さらにWindows 10であればCompress-ArchiveというCmdletでzipファイルが作れますよ
例: jpgファイルだけをjpg.zipに圧縮
cmd = "Get-ChildItem .\folder\*.jpg | Compress-Archive -DestinationPath jpg.zip"
powershell(cmd)

No.2993 2016/10/03(Mon) 10:27:14
data URI Scheme用のBase64エンコード / まるぱ
最近よくこの掲示板を覗かせてもらってます。
今日やりはじめて、うまくいかないのでご存じの方教えていただけますでしょうか?

しゅんさんのページ
http://d.hatena.ne.jp/junjun777/20140428/powershell_base64

ここにある方法
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes('$path'))
これをPowerShellで実行。

で画像をdata URI Scheme用のBase64エンコードしてみましたが、
MSXML2.XMLHTTPでPOSTしたところサーバーからエラー500が返ってきました。

そもそも
これは URI Scheme用なのでしょうか?

これが合っているのならエラーが出る原因は他にあることになります.
アドバイスよろしくお願い致しますm(- -)m

No.2979 2016/09/30(Fri) 22:59:05

Re: data URI Scheme用のBase64エンコード / まるぱ
自己解決しました。この方法であっていました。
あとはさらにURLエンコードしたりする必要がありました。

No.2980 2016/10/01(Sat) 08:53:39

Re: data URI Scheme用のBase64エンコード / しゅん
ちなみに、Base64エンコードには、以下の方法もあります。
http://d.hatena.ne.jp/junjun777/20120827/file_to_uwsc_script
Base64変換部分を取り出すのは面倒かもしれませんが。
#POWERSHELL関数は遅いですからね、、、。

No.2991 2016/10/03(Mon) 00:20:45
IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
IE11にアップデート後、サイト上でボタンやテキストリンクを押しても反応がなくリンク先に飛ばなくなりました。UWSCの掲示板で投稿するのはいかがなものかなと思いましたが、すごく困っています。
助けて頂けないでしょうか?
試した事は、IEのインターネットオプションで保護モード解除、セキュリティーレベルを一番低くしてみた、互換表示設定でURL登録です。
環境は、WINDOWS7を利用しています。

No.2937 2016/09/27(Tue) 06:02:08

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しろまさ
まずはIEのリセットとPCの再起動
https://support.microsoft.com/ja-jp/kb/923737

No.2940 2016/09/27(Tue) 08:26:54

Re: IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
しろまさ様、IEのリセットとPCの再起動をしてみましたが、改善はないです。
gifの画像で症状をスクリーンショットしてみました。

https://gyazo.com/fb5e4bd24a9a6839c6de80f9689c3d9d

No.2946 2016/09/27(Tue) 12:24:53

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しろまさ
マルウェアのチェックをしてみる。
http://www.geocities.co.jp/Playtown-Yoyo/6130/notes/malwarebytes-anti-malware.htm
https://www.malwarebytes.com/mwb-download/

No.2949 2016/09/27(Tue) 16:38:36

Re: IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
しろまさ様、マルウェアのチェックをしても改善なかったです。IE11ボタン押せないとかで検索しても、私と同じ症状になってる人いないみたいでお手上げ状態です。
No.2950 2016/09/27(Tue) 20:54:10

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しゅん
画像を見ると、リンクの色が変わっているので、押せているように思えます。
押せているけど、遷移しない、、、。
シスイさんの環境で再現する、最小のスクリプトを提示していただけますでしょうか。

No.2958 2016/09/28(Wed) 08:50:31

Re: IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
しゅん様、スクリプトですがbtnでクリックしようとした所、画面遷移がしないと事が判明しました。そこで、手動でマウスでクリックしても画面遷移がしません。ローカル環境だと画面遷移してくれます。この症状で、1週間つぶれてしまいました。
No.2960 2016/09/28(Wed) 09:25:50

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しろまさ
> 手動でマウスでクリックしても画面遷移がしません。
> ローカル環境だと画面遷移してくれます。

この違いをもう少し具体的に詳しく教えて下さい。

No.2962 2016/09/28(Wed) 10:20:28

Re: IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
しろまさ様、下記のスクリーンショットで撮ったgifの画像を見てみて下さい。
ローカル環境のワードプレスのログインだとログインボタンが押せて画面遷移します。
一方のローカルではない場合だと、ログインボタンが押しても画面遷移されません。

[ローカル環境]
https://gyazo.com/e92b649e4de69c5c58818232b6dd17b7

[ローカルではない場合]
https://gyazo.com/b6918ac72538b2d6c210a0cf3a9e4064

No.2965 2016/09/28(Wed) 13:46:14

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しゅん
自PCにサーバーをたてて、wordpressを動かすとクリックできるけど、インターネット越しになるとできなくなる、ということだとすると、インターネットオプションのセキュリティ設定に何かありそうですね。
ためしに該当URLを信頼済みサイトにしたらどうなりますでしょうか?
また、インターネット越しの場合、他のブラウザー(FireFox等)では、クリックできるのでしょうか?

No.2967 2016/09/28(Wed) 17:13:11

Re: IE11にアップデート後、ボタンを押しても反応がないについて / シスイ
できたぁ〜〜〜〜〜〜〜〜しゅん様本当にありがとうございます。
このゾーンのサイトにはすべてサーバーの確認(https:)を必要とするにチェックが入っていたのを外して信頼済みサイト追加に登録したら画面遷移できました。
IE11をアンインストールしようとしても、パソコンで制限されているとかあって八方塞がりだったんです。
UWSCでできる事を色々勉強してきて可能性が拡がってきたと思っていた所に今回の問題で、代替案を考えていたのでホントに助かりました。

No.2968 2016/09/28(Wed) 19:00:08

Re: IE11にアップデート後、ボタンを押しても反応がないについて / しゅん
おめでとうございます。
ただ、しろまささんのアシストあっての解決ということを忘れないでくださいね。

#多分、特殊な環境で、こういうことが起きるのか。
#グループポリシーとかかしらん。

No.2989 2016/10/03(Mon) 00:12:40
DOSCMD関数のCDコマンドが動作しない / kch6
いろいろな方のブログを参考にDOSCMD関数を使ってカレントディレクトリを変更しようと

DOSCMD("CD " + path)(pathはディレクトリ名)

としてもディレクトリが変更できないのですが、私だけなのでしょうか?

DOSCMD関数を使ってカレントディレクトリを変更できないので、カレントディレクトリを変更したいときに

WshShell = CreateOleObj("WScript.Shell")
WshShell.CurrentDirectory = path

としているのですが、ほかにうまい方法があればご教授願いたいと思います。よろしくお願いします。

No.2971 2016/09/29(Thu) 14:33:13

Re: DOSCMD関数のCDコマンドが動作しない / stuncloud
textblock cmd
cd
cd C:\Windows\
cd
endtextblock

print doscmd(cmd)

として試してみました
cdだとディレクトリを移動しませんね
cdではなくpushdにしてみたらコマンドプロンプト内での作業ディレクトリは変更できました
しかしそれはあくまでdoscmd実行中のコマンドプロンプト内だけで、UWSC側には影響がないようです

> WshShell = CreateOleObj("WScript.Shell")
> WshShell.CurrentDirectory = path


が一番手間なく変更できる手段だと思いますよ

No.2972 2016/09/29(Thu) 15:27:56

Re: DOSCMD関数のCDコマンドが動作しない / kch6
stuncloudさん、早速のお返事ありがとうございました。参考になりました。
No.2973 2016/09/29(Thu) 18:28:17

Re: DOSCMD関数のCDコマンドが動作しない / しろまさ
APIもありますよ。

DEF_DLL SetCurrentDirectoryA(String) :Long :kernel32 // カレントディレクトリ変更
SetCurrentDirectoryA("C:\")

No.2976 2016/09/30(Fri) 10:45:56

Re: DOSCMD関数のCDコマンドが動作しない / kch6
しろまささん、ありがとうございました。勉強になりました。
No.2977 2016/09/30(Fri) 12:10:45
Re:IEのソースをコピー / リズ
id = GETID("Google Chrome","Chrome_WidgetWin_1",-1)
SCKEY(id,VK_F6)

msgbox("転載したいURLを選択してからOKを押してください")

SCKEY(id,VK_CTRL, VK_C)

url = GETSTR(0)

ie = createOLEobj("InternetExplorer.Application")
ie.Visible = True
ie.navigate(url)
BusyWait(ie)

ie2 = getid("Internet Explorer","IEFrame")
SCKEY(ie2,VK_CTRL, VK_A)

ie3 = GetActiveOLEObj("InternetExplorer.Application")
ctrlwin(hndtoid(ie3.hwnd), ACTIVATE)

selection = ie3.document.getSelection()
if selection.rangeCount then
 range = selection.getRangeAt(0)
 content = range.cloneContents()
 elem = ie3.document.createElement("div")
 elem.appendChild(content)
 // クリップボードへコピー
 sendstr(0, elem.innerHTML)
else
 msgbox("未選択です")
exitexit
endif
-----------
以前こちらで質問させて頂いたものです。
作成して頂いたstuncloudさんありがとうございました。
完璧なものをご用意して頂きとても助かりました。
あの後私の方でいろいろ編集してみた所、
selection = ie3.document.getSelection()
上記コードで止まってしまい原因がわからないです。
-----------
流れとしては

クロームを起動させておいてマクロ実行

メッセージ表示後、URL全選択

URLをIEで開きなおし、開いてるページ全体のソースをクリップボードに貼り付け

以上となります。
ご教授の程よろしくお願いします。

No.2947 2016/09/27(Tue) 15:18:40

Re: Re:IEのソースをコピー / stuncloud
それは部分的なソースが欲しい場合に選択範囲から取得する、というものです
全体が欲しいなら単に
ie.document.documentElement.innerHTML
で良いでしょう

No.2948 2016/09/27(Tue) 16:23:56

Re: Re:IEのソースをコピー / リズ
ありがとうございます。

下記で無事動きました^-^
sendstr(0, ie.document.documentElement.innerHTML)

No.2970 2016/09/29(Thu) 00:33:06
全832件 [ ページ : << 1 ... 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 84 >> ]