[ 掲示板に戻る ]

過去ログ閲覧モード

ALTの仮想キーについて / GoG
WHILE TRUE
  SLEEP(0.1)
  IF GETKEYSTATE(VK_ALT) THEN PRINT "押した"
WEND

上のコードで、

VK_ALT だと、キーボードの左と右のAltキーに反応します。

VK_RALT は、右のAltキーに反応します。

VK_LALT は、定義されていません、と表示されてしまいます。

左のAltキーのみに反応させたい場合は、どうしたらいいですか?

SHIFT と CTRL は、L もあるようです。

※なぜか最近気になることが出てきていますが、粗探しをしたいわけではないです。
 作者さまには感謝しています。

Windows 7
UWSC Ver 5.2.2.0

No.2739 2016/08/10(Wed) 19:40:45

Re: ALTの仮想キーについて / しき
//左Alt VK_LMENU は定義されているみたい
//仮に定義されてなくても、キーコードを直接記述できます

print "vk_alt = "+ vk_alt
print "vk_menu = "+ vk_menu
print "vk_ralt = "+ vk_ralt
print "vk_rmenu = "+ vk_rmenu
print "vk_lmenu = "+ vk_lmenu

while true
  sleep(0.1)
  if getkeystate($A4) then print "左alt押した"
wend


//結果
vk_alt = 18
vk_menu = 18
vk_ralt = 165
vk_rmenu = 165
vk_lmenu = 164

//参考URL
仮想キーコード
http://chokuto.ifdef.jp/urawaza/prm/virtual_key_code.html
VK_LMENU A4 左の [Alt]
VK_RMENU A5 右の [Alt]

No.2740 2016/08/10(Wed) 21:28:54

Re: ALTの仮想キーについて / GoG
知りませんでした。
直接記述も勉強になります。
ありがとうございます。

No.2741 2016/08/11(Thu) 08:46:23
パスワードが入力できません。 / リキュール
パスワード部分が入力できません。
IESetData(IE,"XXXXXXXX","webLoginId") // ID
IESetData(IE,"XXXXXXXX","webLoginPwd") // PASSWORD

HTMLのソースは以下の通りです。
<input name="webLoginId" type="text" id="webLoginId" class="loginInputForm" size="34" style="ime-mode:disabled;" />
<input name="webLoginPwd" type="password" id="webLoginPwd" class="loginInputForm" size="34" style="ime-mode:disabled;" oncopy="return false" oncut="return false" onpaste="return true"/>

ちなみにPro版のrecIDでは
IESetData(IE,"●●●●●●●●●","password_webLoginPwd") // TEXT
と表示されます。

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

No.2711 2016/08/04(Thu) 15:56:08

Re: パスワードが入力できません。 / リキュール
以下で解決しました。
どうしてIESetDataではだめなのか分かりません。
IE.document.forms[0].webLoginId.value = "XXXXXXXX"
IE.document.forms[0].webLoginPwd.value = "XXXXXXXX"

No.2737 2016/08/09(Tue) 23:25:31
BTNで現在位置を省略するには? / GoG
BTN関数のヘルプを見ると、座標を省略すると現在位置でクリックとなるようなのですが、省略するときはどのように書けばよいですか?

以下の3つを試してみたのですが、上の2つは、「定義が間違っています」と表示され、3つ目は、300,0 の座標で動作してしまいます。

BTN(LEFT,CLICK, , ,300)

BTN(LEFT,CLICK,"","",300)

BTN(LEFT,CLICK,300)

Windows 7
UWSC Ver 5.2.2.0

No.2730 2016/08/09(Tue) 09:30:56

Re: BTNで現在位置を省略するには? / stuncloud
ミリ秒も省略しないといけないようですね
そこはsleepで代替すると良いでしょう

sleep(0.3) // 300ミリ秒待つ
btn(LEFT,CLICK)

No.2731 2016/08/09(Tue) 10:33:00

Re: BTNで現在位置を省略するには? / GoG
よくわかりました。
アドバイスありがとうございます。

No.2732 2016/08/09(Tue) 11:55:56
CLKITEMでウィンドウがアクティブになってしまいます / GoG
UWSCにはいつも助かっています。

IEをアクティブにしないで、操作したいのですが、この書き方でアクティブになってしまいます。
どこか間違いはありますか?

CLKITEM(GETID("Internet Explorer"),"新しいタブ (Ctrl+T)",CLK_BTN or CLK_BACK)

Windows 7
IE 11

No.2727 2016/08/08(Mon) 15:27:26

Re: CLKITEMでウィンドウがアクティブになってしまいます / stuncloud
Windows 10 1607 のIE11ですが
CLK_BTNではなくCLK_ACCで非アクティブのまま押せました

No.2728 2016/08/08(Mon) 18:11:40

Re: CLKITEMでウィンドウがアクティブになってしまいます / GoG
思ったとおりに動かすことができました。

これからIEでうまく操作できないときは、CLK_ACC でも試してみるようにします。

ありがとうございます。

No.2729 2016/08/09(Tue) 09:18:17
COMで表示できないWebがあります。 / tyo
IEでWEBにアクセスし、表示が終わるまで待機する簡単なスクリプトなのですが、
Amazonにアクセスしようとするとエラーが出ます。
--------------------------------------------------------------------------------
//Script.uws
Option Explicit
dim IE
IE = CreateOleObj("InternetExplorer.Application")
IE.visible = true
IE.navigate("https://www.amazon.co.jp/") //yahooだとエラーが出ない
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4 //ここでエラーが出ます。
--------------------------------------------------------------------------------
エラーメッセージ
COM_ERROR:例外が発生しました。
8行目 UNTIL !IE.busy AND IE.readyState = 4
--------------------------------------------------------------------------------
Windows10、
UWSC Pro
デバッガ
exeモジュール
すべてでエラーが出ました。

No.2716 2016/08/05(Fri) 15:45:16

Re: COMで表示できないWebがあります。 / Nagatani
私の環境では確認できませんでしたが

///////////////////////////////////////////
//Script.uws
IE = CreateOleObj("InternetExplorer.Application")
IE.visible = true
IE.navigate("https://www.amazon.co.jp/") //yahooだとエラーが出ない
busywait(ie)

//FAQ
//IE11にて画面更新後に操作(COM)ができない  #N45

DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Procedure BusyWait(ie)   // 更新待ち処理
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
 SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) // 更新直後に WM_ACTIVATEを送る事によりバックグランドでも操作可となる
Fend
/////////////////////////////
上記で回避できるような気がします!

No.2719 2016/08/06(Sat) 10:24:35

Re: COMで表示できないWebがあります。 / tyo
ありがとうございます。
確認してみます。

No.2726 2016/08/08(Mon) 10:03:56
バックグラウンドで実行 / nano
exec、doscmdで画面表示はさせるがアクティブにはせずバックグラウンドで実行させる事は出来ないのでしょうか?
exec("wget URL",true)
doscmd("wget URL",false,true)
これをアクティブにはせずバックグラウンドで実行させたいです。

No.2725 2016/08/07(Sun) 04:04:28
CASE SLCT_32 以降定義されない / SHINJIさん
下記のような、スクリプトなのですが、変数:SLCT_32 が定義されていません となります。
デバッグを使用してるのですが、なぜかCASE SLCT_32 以降、青色文字になりません。
windows 10 home
よく使うファイルを選択しから選ぶスクリプトです。

FUNCTION OPENセラー表()
SELECT SLCTBOX( SLCT_CMB, 0, "開きたいセラー表の番号を指定" , _
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,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,91,92,93,94,95,96,97,98,99,100)
CASE SLCT_1
fail = "データ セラー表0001.xlsx"
CASE SLCT_2
fail = "データ セラー表0002.xlsx"
CASE SLCT_3
fail = "データ セラー表0003.xlsx"
CASE SLCT_4
fail = "データ セラー表0004.xlsx"
CASE SLCT_5
fail = "データ セラー表0005.xlsx"
CASE SLCT_6
fail = "データ セラー表0006.xlsx"
CASE SLCT_7
fail = "データ セラー表0007.xlsx"
CASE SLCT_8
fail = "データ セラー表0008.xlsx"
CASE SLCT_9
fail = "データ セラー表0009.xlsx"
CASE SLCT_10
fail = "データ セラー表0010.xlsx"
CASE SLCT_11
fail = "データ セラー表0011.xlsx"
CASE SLCT_12
fail = "データ セラー表0012.xlsx"
CASE SLCT_13
fail = "データ セラー表0013.xlsx"
CASE SLCT_14
fail = "データ セラー表0014.xlsx"
CASE SLCT_15
fail = "データ セラー表0015.xlsx"
CASE SLCT_16
fail = "データ セラー表0016.xlsx"
CASE SLCT_17
fail = "データ セラー表0017.xlsx"
CASE SLCT_18
fail = "データ セラー表0018.xlsx"
CASE SLCT_19
fail = "データ セラー表0019.xlsx"
CASE SLCT_20
fail = "データ セラー表0020.xlsx"
CASE SLCT_21
fail = "データ セラー表0021.xlsx"
CASE SLCT_22
fail = "データ セラー表0022.xlsx"
CASE SLCT_23
fail = "データ セラー表0023.xlsx"
CASE SLCT_24
fail = "データ セラー表0024.xlsx"
CASE SLCT_25
fail = "データ セラー表0025.xlsx"
CASE SLCT_26
fail = "データ セラー表0026.xlsx"
CASE SLCT_27
fail = "データ セラー表0027.xlsx"
CASE SLCT_28
fail = "データ セラー表0028.xlsx"
CASE SLCT_29
fail = "データ セラー表0029.xlsx"
CASE SLCT_30
fail = "データ セラー表0030.xlsx"
CASE SLCT_31
fail = "データ セラー表0031.xlsx"
CASE SLCT_32
fail = "データ セラー表0032.xlsx"
CASE SLCT_33
fail = "データ セラー表0033.xlsx"
CASE SLCT_34
fail = "データ セラー表0034.xlsx"
CASE SLCT_35
fail = "データ セラー表0035.xlsx"
CASE SLCT_36
fail = "データ セラー表0036.xlsx"
CASE SLCT_37
fail = "データ セラー表0037.xlsx"
CASE SLCT_38
fail = "データ セラー表0038.xlsx"
CASE SLCT_39
fail = "データ セラー表0039.xlsx"
CASE SLCT_40
fail = "データ セラー表0040.xlsx"
CASE SLCT_41
fail = "データ セラー表0041.xlsx"
CASE SLCT_42
fail = "データ セラー表0042.xlsx"
CASE SLCT_43
fail = "データ セラー表0043.xlsx"
CASE SLCT_44
fail = "データ セラー表0044.xlsx"
CASE SLCT_45
fail = "データ セラー表0045.xlsx"
CASE SLCT_46
fail = "データ セラー表0046.xlsx"
CASE SLCT_47
fail = "データ セラー表0047.xlsx"
CASE SLCT_48
fail = "データ セラー表0048.xlsx"
CASE SLCT_49
fail = "データ セラー表0049.xlsx"
CASE SLCT_50
fail = "データ セラー表0050.xlsx"
CASE SLCT_51
fail = "データ セラー表0051.xlsx"
CASE SLCT_52
fail = "データ セラー表0052.xlsx"
CASE SLCT_53
fail = "データ セラー表0053.xlsx"
CASE SLCT_54
fail = "データ セラー表0054.xlsx"
CASE SLCT_55
fail = "データ セラー表0055.xlsx"
CASE SLCT_56
fail = "データ セラー表0056.xlsx"
CASE SLCT_57
fail = "データ セラー表0057.xlsx"
CASE SLCT_58
fail = "データ セラー表0058.xlsx"
CASE SLCT_59
fail = "データ セラー表0059.xlsx"
CASE SLCT_60
fail = "データ セラー表0060.xlsx"
CASE SLCT_61
fail = "データ セラー表0061.xlsx"
CASE SLCT_62
fail = "データ セラー表0062.xlsx"
CASE SLCT_63
fail = "データ セラー表0063.xlsx"
CASE SLCT_64
fail = "データ セラー表0064.xlsx"
CASE SLCT_65
fail = "データ セラー表0065.xlsx"
CASE SLCT_66
fail = "データ セラー表0066.xlsx"
CASE SLCT_67
fail = "データ セラー表0067.xlsx"
CASE SLCT_68
fail = "データ セラー表0068.xlsx"
CASE SLCT_69
fail = "データ セラー表0069.xlsx"
CASE SLCT_70
fail = "データ セラー表0070.xlsx"
CASE SLCT_71
fail = "データ セラー表0071.xlsx"
CASE SLCT_72
fail = "データ セラー表0072.xlsx"
CASE SLCT_73
fail = "データ セラー表0073.xlsx"
CASE SLCT_74
fail = "データ セラー表0074.xlsx"
CASE SLCT_75
fail = "データ セラー表0075.xlsx"
CASE SLCT_76
fail = "データ セラー表0076.xlsx"
CASE SLCT_77
fail = "データ セラー表0077.xlsx"
CASE SLCT_78
fail = "データ セラー表0078.xlsx"
CASE SLCT_79
fail = "データ セラー表0079.xlsx"
CASE SLCT_80
fail = "データ セラー表0080.xlsx"
CASE SLCT_81
fail = "データ セラー表0081.xlsx"
CASE SLCT_82
fail = "データ セラー表0082.xlsx"
CASE SLCT_83
fail = "データ セラー表0083.xlsx"
CASE SLCT_84
fail = "データ セラー表0084.xlsx"
CASE SLCT_85
fail = "データ セラー表0085.xlsx"
CASE SLCT_86
fail = "データ セラー表0086.xlsx"
CASE SLCT_87
fail = "データ セラー表0087.xlsx"
CASE SLCT_88
fail = "データ セラー表0088.xlsx"
CASE SLCT_89
fail = "データ セラー表0089.xlsx"
CASE SLCT_90
fail = "データ セラー表0090.xlsx"
CASE SLCT_91
fail = "データ セラー表0091.xlsx"
CASE SLCT_92
fail = "データ セラー表0092.xlsx"
CASE SLCT_93
fail = "データ セラー表0093.xlsx"
CASE SLCT_94
fail = "データ セラー表0094.xlsx"
CASE SLCT_95
fail = "データ セラー表0095.xlsx"
CASE SLCT_96
fail = "データ セラー表0096.xlsx"
CASE SLCT_97
fail = "データ セラー表0097.xlsx"
CASE SLCT_98
fail = "データ セラー表0098.xlsx"
CASE SLCT_99
fail = "データ セラー表0099.xlsx"
CASE SLCT_100
fail = "データ セラー表0100.xlsx"

SELEND






RESULT = fail
FEND

No.2714 2016/08/05(Fri) 01:26:42

Re: CASE SLCT_32 以降定義されない / stuncloud
SLCT_* 定数が SLCT_31 までしか定義されてないからです
引数が31個以上の場合はSLCT_NUMかSLCT_STRを使わないといけません
このケースならこんな感じにします

dim list[] = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,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,91,92,93,94,95,96,97,98,99,100

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, "開きたいセラー表の番号を指定", list)
if ret <> -1 then
 fail = "データ セラー表" + replace(format(list[ret], 4), " ", "0") + ".xlsx"
endif
msgbox(fail)

No.2715 2016/08/05(Fri) 11:14:59

Re: CASE SLCT_32 以降定義されない / しろまさ
// listが連番なら生成しても良いですね。
Dim i, list
For i = 1 To 100
  list = list + i + ","
Next
list = Split(list, ",", TRUE)

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, "開きたいセラー表の番号を指定" , list)

No.2717 2016/08/05(Fri) 17:22:27

Re: CASE SLCT_32 以降定義されない / SHINJIさん
stuncloudさん、しろまささん
非常にわかりやすいスクリプトありがとうございます!
めっちゃたすかりました!

No.2720 2016/08/06(Sat) 12:29:26

Re: CASE SLCT_32 以降定義されない / SHINJIさん
failセラー表 = SELECTFailListSerial("データ セラー表", ".xlsx", 100, 4)
print failセラー表

↓↓リストから1を選択↓↓
データ セラー表1111.xlsx 、となってしまいます


下記のようにしてみたのですが

FUNCTION SELECTFailListSerial( ファイル名, 拡張子, リスト数, 固定桁数 )
Dim i, list
For i = 1 To リスト数
  list = list + i + ","
Next
list = Split(list, ",", TRUE)
ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, ファイル名, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif
RESULT = fail
FEND

-------------------------------------------------------------------------------------------
この場合はうまくいくのですが
データ セラー表0001.xlsx

FUNCTION SELECTFailListSerial( ファイル名, 拡張子, リスト数, 固定桁数 )
dim list[] = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,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,91,92,93,94,95,96,97,98,99,100

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, ファイル名, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif

RESULT = fail
FEND

No.2721 2016/08/06(Sat) 14:14:57

Re: CASE SLCT_32 以降定義されない / miles
// listの内容がSplit関数で文字型になるからでしょう。
// 数値処理フラグをTRUEにすれば、数値型になるので、formatでの変換が正しくなると思います。

list = Split(list, ",", TRUE, TRUE)

No.2722 2016/08/06(Sat) 14:37:27

Re: CASE SLCT_32 以降定義されない / SHINJIさん
miles さん
ありがとうございます!!

No.2723 2016/08/06(Sat) 17:21:06

Re: CASE SLCT_32 以降定義されない / SHINJIさん
下記のようなスクリプトを作ることができました!ありがとうございます!
指定した連番の数字、ファイル、をリストから選択できます!
こんなにいいもの(自分にとって)が作れて感動です! stuncloud さん、 しろまさ さん、miles さんありがとうございました!!

//コメントは空にできない。
FUNCTION SELECTSerialList( ファイル名, 拡張子, コメント, 始数, 終数, 固定桁数 )


Dim i, list

For i = 始数 To 終数
  list = list + i + ","
Next
list = Split(list, ",", TRUE,TRUE)

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, コメント, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif

RESULT = fail
FEND

No.2724 2016/08/06(Sat) 18:07:19
IEでフラッシュを起動した状態で画像を保存すると2回に一度くらいの割合ウィンドウの内部が真っ暗になってしまいます。 / なな
IEを指定して画像を保存すると2回に一度くらいの割合でウィンドウの内部が真っ暗になってしまいます。
以下のようなコードです。どれも安定しません。
ほかのブラウザなら真っ暗になることはありません。

SLEEP(2)
id=GETID(GET_ACTIVE_WIN)
SAVEIMG("SS1",id)
SAVEIMG("SS2",id,,,,,2)
SAVEIMG("SS3",id,,,,,1)

原因は何でしょうか。
どなたかご教授いただけないでしょうか。
よろしくお願いいたします。

No.2718 2016/08/06(Sat) 05:55:37
IEのソースをコピー / リズ
UWSCで以下のような事は可能でしょうか

web上で本文の一部を選択すると、クリップボードに選択した範囲のhtmlソースが貼りつく。
それが難しい場合、答えに導く別の考え方。

ちなみにpro版を利用しております。
何卒よろしくお願いします。

No.2701 2016/08/03(Wed) 19:51:05

Re: IEのソースをコピー / 森
例えば下記のようなHTMLソースの場合に、
<div><p>東京<a href="http://sample.com">特許</a>許可局</p></div>

「特許」を選択した場合に、
<a href="http://sample.com">特許</a>
を取得したいと言うことだと思うのですが、

「東京特許」「東京特許許可局」「京特」「東京」など、
「特許」以外のすべてのケースで、どこまで取得するのかルール作りが大変そうです。

UWSC以前に、そこをクリアする必要がありそうですね。

No.2705 2016/08/04(Thu) 10:42:41

Re: IEのソースをコピー / stuncloud
// IEで対象ページを開いてる状態とします

ie = getactiveoleobj("InternetExplorer.Application")
ctrlwin(hndtoid(ie.hwnd), ACTIVATE)

msgbox("HTMLソースを取得したい部分を選択してからOKを押してください")

selection = ie.document.getSelection()
if selection.rangeCount then
 range = selection.getRangeAt(0)
 content = range.cloneContents()
 elem = ie.document.createElement("div")
 elem.appendChild(content)
 // クリップボードへコピー
 sendstr(0, elem.innerHTML)
else
 msgbox("未選択です")
endif

No.2706 2016/08/04(Thu) 11:13:15

Re: IEのソースをコピー / リズ
stuncloudさん

素晴らしい こんな事が可能なのですね
ありがとうございます

No.2713 2016/08/04(Thu) 23:18:33
画像の比較、テキストの比較 / kei
お世話になります。
ヘルプの吸い出しというミッションを与えられて、遂行中です。
効率よく進めるためのヒント、お知恵をお貸しください。

◆画像の比較
図表があるため、テキストの吸い出しだけでは足りず、キャプチャしています。
@最大化して、保存。
Apagedownして、保存。
Bもう一回pagedownして、保存。
大体のページは@で収まっているのですが、念の為に、取得したAB。
あとから、同一であればABを削除していくのですが、パフォーマンスの良いやり方、どんなのがあるでしょうか?powershell2.0は使えます。エクセルもあります。

◆テキスト比較
ヘルプの目次をダブルクリックして、どこかのページが開かれます。
URI的な一意に識別できるものはなく、ここはどこ?と言った状態になり・・・
それを解決するため、予めすべてのページのテキストを保存しています(今、走ってるはずなのですが)。

リンクをクリックし遷移先のページのテキストを取得して、保存済みのページテキストと完全一致したら、ファイル名を元にリンク情報を作っていく予定です。
総ページ数100ページ以上、200未満といったところなのですが、これもパフォーマンスのよいやり方がないか悩んでいます。
1行目をキーとして辞書をつくるのが良さそうな気がしていますが、ユニークである保証はありません。

良きアドバイスをお願い致します。

No.2687 2016/07/30(Sat) 00:08:19

Re: 画像の比較、テキストの比較 / kei
すみません、ちょっと訂正を。

◆テキスト比較
ヘルプの目次をダブルクリックして、どこかのページが開かれます。

ヘルプの目次をダブルクリックして、どこかのページが開かれます。
開いたページの中のリンクをクリックして、さらに別のページが開かれます。
※目次からリンクされている(であろう)単ページファイルのテキストは取得済。
目次を持つファイルの、自ファイル内ページのテキストも取得済。

No.2688 2016/07/30(Sat) 00:17:20

Re: 画像の比較、テキストの比較 / MM
車輪の再発明
https://www.google.co.jp/search?&q=chm+%E5%A4%89%E6%8F%9B
http://neu101.seesaa.net/article/258781904.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20120731/413003/?rt=nocnt

No.2691 2016/07/31(Sun) 22:59:27

Re: 画像の比較、テキストの比較 / kei
回答ありがとうございます。
再利用できないんです、車輪。
管理者権限なしなので。だから、質問しているわけです。

画像に関しては、pngにコンバートしてから、バイナリで比較しました。再利用したかったのでPowerShellで。
chkimgかとも思ったのですが、使い方が違うと思い、やめました。

テキストの方は、ぼんやりしていて。
効率の良いやり方があれば、教授していただきたく。

◆やりたい事
テキストファイルが何百かある。
そのどれかを引用しているページがあり、ページテキスト全体を取得できる。
ページテキスト全体が、既存のテキストファイルのどれと、完全一致するのかを調べたい。

◆構想
都度、テキスト全体でのチェックをしたら、時間がかかりそう
なので。
一行目をキーに辞書を作っておく。値はテキストファイルのフルパス。キーが一致したら、全比較を実施。

※一行目はユニークでない可能性がある。

◆欲しいアドバイス
別にもっと良いやり方がある。
キーを重複させない工夫。辞書登録時に、重複を回避するためにあれこれすると、検索でもなぞらないといけないので、複雑にしたくない。

No.2696 2016/08/03(Wed) 01:04:43

Re: 画像の比較、テキストの比較 / MM
chmファイルからhtmlやhhcファイルを抽出するのは実質解凍するだけなのに、
ノコギリを使わず木を切れみたいな、電卓使わず計算しろみたいな、
あまりに生産性の低い不毛な課題。
誰も食指が動かない。

No.2697 2016/08/03(Wed) 02:18:29

Re: 画像の比較、テキストの比較 / stuncloud
hh.exe -decompile (出力先フォルダ) (ヘルプファイルのパス)
でヘルプファイルをデコンパイルできるので先ずはそこからどうするか検討してみてはどうでしょうか
hh.exeは標準で入ってるので使っても文句は言われないでしょう…

No.2698 2016/08/03(Wed) 10:18:41

Re: 画像の比較、テキストの比較 / kei
回答ありがとうございます。
hh.exe、確認できてないのですが、対象はchmではなく、95が現役だったであろう時代のhlpというファイルなので、htmlをまとめたようなものではないので、多分無理かと。
hlpからchmへのコンバーターもあるようですが、許可がおりるか微妙です。

と、いった事情を置いといて。
当面やりたい事に絞り込んで、うまいやり方はないかと質問したつもりです。

ぶっちゃけて言うと、力ずくに何とか出来るのはみえていて。
処理系が、ハッシュ関数で衝突した時に、リスト管理してるのを、表側でもおんなじ様な事やんなきゃなんないのかなぁ?という、モヤモヤからの質問です。

No.2702 2016/08/03(Wed) 21:54:23

Re: 画像の比較、テキストの比較 / MM
くっ…まさかとはおもっとが、そんな特殊な条件を後出しないだろうという性善説に甘えがあったか…
No.2703 2016/08/04(Thu) 05:57:03

Re: 画像の比較、テキストの比較 / kei
最初に事情を説明して、絞って投稿してるのですが。
この投稿では、表題通りの質問です。

No.2704 2016/08/04(Thu) 08:34:06

Re: 画像の比較、テキストの比較 / しゅん
不要でしょうが、画像比較は、
@最大化して保存するスクリプトを実行
Apagedownして@の画像とchkimgするスクリプトを実行
という手順で、要否は判断できるかと思います。
(@AをDOSCMDで呼び出すスクリプトを実行すればOK)
なお、@とAをわけるのは、chkimgはスクリプト開始時に画像を読み込むためです。

次にテキスト検索ですが、、、キー方式も良いですが、数百ファイル程度であれば、findstrを使うのも良いかと思います。
コマンドプロンプト等で、「findstr -?」とか入力して、使い方を見てください。

あと蛇足ですが、、、
MMさんの言葉遣いは微妙ですが、気持ちはわかります。
私も前回、展開すれば、と提案しました。
普通は、その方向ですね。
keiさんも「No.2675で質問していますが」と入れていれば良かったかと思います。
この質問単独で見ると、やはりヘルプファイルを展開すれば、と言いたくなりますので。

No.2707 2016/08/04(Thu) 12:25:55

Re: 画像の比較、テキストの比較 / kei
回答ありがとうございます。
XPのバグと、過去に聞いたような気がしますが。
保存済のBMP(最大化して最前面で保存)と、同じ条件で画面表示して、ヒットしなかったので、chkimgは使えないと判断しました。
別の用途で、6☓1ピクセルの画像をchkimgしてもヒットしなかったり。6☓2の画像ではうまくいき、目的は果たされたのですが、新しいOSで試していないので、詳細はわかりません。

テキスト比較に関しては、力ずくでなんとかする方法は見えていてと断ったつもりですが、やっぱり力ずくにしておけ、という回答なのでしょうか。
UWSCに特化した質問ではないから答えられない、とか、特に良いアイデアはないよ、と回答して貰えれば十分だったのですが。

No.2712 2016/08/04(Thu) 22:06:14
全693件 [ ページ : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 70 >> ]