WSH(・∀・)スレッド! Part 4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
( ´ゝ`) 誰か詳しい情報キボンヌ

●過去スレ
WSH(・∀・)スレッド!
http://pc11.2ch.net/test/read.cgi/tech/1055075469/
WSH(・∀・)スレッド! Part 2
http://pc11.2ch.net/test/read.cgi/tech/1176698934/
WSH(・∀・)スレッド! Part 3
http://pc12.2ch.net/test/read.cgi/tech/1208948450/

●関連スレ
お前ら、wsh使ってますか? Part7
http://pc12.2ch.net/test/read.cgi/win/1190548945/
HTAをもっと流行らせる計画 Part2
http://pc12.2ch.net/test/read.cgi/tech/1220874815/
★WSHでCGI★JScriptVBScript
http://pc11.2ch.net/test/read.cgi/php/1059745064/

●公式サイト
Windows Script
http://www.microsoft.com/japan/msdn/scripting/

●個人サイト
Windows Scripting Host
http://homepage3.nifty.com/aya_js/wsh/index.htm
Windows Scripting Host Laboratory
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Windows Script Wiki
http://winscript.s41.xrea.com/wiki/index.php
2デフォルトの名無しさん:2009/05/24(日) 12:30:47
>>1


WSHやVBSずっと消えないで欲しい
というか消えたら困る
3デフォルトの名無しさん:2009/05/24(日) 12:43:45
VB6よりは長生きできるさきっと
4デフォルトの名無しさん:2009/05/25(月) 00:03:22
javascriptが残るならjscriptも残るだろうし、wshも当然残ることになる。そうなるとvbscriptも残るし、htaが残るのは当然だ。
5デフォルトの名無しさん:2009/05/25(月) 01:03:14
ある日、次のバージョンのWindowsでは対応しないことになって終わる
6デフォルトの名無しさん:2009/05/25(月) 02:10:47
だんだん使いにくくなるな
scriptcontrolはvistaで消えた
<input type=file>はie8で使えん
...
7デフォルトの名無しさん:2009/05/25(月) 03:42:08
ここの人たちは PowerShell は使ってる?

>>2
WSH消えたら困る人ってあんまり見かけないけど
案件でWSH酷使してるんか?
8デフォルトの名無しさん:2009/05/25(月) 12:17:42
>>7
いままで標準装備のWSHで処理しなかった人たちは、今後標準装備になるPowerShellも使わんだろうな。
9デフォルトの名無しさん:2009/05/25(月) 14:20:01
>>7
俺は個人だよ

msgboxが好きなので(ホントはpopupメソ)
powershellは未だ手付かず

WSHから自由に.netのクラスライブラリ
呼び出せるといいんだけどね
10デフォルトの名無しさん:2009/05/25(月) 23:58:28
そういうcomを作ればよい
11デフォルトの名無しさん:2009/05/30(土) 12:53:57
com?やだよメンドクサイ
標準装備で出来ることがWSHのメリットなのにさ。

WSHからSystem.Collections.ArrayList呼ぶことなら結構あるけどな。
12デフォルトの名無しさん:2009/05/30(土) 14:05:09
System.Collections.ArrayListはcomから呼べるように特別に作ってあるのか
それとも、ほかのクラスもレジストリに書けば呼べるのか?
13デフォルトの名無しさん:2009/05/30(土) 14:20:31
14デフォルトの名無しさん:2009/05/30(土) 16:30:39
で、どっち?
15デフォルトの名無しさん:2009/05/30(土) 17:49:11
>>13
ここまでまとめた人が居るんか、すごいな
でもやっぱりあんまり使えなそう

結局powershell覚えて出力をWSHで受け取るとか
本末転倒だなw
16デフォルトの名無しさん:2009/05/30(土) 21:52:20
PowerShellでもWin32API使いにくいからな
FindWindowやSendMessageが標準環境で簡単に使えるようにならんかな
17デフォルトの名無しさん:2009/05/30(土) 22:39:18
スクリプト言語の中にはC関数を直接呼び出せるものがあってな
18デフォルトの名無しさん:2009/05/30(土) 23:37:40
そんなもん、いくらでも有るが
19デフォルトの名無しさん:2009/05/31(日) 00:00:38
なんでvbscriptは
20デフォルトの名無しさん:2009/05/31(日) 01:55:01
こんなにかわいいの?
21デフォルトの名無しさん:2009/06/02(火) 17:33:30
シフトキーを押しながらの操作はWSHでどうするの?
22デフォルトの名無しさん:2009/06/02(火) 19:00:42
WSHを実行するのにシフトキーを押す必要はありません。
23デフォルトの名無しさん:2009/06/02(火) 22:45:16
なるほど
24デフォルトの名無しさん:2009/06/06(土) 14:55:08
>>21
copyhereやmovehereみたいに用意されてるものもあるが
ショートカットの貼り付けや
invokeverb "delete"みたいに用意されてないものもある
ないものはあきらめてほかの方法さがせ
25デフォルトの名無しさん:2009/06/06(土) 19:22:13
なるほど
26デフォルトの名無しさん:2009/06/10(水) 15:44:18
mailto:sage
27デフォルトの名無しさん:2009/06/10(水) 16:28:32
getobject("hoge.xls")して、それが新規インスタンスか、
既存のインスタンスか、区別する方法は?
28デフォルトの名無しさん:2009/06/10(水) 22:14:31
普通にやれば良いだけでは?
29デフォルトの名無しさん:2009/06/10(水) 23:46:59
抽象的な質問なのですが、wshでアプリケーションを操作する・・・では無くて
wshでアプリケーションを作る事は可能ですか?
30デフォルトの名無しさん:2009/06/10(水) 23:54:37
GUIつきのアプリは厳しいんじゃないか?
31デフォルトの名無しさん:2009/06/10(水) 23:58:39
そのためのHTAです。
32デフォルトの名無しさん:2009/06/11(木) 02:03:46
<SCRIPT language="vbscript">
str = "Hello World!!"
</SCRIPT>
<BODY>
<P><変数strを、ここに出力したい。></P>
</BODY>
33デフォルトの名無しさん:2009/06/11(木) 08:09:32
34デフォルトの名無しさん:2009/06/11(木) 12:27:33
<BODY>
<P>Hello World!!</P>
</BODY>
35デフォルトの名無しさん:2009/06/11(木) 13:11:12
>>27
ないんじゃないか
getobjectする前に排他オープンしてみるとか
36デフォルトの名無しさん:2009/06/11(木) 14:05:51
<html><BODY><!-- NHKニュース速報すくりぷと.hta -->
<div align="center"><i>NHKニュース速報 </i><span id =span1></span><span id =span2></span></div></BODY>
<script language=vbscript>
Window.ReSizeTo 480,360
Sub Window_onLoad()
span2.innerhtml="<font size=1> アナログ</font>"
For iii = 0 to 10
span1.innerhtml = "日経平均、" & iii & "万円台突破"
createobject("WScript.Shell").Run "%COMSPEC% /c ping -n " & 1 & " 127.0.0.1>nul", 0, true
next
end sub
</script></html>
37デフォルトの名無しさん:2009/06/11(木) 14:18:30
<html>
<body>
<!-- 完璧すぎる.hta -->
<p>変数strを、ここに出力したい。</p>
<span id =strspan></span>
</body>
<script language=vbscript>
sub window_onLoad()
str = "Hello World!!"
strspan.innerhtml = str
end sub
</script>
</html>
38デフォルトの名無しさん:2009/06/11(木) 19:32:35
>変数strを、ここに出力したい。
といってるくせに違うところに出してどうする?
39デフォルトの名無しさん:2009/06/11(木) 19:34:27
>>37
setintervalかsettimeout使えよ
40デフォルトの名無しさん:2009/06/12(金) 19:35:43
getobject("hoge.xls")

getobject("hoge.xls","excel.sheet")
の違いはなんだろう?
41デフォルトの名無しさん:2009/06/12(金) 20:27:34
,"excel.sheet"があるかないかの違い。
42デフォルトの名無しさん:2009/06/13(土) 01:46:37
ハズレ
43デフォルトの名無しさん:2009/06/13(土) 12:43:27
Active にするオブジェクトを指定してるんじゃなかったっけか?
44デフォルトの名無しさん:2009/06/13(土) 15:37:34
どちらもWorkbookオブジェクトが取れる
45デフォルトの名無しさん:2009/06/13(土) 15:41:08
getobject("hoge.xls")
は新規と既存がとれるけど
getobject("hoge.xls","excel.sheet")
は新規のみだろ
getobject("","excel.sheet")がcreateobjectなのはその1例だろ

46デフォルトの名無しさん:2009/06/18(木) 22:56:09
exec.vbs
createobject("wscript.shell").exec("notepad")
を作って
wscript exec.vbs|more
とすると、wscriptは終了してるのに、notepadの終了を待ちます。
なぜか、わかる人いますか?
47デフォルトの名無しさん:2009/06/19(金) 00:09:58
C:\>notepad|more
48デフォルトの名無しさん:2009/06/19(金) 01:06:15
createobject("wscript.shell").run("notepad")
だと待たないからrunとexecの違いのなにかだろ
49デフォルトの名無しさん:2009/06/19(金) 01:40:10
start /b /wait notepad|more
start /b notepad|more
パイプがinheritされて閉じられてないみたいだな
50デフォルトの名無しさん:2009/06/22(月) 18:45:55
作業の自動化ができる、って具体的に何を自動化したいの?
連投スクリプトとかできるの?
51デフォルトの名無しさん:2009/06/22(月) 19:40:30
それはお前さん次第さ
52デフォルトの名無しさん:2009/06/22(月) 19:42:21
明日の会議で自動的に受け答えしてくれる?
53デフォルトの名無しさん:2009/06/22(月) 19:55:21
それもお前さん次第さ
54デフォルトの名無しさん:2009/06/22(月) 19:59:47
俺の代わりに飯食ってきてくれるか?いま手が離せない
55デフォルトの名無しさん:2009/06/22(月) 20:05:23
それはまた別の話
56デフォルトの名無しさん:2009/06/22(月) 20:36:12
どうやら>>52>>54の間辺りにWSHでできる事の限界があるらしい
57デフォルトの名無しさん:2009/06/22(月) 22:43:00
じゃあ俺の心の隙間を埋めてくれるのかい?
58デフォルトの名無しさん:2009/06/23(火) 21:23:44
埋め
59デフォルトの名無しさん:2009/06/24(水) 22:58:30

60デフォルトの名無しさん:2009/06/25(木) 16:04:09
WSHにてインストールされているプリンタの一覧を取得する方法はありますか?
61デフォルトの名無しさん:2009/06/25(木) 16:10:32
あります
62デフォルトの名無しさん:2009/06/28(日) 18:48:32
ありがたい
63デフォルトの名無しさん:2009/07/06(月) 23:32:01
WSHで現在アクティブなウィンドウを取得する方法ってありませんか?
最前面に来て使用しているであろうアプリを調べたいのです。
64デフォルトの名無しさん:2009/07/07(火) 00:20:49
ない
win32api使え
65デフォルトの名無しさん:2009/07/07(火) 00:39:04
SFCminiとAutoitXを入れましょう。これでWSHからwin32apiも使い放題。window操作もやりたい放題。
6663:2009/07/07(火) 00:55:00
>>64、65

ありがとうございます。調べてみます。

ネットで調べてうすうすAPIというものを使わないと無理そうだとは思ってたのですが
やはりそうですか・・
67デフォルトの名無しさん:2009/07/07(火) 01:08:28
WSHから離れて、dmscript( 日本人製作の
Jscriptと同様のスクリプト、dm.exe -l オプションでワンライナーの
ようにも使えるので場合によってはWSHからWin32Apiの機能を利用可能)、
UWSC(日本人製作、ドキュメント多し)、
なでしこ(日本人製作、ドキュメント多し)、
AutohotkeyやAutoIT3(AutoItXとほぼ同じ)をつまんで見るのも吉。
これらは、SFCminiやAutoITXに比べて、ポータブルでも使えるメリットがある。
68デフォルトの名無しさん:2009/07/07(火) 01:11:48
あんま怪しいツールは入れたくないんだよね
69デフォルトの名無しさん:2009/07/07(火) 01:47:20
MS純正
excel
powershell
vb.net
70デフォルトの名無しさん:2009/07/07(火) 01:56:27
どれもOS標準添付じゃないし…
71デフォルトの名無しさん:2009/07/07(火) 20:05:15
結局は XUL が最強だよな
72デフォルトの名無しさん:2009/07/07(火) 21:29:45
.netはvistaに標準添付だろ
73デフォルトの名無しさん:2009/07/07(火) 22:51:00
開発環境も?
74デフォルトの名無しさん:2009/07/08(水) 01:39:17
vbc.exe
75デフォルトの名無しさん:2009/07/08(水) 01:51:31
>>74

ttp://www.moonmile.net/blog/?p=18
>実は Windows XP3 や Vista のマシンでは既に .NET Framework が(勝手に)導入されており、
>実は環境変数を設定すれば Visual C# Express Edition を入れなくても
>コンパイルができます。当然実行もできます。

へぇそうなんだ。常識なの?良いこと聞いた、thx
76デフォルトの名無しさん:2009/07/08(水) 19:59:39
IEで、Ctrl+Nでウィンドウの新規作成を行った時と等価な状態(セッション情報等を継承)で、
WSHでIEのウィンドウの新規作成を行い、
かつそのIEのウィンドウのオブジェクトIDを得るにはどうしたら宜しいでしょうか?
77デフォルトの名無しさん:2009/07/08(水) 20:44:55
>>76
ここはWSHのスレであって
IEコンポーネントAPIのスレではないのでスレ違い。
78デフォルトの名無しさん:2009/07/08(水) 23:01:22
Shell.apliction でグルグルすると既存のieオブジェクトやエクスプローラーのハンドルとれるじゃん。
またはieオブジェクト作ったときのオブジェクトに、例えば objIe.hWndってやってもハンドル取れる。
79デフォルトの名無しさん:2009/07/09(木) 02:51:48
>>78
やりたい事は、セッション情報を引き継いだIEの新規ウィンドウの生成(Ctrl+Nに相当)です。

例えば、

ie1 = new ActiveXObject("InternetExplorer.Application");
ie1.Navigate("http://www.example.com/login/");
// ログイン処理

ie2 = new ActiveXObject("InternetExplorer.Application");
ie2.Navigate("http://www.example.com/foo/bar.html");

とした場合、ie1の派生物とie2の派生物では別セッションとなってしまい、
ie1でログイン状態がセッション管理により行われている場合、
ie2では非ログイン状態になってしまいます。
80デフォルトの名無しさん:2009/07/09(木) 03:30:44
>>79
window.open ではダメなの?
81デフォルトの名無しさん:2009/07/13(月) 17:21:30
>>78
どれがアクティブか調べる方法は?
82デフォルトの名無しさん:2009/07/13(月) 18:38:09
普通にやれば良いんじゃないの?
83デフォルトの名無しさん:2009/07/13(月) 19:48:59
普通にWin32APIのFindWindow クラス名でやれば良いんじゃないの?
84デフォルトの名無しさん:2009/07/15(水) 21:19:25
>>83
タブの区別がつかん
85デフォルトの名無しさん:2009/08/11(火) 19:02:06
statustextでつくとは!
86デフォルトの名無しさん:2009/08/22(土) 06:23:12
CreateObject("Shell.Application").Windows.Item
でアクティブ取れるんだね。
87デフォルトの名無しさん:2009/08/22(土) 15:05:28
正確には
でアクティブ取れたんだね。
88デフォルトの名無しさん:2009/08/22(土) 19:44:04
>>87
え?Vista以降は取れないとか?
89デフォルトの名無しさん:2009/08/23(日) 14:13:39
え?IE7以降は取れないとか?
90デフォルトの名無しさん:2009/08/27(木) 15:49:26
どこで聞けばいいのかわからないのでここで質問を
piyo1hogera.txt
piyo2hogera.txt
piyo3hogera.txt
piyo5hogera.txt
pito8hogera.txt
というように番号がとびとびになっているようなファイルの集まりから数字だけを抽出して
htmlファイルに反映させたいんだけどどうすればいい?

一応, ファイル一覧は抽出できるんだけどそっから数字だけを抽出するにはどうすればいいかわからないので。
91デフォルトの名無しさん:2009/08/27(木) 19:08:52
>>90
正規表現を使うのが簡単
var num;
if (/(\d+)/.exec(ファイル名) != null) { // ファイル名に数字を含んでいたら
num = RegExp.$1; //抽出した数字
}
92デフォルトの名無しさん:2009/08/29(土) 01:14:59
$1wwwwwwwwwwww
93デフォルトの名無しさん:2009/09/07(月) 19:22:11
WScript.Echoで文字色変えられますか?もし変えられるなら方法も
94デフォルトの名無しさん:2009/09/08(火) 05:55:20
>>93
コンソールの文字色変更だったらオススメはしない
一応、コンソールAPI or エスケープシーケンス を使うことで出来るけどね
↑は環境を変更する必要があるので、HTAを使った方がマシだと思う
95デフォルトの名無しさん:2009/09/08(火) 16:20:44
tscmd.zipのechoc.exeを使うといいかも
96デフォルトの名無しさん:2009/09/08(火) 16:48:43
createobject("wscript.shell").exec "cmd /c color ac"
97デフォルトの名無しさん:2009/09/08(火) 20:36:48
>>95-96
間違ってはいないけど >>93 の意図とは違うだろ・・・ワザとか?
98デフォルトの名無しさん:2009/09/08(火) 22:19:41
>>96はだめみたいよ
標準入出力をリダイレクトしてコンソール環境を継承してない?
99デフォルトの名無しさん:2009/09/08(火) 22:58:31
>>93
NT系OSのコマンドプロンプトでは色指定などのエスケープシーケンスは標準ではサポートされない
エスケープシーケンス ANSI.SYS などのキーワードで検索
100デフォルトの名無しさん:2009/09/08(火) 23:43:35
echo エスケープシーケンス | ansi.exe
みたいなのがあったような
101デフォルトの名無しさん:2009/09/09(水) 01:02:43
PowerShellの中では文字色変えられるけど、
CMDに戻ると色が消えるのはなんでだろう?
102デフォルトの名無しさん:2009/09/09(水) 15:31:45
>>98
ok cmd /c color ac
ng cmd /c color ac <nul >nul 2>nul

103デフォルトの名無しさん:2009/09/09(水) 20:43:53
createobject("wscript.shell").exec "command con /c cmd /c color ac"
104デフォルトの名無しさん:2009/09/10(木) 17:30:19
無理ぽ
105デフォルトの名無しさん:2009/09/11(金) 17:34:00
なんかズレテるな
106デフォルトの名無しさん:2009/09/11(金) 19:35:57
>>105
なんかズレてるな
107デフォルトの名無しさん:2009/09/11(金) 20:06:31
excel経由でコンソールAPIを呼ぶ
108デフォルトの名無しさん:2009/09/12(土) 19:25:50
>>103
なんかコードページがズレてるな
createobject("wscript.shell").exec "chcp.com 932"
109デフォルトの名無しさん:2009/09/14(月) 14:35:30
InvokeVerbで、右クリックメニューのサブメニューは 呼べないんでしょうか
110デフォルトの名無しさん:2009/09/15(火) 07:22:20
>>109
どういう状況下で何をしたいのか理解できないけど
InvokeVerbで呼べないならレジストリ読んで実行しとけ
111デフォルトの名無しさん:2009/09/15(火) 14:46:42
InvokeVerb "メニュー項目\サブメニュー項目"
とでもできればよいが
112デフォルトの名無しさん:2009/09/16(水) 12:44:13
InvokeVerbEx "メニュー項目","サブメニュー項目"
113デフォルトの名無しさん:2009/09/17(木) 23:30:32
WordのActiveXコンポーネントについて聞いて良いですか?
WSHから、documentオブジェクトに
他所で生成したリストをMailMergeさせることは出来たんですが、
実際のデータが割り当てられたプレビュー状態を表示させるメソッドってありますか?
ツールバーのボタンを押せばちゃんと表示されます。
114デフォルトの名無しさん:2009/09/18(金) 00:15:01
>>113
こんなんで良いの?
var word = new ActiveXObject('Word.Application');
word.visible = true
var doc = word.Documents.Add();
doc.Content.InsertAfter("hello, world.");
doc.PrintPreview();
115デフォルトの名無しさん:2009/09/18(金) 00:28:10
>>114
ありがとうございます。
説明が悪かったのですが、印刷プレビューではなくて、
通常のレイアウト内の、差し込み印刷のプレビュー表示です。
右、左でレコードを移動できるあれです。
ツールバーのボタンを押さないと、<<名前>>みたいなフィールドのままですよね。
それを、差し込んだ状態で見せたいんです。
ちゃんとデータソースと結合は出来ているのですが。
スレ違いですかね・・・
116デフォルトの名無しさん:2009/09/18(金) 00:42:13
>>115
失礼、差込印刷なって使ったことなかったので

とすると、これ?
doc.MailMerge.ViewMailMergeFieldCodes = false
117116:2009/09/18(金) 00:43:29
×差込印刷なって
○差込印刷なんて
orz...
118デフォルトの名無しさん:2009/09/18(金) 00:46:24
>>116
調べてみたら、それで間違いないと思います!
今ちょっとWordが無い環境なんで、改めて試してみます。
ありがとうございました。
119デフォルトの名無しさん:2009/09/19(土) 01:54:02
ABALE.ZIPとかいうCOMが入っているのですが、これって使えるの?
120デフォルトの名無しさん:2009/09/24(木) 22:41:49
Wordの印刷についてお聞きしたいんですが.
Wordを印刷するプログラムを書いたのですが,
プリンタを任意に指定する方法がわかりません.
以下のプログラムでは,”通常使うプリンタ”になってしまいます.
プリンタを指定する場合はどのようにすればよいのでしょうか?
できれば,引数からプリンタを指定するようにしたいです.
よろしくお願いいたします.

var pf,obj;
var objArgs = WScript.Arguments;
pf = new ActiveXObject("Word.Application");
pf.DisplayAlerts = false;
obj = pf.Documents.Open(objArgs(0),0,1);
obj.PrintOut();
obj.Close(0);
WScript.Quit(0);
121デフォルトの名無しさん:2009/09/24(木) 23:08:20
>>120
試してないけど、
pf.ActivePrinter = "プリンタ名"
あたり?

ちなみに、明らかにword固有の機能はスレ違い
VBAスレなどに行ってください
122デフォルトの名無しさん:2009/09/25(金) 00:41:38
>>121
ありがとうございます.
その方法で動きました
123デフォルトの名無しさん:2009/09/25(金) 00:44:39
ちなみに、VBAスレでは、VBやVBSでも書ける話はスレ違いと言われるので、
さらにほかのスレに行ってください
124デフォルトの名無しさん:2009/09/25(金) 04:29:36
> ちなみに、VBAスレでは、VBやVBSでも書ける話はスレ違いと言われる
ハズレ

「VBやVBSでも書ける話」がスレ違いなのではなく
「Word.ApplicationやExcel.Applicationを使わずにVBやVBSでも書ける話」がスレ違いと言われる

VBやVBSでも書ける話でも、WordやExcel固有機能の話なら、当然スレ違いじゃない
だってVBAのAはWord.[A]pplicationやExcel.[A]pplicationのAなんだから
125デフォルトの名無しさん:2009/09/25(金) 14:50:55
new ActiveXObject("Shell.Application").ShellExecute(objArgs(0),"プリンタ名",null,"printto");
は、どのスレだろう?
126デフォルトの名無しさん:2009/09/25(金) 17:04:12
すいません。質問させてください。
「画面のプロパティ」の内容に当たるレジストリを書き換えるコードを書いています。
が、ログオフか再起動をしないと反映されません。
ログオフ、再起動なしで反映させる方法はありませんか?
127デフォルトの名無しさん:2009/09/25(金) 19:13:20
たぶんスレ違いと言われるんじゃまいか
128デフォルトの名無しさん:2009/09/25(金) 20:04:19
>>126
設定するモノによる
「画面のプロパティ」の画面自体をVBSで操作した方が楽ぢゃねぇ?
129デフォルトの名無しさん:2009/09/25(金) 20:15:00
VBSで画面の操作なんかできんのか
130デフォルトの名無しさん:2009/09/25(金) 20:38:11
sendkeysだろ
>>126
inichangeとかsettingchangeとかぐぐれ
131デフォルトの名無しさん:2009/09/25(金) 20:56:04
sendkeysはVBSじゃないけど
132デフォルトの名無しさん:2009/09/26(土) 02:07:43
133デフォルトの名無しさん:2009/09/26(土) 10:29:44
wはVBSじゃないけど
134デフォルトの名無しさん:2009/09/29(火) 15:59:53
WScript.Echo "w"
はVBSね
135デフォルトの名無しさん:2009/09/29(火) 18:50:17
Is there any here document in WSH?
136デフォルトの名無しさん:2009/10/01(木) 23:18:05
UserとPasswdを指定してリモートのファイルにアクセスするならMapNetworkDriveが使えるけど
ドライブのマッピングをしたくない場合って他に何か方法あるかな?
net useコマンド叩けばいいんだけど、あんまり美しくない。。。
137デフォルトの名無しさん:2009/10/01(木) 23:26:31
pushdとかは?
138デフォルトの名無しさん:2009/10/01(木) 23:28:32
FileSystemObject って UNC に対応してなかったけ?
139デフォルトの名無しさん:2009/10/02(金) 01:32:32
UNCってUser/Pass指定できるんだっけ?
140デフォルトの名無しさん:2009/10/02(金) 01:53:29
マップしてfsoで開いてアンマップ
141デフォルトの名無しさん:2009/10/07(水) 12:46:15
指定したパスのフォルダをエクスプローラーで、
サイズや位置を指定して開く方法があったら教えてください。
ぐぐろうとすると InternetExplorerでのやり方ばかりヒットしてしまって・・・
142デフォルトの名無しさん:2009/10/07(水) 13:25:15
' 変数の定義,WSHの準備,etc...
Option Explicit
Dim FSO,WS,AG,WE,strOs,strInp,strCom,intRet
Set FSO=CreateObject("Scripting.FileSystemObject")
Set WS=CreateObject("WScript.Shell")
Set AG=WScript.Arguments
Set WE=WS.Environment("PROCESS") : strOs=WE("OS")

' RunメソッドでEXPLORER.EXEを起動し、引数で指定されたドライブ/フォルダ(省略時は現在のドライブ/フォルダ)をツリー枠と共に表示
strInp="." : If (AG.Count > 0) Then strInp=AG(0)
strCom="EXPLORER /e,/root," & Chr(34) & FSO.GetAbsolutePathName(strInp) & Chr(34)
intRet=WS.Run(strCom , 1, true)

' WSHのバージョンが5.1以降かつOSがWindowsNT系(NT/2000/XPなど)の場合、処理内容をイベントID:4(情報)でWindowsNTイベントログへ記録
If (WScript.Version > "5.0") And (strOs = "Windows_NT") Then
WS.LogEvent 4, "(bvExplorer.vbs) 次のコマンドラインを実行しました。" & vbCrLf & strCom
End If

' 各オブジェクトのメモリ リソース等を開放し、本スクリプト実行を終了
Set FSO=Nothing : Set WS=Nothing : Set AG=Nothing : Set WE=Nothing
WScript.Quit()
143デフォルトの名無しさん:2009/10/07(水) 20:30:11
Set ie=GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
ie.Visible=True
ie.Top=
ie.Width=
...
144デフォルトの名無しさん:2009/10/09(金) 13:05:03
FSOその他でシンボリックリンクの判定できる?
ターゲット取り出せる?
145デフォルトの名無しさん:2009/10/09(金) 19:10:05
ExecuteExcel4Macro("CALL(""user32"",""FindWindowExA"",
はよくあるが、
ExecuteExcel4Macro("CALL(""user32"",""FindWindowExW"",
はできないのか?
146デフォルトの名無しさん:2009/10/09(金) 22:54:27
>>144
シンボリックリンクなら。ジャンクションはこれでは無理。たぶんWMIでいけるんじゃないか。
動かしたのは Win7RC なので、XP では無理。Vista はどうかわからん。

Set shell = CreateObject ("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = shell.Namespace("C:\temp")
For Each fname in folder.Items
filePath = folder.GetDetailsOf(fname, 179)
fileAttr = folder.GetDetailsOf(fname, 6)
isFolder = InStr(1,fileAttr,"D",1)
isLink = InStr(1,fileAttr,"L",1)
If isFolder = 1 Then
Set fEntry = fso.GetFolder(filePath)
Else
Set fEntry = fso.GetFile(filePath)
End If
If isLink <> 0 Then
Wscript.echo filePath & " is linking to " & _
folder.GetDetailsOf(fname, 188)
End If
Next
147デフォルトの名無しさん:2009/10/09(金) 22:57:38
ごみが残ってた。これいらん。
' If isFolder = 1 Then
' Set fEntry = fso.GetFolder(filePath)
' Else
' Set fEntry = fso.GetFile(filePath)
' End If
148デフォルトの名無しさん:2009/10/10(土) 14:48:07
おー、さんきゅう
ただし、Vistaでは属性に、Lが付かんね
リンク先はあるので、ショートカットでなければで区別するかな
149デフォルトの名無しさん:2009/10/10(土) 17:33:03
そうなんだ。それじゃ >>147 の fEntry で fEntry.Attributes AND 1024 を調べてみ。
150デフォルトの名無しさん:2009/10/11(日) 16:10:12
分類に「リンク」があるかでも区別できるかも

folder.GetDetailsOf(fname, 188)
Vistaで187 
ExtendedPropertyのほうがよいが、IDが不明
GetDetailsOfとExtendedPropertyの対応表か調べる方法があればよいが
151デフォルトの名無しさん:2009/10/11(日) 20:57:35
あった
System.Link.TargetParsingPath
ms-help://MS.MSDNQTR.v90.ja/shellcc/platform/shell/reference/properties/link/system_link_targetparsingpath.htm
152デフォルトの名無しさん:2009/10/12(月) 21:37:40
すみません
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1131686451
この答えを教えていただけないでしょうか
よろしくお願いします
153デフォルトの名無しさん:2009/10/12(月) 22:32:38
>>152
取得順はソートされない(詳細はFATやNTFSの構造の話になるので省略する)
取得したデータを自前でソートしろ
154デフォルトの名無しさん:2009/10/12(月) 22:50:19
>>152
自前ソートが面倒であれば以下のとちらかで手抜きしろ
・ソート指定したdirコマンドの結果を使う
・basp21のReadDirを利用する
155デフォルトの名無しさん:2009/10/12(月) 23:01:18
>>153-154
ソートするには取得してからでないとダメということですね
ありがとうございます

取得するフォルダの順番というものは決まっているのでしょうか?
対象のフォルダに
20090101
20090102
20090201
20090202
とこのような感じでサブフォルダがありまして
フォルダが読み込まれる順番を調べているのですが
どうも情報がうまくさがせないものでして
echoなどで出しておりますとおそらく昇順だとは思うのですが
明示的にできないか・もしくは昇順であることを裏付ける何かがないかと思いまして
156デフォルトの名無しさん:2009/10/12(月) 23:12:55
ループの処理のあとにsleep10000くらい入れて
処理フォルダ見とけばいいんじゃない?
157デフォルトの名無しさん:2009/10/12(月) 23:19:53
>>155
FATに関して言えば情報格納順であり
ファイルやフォルダ削除/作成により順番が変わる
NTFSについても確実に名称でソートされている訳ではない
環境依存にしたくなければソートしろ
158デフォルトの名無しさん:2009/10/12(月) 23:24:42
>>156-157
ありがとうございます
複雑な内部の問題なんですね…
ソートしてから使いチアと思います。
本当に助かりました
159デフォルトの名無しさん:2009/10/13(火) 00:12:04
横レスですが、
みなさんソートはどうしてますか?
バブルソートが楽ですけど、量が増えると遅くて重くて。
エクスプローラがどんなに大量のファイルがあっても一瞬でソートできるように、
何か便利な方法ないでしょうか?
160159:2009/10/13(火) 00:16:54
すんません、>>154で出てた・・・
161デフォルトの名無しさん:2009/10/13(火) 15:32:29
JSciptのArray.sort()でええ
162デフォルトの名無しさん:2009/10/13(火) 15:41:58
CreateObject("System.Collections.SortedList")
163デフォルトの名無しさん:2009/10/14(水) 18:16:19
>>21-25
keybd_eventでシフトキー押しながら
invokeverb "delete"
すればよいよ
164デフォルトの名無しさん:2009/11/08(日) 21:10:28
質問です
vbsで特定ページのソースを取得し、X行目がYという内容と一致するかのチェックをするスクリプトを作りたいのですが
ソース全体を出力する方法はobjIE.Document.Body.InnerHtmlでできるのは分かったんですが
ソース全体の閲覧ではなくソースのX行目がYという文字列と一致するかどうかの分岐を作るのはどうすればいいのでしょうか?
165デフォルトの名無しさん:2009/11/08(日) 21:42:02
>>164
ネタ? どこまで理解できていないのか読み取れない・・・

InStr系関数で改行コードをカウントしてX行目の開始/終了位置を取得
Mid系関数でX行目のデータを取得
If文で分岐

当然ループは使うぞ
166デフォルトの名無しさん:2009/11/08(日) 23:00:09
>>165
分かりにくくてすみません
>InStr系関数で改行コードをカウントしてX行目の開始/終了位置を取得
>Mid系関数でX行目のデータを取得
ここが分かりませんでした

もう少し調べてみます
167デフォルトの名無しさん:2009/11/08(日) 23:58:40
俺ならXMLDOMで全体取ってから
\nでsplitするかな。
168デフォルトの名無しさん:2009/11/09(月) 01:21:37
StrBody = objIE.Document.Body.InnerHTML
lntPos = InStr(1, StrBody, Chr(13), 1)
これの戻り値がどうやっても0になってしまいます
対処法お願いします
169デフォルトの名無しさん:2009/11/09(月) 15:46:51
Chr(13)?
170デフォルトの名無しさん:2009/11/09(月) 15:54:55
>>169
段落コードのつもりなんですが
171デフォルトの名無しさん:2009/11/09(月) 16:38:05
Chr(10)
172デフォルトの名無しさん:2009/11/09(月) 17:26:14
段落コード?
173デフォルトの名無しさん:2009/11/09(月) 17:33:14
HTMLにおける「段落」をめぐって
ttp://www.asahi-net.or.jp/~WQ6K-YN/para.html
174デフォルトの名無しさん:2009/11/09(月) 18:32:24
ソース?
175デフォルトの名無しさん:2009/11/09(月) 19:13:38
>>170
HTMLの段落はそっちでしたか
InStrが返す値が明らかに存在する文字を検索しても0になってしまうのはStrBodyが長すぎるせいなのでしょうか?
長さ制限は無いはずだしStrBodyをためしにechoで出力してみたらちゃんと表示されてるのでStringは収納されてるはずなんですが

>>167
ちょっとこちらも調べて見ます
176デフォルトの名無しさん:2009/11/09(月) 21:58:26
>長すぎるせいなのでしょうか?
それはない
>InStrが返す値が明らかに存在する文字を検索しても0になってしまう
それもない
177デフォルトの名無しさん:2009/11/09(月) 23:21:28
>>176
無いはずなのは分かってるんですけどなぜかそうなってしまうんです
ためしにVBで>>168のIntPosをMsgBoxで出力しようとしてもなぜか0に
178デフォルトの名無しさん:2009/11/10(火) 01:02:57
すみません
IntPos = の部分がうまく変数として認識されていなかったのが問題だった見たいです
解決しました
179デフォルトの名無しさん:2009/11/10(火) 17:02:37
意味不明だが
on error resume next
でも使ってんのか?やめとけ
option explicit
は使っとけ
180デフォルトの名無しさん:2009/11/16(月) 22:17:29
181デフォルトの名無しさん:2009/11/17(火) 15:03:31
いみふ
結局使えないんだろ?
182デフォルトの名無しさん:2009/11/18(水) 20:01:43
以前は
cscript //e:jscript -
が使えたが
183デフォルトの名無しさん:2009/11/18(水) 22:00:30


>cscript //e:jscript -
WScript.Echo(WScript.Version);
^Z
5.7
184デフォルトの名無しさん:2009/11/22(日) 15:42:09
>cscript //e:jscript -
入力エラー: スクリプト ファイル "-" が見つかりません。
185デフォルトの名無しさん:2009/11/25(水) 02:05:32
>cscript //e:jscript con
WScript.Echo(WScript.Version);
^Z
5.7
186デフォルトの名無しさん:2009/11/26(木) 12:03:39
レンホウ「こんなロボット作って、なんになるんです?」
187デフォルトの名無しさん:2009/11/26(木) 18:04:00
ロボットになるんです
188デフォルトの名無しさん:2009/11/28(土) 17:39:05
>cscript //e:jscript con
CScript エラー: Windows Script Host の実行に失敗しました。 (この操作を完了するの
に十分な記憶域がありません。 )
189デフォルトの名無しさん:2009/11/28(土) 19:47:24
純粋なあの頃は仕事で追い詰められて自殺なんて都市伝説だと思ってたけど
今じゃ知り合いの失踪も自殺も体験した
190デフォルトの名無しさん:2009/12/02(水) 10:59:46
正規表現が文法的に正しいかどうかを判別する方法はありませんか
括弧が足りないとか教えてくれなくていい
スクリプトが異常終了しないでtrueかfalseを返してくれればいい
191デフォルトの名無しさん:2009/12/02(水) 18:48:37
try catch
192デフォルトの名無しさん:2009/12/02(水) 19:26:27
>>191
駄目だった
try {var re = /asd(fgh/;}
catch(e){WScript.echo("error");}
193デフォルトの名無しさん:2009/12/02(水) 19:36:59
RegExp.compile
194デフォルトの名無しさん:2009/12/02(水) 19:58:42
>>192
RegExp
195デフォルトの名無しさん:2009/12/05(土) 00:05:02
wshで
var n=/a]b/;
と打ったらエラーが出ませんでした。他の括弧ならエラーが出ます。
エスケープ無しの右かぎ括弧ってなにか特別な意味はありますか?
この場合は、"a]bと続く三文字"と解釈して大丈夫なんですか?
196デフォルトの名無しさん:2009/12/05(土) 14:20:01
ためせば?
197デフォルトの名無しさん:2009/12/13(日) 13:23:44
Excel2003と2010が共存している環境で
WSHを使うことで両者を使い分けようとしています。
参考 : http://www.drk7.jp/MT/archives/001226.html

RegRead("HKEY_CLASSES_ROOT\\CLSID\\{00024500-0000-0000-C000-000000000046}\\LocalServer32\\").replace(/ \/[^ \/]+/g, '')
で、Excel 最新版(最後にインストールしたもの?)のパスは得られるのですが、古い方のパスを得られません。

何か良い方法はないでしょうか?
198デフォルトの名無しさん:2009/12/13(日) 13:24:56
今は決めうちで、「C:\Program Files\Microsoft Office\*\EXCEL.EXE」の * の部分を変えて存在確認をとって処理しています。
* の部分は、
Office2010 : office14
Office2007 : office12
Office2003 : office11
Office2002 : office10
Office2000 : office9
Office97 : office8
Office95 : office
であっているでしょうか?
よろしくお願いします。
199デフォルトの名無しさん:2009/12/13(日) 19:27:38
200デフォルトの名無しさん:2009/12/15(火) 18:19:27
EXCEL.EXEを検索してFileVersionで判定すべき
201デフォルトの名無しさん:2009/12/23(水) 00:00:12
Office2010ってもう発売されてるんだ.....
202デフォルトの名無しさん:2009/12/23(水) 14:44:53
さあ
203デフォルトの名無しさん:2009/12/23(水) 14:50:06
office13は?
204デフォルトの名無しさん:2009/12/24(木) 09:35:19
スレちがい
205デフォルトの名無しさん:2010/01/13(水) 18:31:33
お願いだから教えてください。スレ違いかも知れないけどPower Shellスレないみたいだし・・

Windows Power Shell(2.0)でIEを起動してマウスクリックをエミュレートさせようとした場合、Win32API(mouse_event)を使うと思うんですが
DllImport("usr32.dll",Charset=Charset.Auto)でCharset = ←の=の後がどうとかいって、実行できません。Charsetのくだりを全削除すると今度は予期しない属性と出てしまいます。

mouse_eventにこだわりはないんですが
IEを立ち上げ
マウスクリックをエミュレートする

処理を教えてください。APIなら宣言部もお願い;;

206デフォルトの名無しさん:2010/01/13(水) 18:37:51
205ですけど

座標とかハードコーディングで大丈夫ですので肝を簡潔にお願い;;
207デフォルトの名無しさん:2010/01/13(水) 23:40:26
スレちがい
Windows PowerShell 2.0 Part2
208デフォルトの名無しさん:2010/01/14(木) 00:07:23
普通はDOM使うんじゃなかろうか、いや知らんけど
209デフォルトの名無しさん:2010/01/14(木) 02:56:55 BE:1403990069-PLT(23400)
210デフォルトの名無しさん:2010/02/22(月) 21:41:34
次のように Folderオブジェクトの SubFolders でFolderコレクションを取得したとして、

 Set c = folder.SubFolders

これを For Each ではなくて以下のように For で処理したいです。

 For i = 0 To c.Count
  :
 Next

このループの中で、i 番目のアイテムを取得するにはどうしたらよいでしょうか?
c(i) でも c.Item(i) でもダメでした。
211デフォルトの名無しさん:2010/02/22(月) 21:44:18
c.Items(i)
212210:2010/02/22(月) 21:50:27
それだと
オブジェクトでサポートされていないプロパティまたはメソッドです。:'c.Items'
です。
ちなみに、c.Item("Test") みたいに、実在するフォルダ名を与えればフォルダオブジェクトは取って来れます。
それじゃ意味無いですが。
213デフォルトの名無しさん:2010/02/22(月) 22:06:18
c(i).Value
c(i).Item()
214210:2010/02/22(月) 22:17:28
>>213
プロシージャの呼び出し、または引数が不正です。
215デフォルトの名無しさん:2010/02/22(月) 23:29:43
Shell.Application の FolderItems のほうを使ったら?
216デフォルトの名無しさん:2010/02/25(木) 21:55:47
配列に入れて使え
217デフォルトの名無しさん:2010/02/25(木) 22:13:00
For i = 0 To c.Count
j=0
 For Each f In c
If j=i Then Exit For
j=j+1
 Next
MsgBox f
Next
218デフォルトの名無しさん:2010/02/25(木) 22:55:24
番号は使えないみたいだな
ItemクリックしたらDictionaryに飛んだ

ttp://msdn.microsoft.com/en-us/library/9kcx47hd%28VS.85%29.aspx
219デフォルトの名無しさん:2010/03/01(月) 21:36:27
test
220デフォルトの名無しさん:2010/03/05(金) 12:44:09
WMI使ってリモートPCのIP変更したいんだが、変更後にRPCエラー待ちが発生して自動処理が難しい。
エラー待ちを無視するとか、なんかいい方法知ってる人がいたら助けて。

On Error Resume Next

strComputer = "10.1.1.1"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableDHCP()
Next
221デフォルトの名無しさん:2010/03/12(金) 19:00:04
素朴な疑問なのですが・・・
JScriptの変数の宣言(var文)って書いても書かなくても動きますが
どちらが推奨されますか?
222デフォルトの名無しさん:2010/03/12(金) 20:20:27
>>221
書いた場合と書かない場合は意味が違う
宣言時にはできるだけ書くべきと思う
--------------
a = 10;
function foo() {a = 20;}
foo();
WScript.Echo(a);
--------------
結果:20
--------------
var a = 10;
function foo() {var a = 20;}
foo();
WScript.Echo(a);
--------------
結果:10
223221:2010/03/14(日) 04:11:27
>>222
なるほど。そう言う違いがあるのですか・・・
ありがとうございました
224デフォルトの名無しさん:2010/03/20(土) 12:34:38
varといえば

var a = 10;
var a;

で、aがundefinedになると思い込んでいて
はまりかけたことがあった。
225デフォルトの名無しさん:2010/04/05(月) 23:24:20
バッチファイルからWSHを呼び出す際、
バッチからサブルーチン呼出すみたいにパラメータ渡すことは可能ですか・
226デフォルトの名無しさん:2010/04/05(月) 23:52:43
>>225
可能
渡されたパラメタはWScript.Argumentsで参照できる
227デフォルトの名無しさん:2010/04/06(火) 00:13:23
有難う御座います!
228デフォルトの名無しさん:2010/04/09(金) 10:28:58
WSHの何か良いリファレンスブックみたいなのってありますか?
言語は何の奴でもまぁ使えると思うんで何でも良いんですが
229デフォルトの名無しさん:2010/04/09(金) 11:49:47
Scripting Guide 2000
230228:2010/04/10(土) 01:11:59
すいません、日本語の書籍でお願いしますorz
231デフォルトの名無しさん:2010/04/10(土) 01:32:23
>>230
初心者なら scd56jp.exe 内の script56.chm だけで良くねぇ?
232228:2010/04/10(土) 02:27:18
>>231
おお、これは凄い便利ですね。
ありがとうございます、凄い役にたちそうなんで嬉しいんですが
オフラインで使える本も、それはそれで欲しいです。
書籍の持ち込みは可能だけどデータの持ち込みは厳しい場所に持ち込みたいので。
233デフォルトの名無しさん:2010/04/10(土) 11:33:33
公式のヘルプを知らなかったって…
234デフォルトの名無しさん:2010/04/17(土) 11:37:25
VWD2005でVBSのコード補完してくれるらしいから
インストールしたけどVBSは全く補完してくれないよ。
かんか設定必要?
235デフォルトの名無しさん:2010/04/24(土) 04:06:49
CoInitialize は呼び出されていません。
こういう場合はどうすれば?
236デフォルトの名無しさん:2010/04/25(日) 18:46:06
CoInitialize を呼び出せば?
237デフォルトの名無しさん:2010/04/29(木) 21:04:56
ちょっと教えてください。

Wshからバッチファイルを呼び出す事は可能ですか?
238デフォルトの名無しさん:2010/04/29(木) 22:01:02
ちょっと教えてください。

WshからCoInitializeを呼び出す事は可能ですか?
239デフォルトの名無しさん:2010/04/29(木) 22:53:38
COMを挟めば可能
240デフォルトの名無しさん:2010/04/29(木) 22:59:32
COMが呼べるってことは既にCoInitializeされてることを意味するので無意味
241デフォルトの名無しさん:2010/04/30(金) 00:39:11
意味しないよ
242デフォルトの名無しさん:2010/05/01(土) 18:16:08
explorerのnavigation paneのshow/hideはshowbrowsebarでできないのか?
243デフォルトの名無しさん:2010/05/01(土) 21:52:27
セキュリティ対策だから無理だろ
244デフォルトの名無しさん:2010/05/28(金) 18:03:17
Windowsスクリプティング環境比較:PowerShell vs WSH
http://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_01.html
>Windows XPがリリースされ、先日Windows Vistaがリリースされるまで何年も経過したにもかかわらず、
>WSHのバージョンはVer.5.6からVer.5.7へとマイナー・バージョンアップにとどまっている。
>実はWSHは今後メジャー・バージョンアップされない運命にあるのだ。

バージョンアップされないってホント?
245デフォルトの名無しさん:2010/05/28(金) 22:30:32
うそ
246デフォルトの名無しさん:2010/05/28(金) 22:47:28
>>244
なんか困るの?
つか、他の手段への以降してるんじゃないの?
247デフォルトの名無しさん:2010/05/28(金) 22:50:33
移行だね。
248デフォルトの名無しさん:2010/05/29(土) 16:07:55
バージョンアップしなくてもよいからインラインスクリプトをサポートしてほしいな
249デフォルトの名無しさん:2010/05/29(土) 21:25:33
exec("cmd",0) も
250デフォルトの名無しさん:2010/06/14(月) 11:44:46
質問です。
例えば、sample01.exeという単一ファイルに対して、コンテキストメニューでavast!の"検査(S) sample01.exe"を実行することは
FolderItems→FolderItem→InvokeVerbでできます。
一方、ファイルが複数選択された状態では、コンテキストメニューは、"選択した領域のウィルス検査(S)"となり、
これを実行すると選択された全てのファイルに対してまとめて処理が行われます。
この例のようにファイルを複数選択した状態で、"選択した領域のウィルス検査(S)"をWSHで実行するにはどうすればよいですか?
251デフォルトの名無しさん:2010/06/14(月) 15:20:04
set items=folder.items
items.filter SHCONTF_NONFOLDERS,"*.exe"
items.invokeverbex "選択した領域のウィルス検査(S)"
252デフォルトの名無しさん:2010/06/14(月) 15:22:56
ashQuick.exeを呼べばいいんじゃないの
253デフォルトの名無しさん:2010/06/14(月) 16:29:09
>>251-252
ありがとうございます。

252のサンプル、大変参考になりました。

254デフォルトの名無しさん:2010/06/14(月) 16:31:01
>>253
失礼。まちがえました。
× 252のサンプル、大変参考になりました。
○ 251のサンプル、大変参考になりました。
255デフォルトの名無しさん:2010/06/20(日) 19:09:05
JavaScriptを使ったWSHでIEを操作してハイパーリンクをクリックさせるってどうやってる?
256デフォルトの名無しさん:2010/06/20(日) 20:36:09
>>255
自己解決した


と思ったら次の問題が発生した

<form action="..." method="post" >
<input type="text" name="text">
<input type="submit" name="exec" value="test">

のフォームをVBSで操作したいんだが
objIE.Document.Forms(0).test.value = test
objIE.Document.Forms(0).exec.click
だとエラーになる

objIE.Document.Forms(0).test.value = test
objIE.Document.Forms(0).exec.click
objIE.Document.Forms(0).Action="./_msg_post"
objIE.Document.Forms(0).Method="POST"
objIE.Document.Forms(0).Submit
でも同じようにエラーになるんだけどなぜ?
257デフォルトの名無しさん:2010/06/20(日) 21:36:56
>>256
エラーの質問の時は環境とエラー詳細を書け

まさか
×test
○text
なんてことはないよね
258デフォルトの名無しさん:2010/06/21(月) 18:54:32
>>257
Windows7
エラーは詳細不明 エラー番号が8004005
259デフォルトの名無しさん:2010/06/21(月) 19:11:02
>>258
80004005だよ・・・orz
260デフォルトの名無しさん:2010/06/21(月) 19:43:57
Dim K As Long

For K = 0 To 5
MsgBox "今" & K & "周目"
Next K

これ
7で動かないんだけど7以外で動く人いる?
261デフォルトの名無しさん:2010/06/21(月) 19:52:13
>>260
それは vba の書き方じゃないの?
vbscript なら以下

Dim K

For K = 0 To 5
MsgBox "今" & K & "周目"
Next
262デフォルトの名無しさん:2010/06/22(火) 14:23:24
>>260
いない
263デフォルトの名無しさん:2010/06/24(木) 18:25:10
JavaScriptのWSHにVBScriptで取得した文字列を渡す方法ってある?
264デフォルトの名無しさん:2010/06/24(木) 19:29:43
つwsf
265デフォルトの名無しさん:2010/06/24(木) 20:06:17
sss="xxx"
createobject("wscript.shell").run "aaa.js " & sss
266デフォルトの名無しさん:2010/06/24(木) 20:11:05
runするならプロセス環境変数で渡してもOKだな
267デフォルトの名無しさん:2010/06/24(木) 22:20:36
ちょっと難しい質問


WSHで起動したExcelのInputBoxに入力された数値を別のWSHに渡すことはできる?


WSH1.vbsでExcelのInputBoxを起動して数値を入力
その数値を
WSH2.vbsに渡す


268デフォルトの名無しさん:2010/06/24(木) 23:27:10
>>267
普通にできる
逆に「どーやったらできない」のか聞きたいくらいだ
269デフォルトの名無しさん:2010/06/24(木) 23:59:10
>>268
どうやればいいんだ…orz
270デフォルトの名無しさん:2010/06/25(金) 00:24:25
sss=inputbox()
createobject("wscript.shell").run "wsh2.vbs " & sss
271デフォルトの名無しさん:2010/06/25(金) 00:36:54
wsh2.vbsにも指定したsssにはwsh1で入力した数値が入ってるんだね?
参考になった!本当にありがとう!
272デフォルトの名無しさん:2010/06/25(金) 00:45:02
sssに入ってるというより、sssに渡したい値を引数として入れて
別のスクリプトを起動するっつうことだろ。
その結果、受けるほうはWScript.Argumentsで引数として受け取る。
またはWScript.CreateObject("WScript.Shell").Environment("Process")で渡して、受け取る。
テキストファイルを使っても渡せることは渡せる。
273デフォルトの名無しさん:2010/06/25(金) 00:48:40
「〜できる?」
  ↓
「どうやればいいんだ…orz」
  ↓                 ←今ココ
「全部ソース書いて」
274デフォルトの名無しさん:2010/06/25(金) 00:52:37
JScriptは永遠に不滅です!
275デフォルトの名無しさん:2010/06/25(金) 11:46:42
>>272
Processに入力されたデータを入れるには?
276デフォルトの名無しさん:2010/06/25(金) 15:27:41
それはとっても難しい質問だね
277デフォルトの名無しさん:2010/06/25(金) 15:41:12
どうやればいいんだ…orz
278デフォルトの名無しさん:2010/06/25(金) 16:20:56
>>275
> ○○に入力された××を入れるには?

「誤字」と言うよりは「理解不足」だと思う
って言うか、もう少し「人間としてのレベル」を上げて来い



以下に示す程度のガキは相手にされないことが多い
・どこまで分かるのか書かない        ←「オレが分かるように答えろ」というレベル
・「どうやればいいんだ…orz」を多用     ←「助けてママ〜」というレベル
・スレ内を検索できない
・ググれない
・scd56jp.exeをDLしてマニュアルを読むことができない
279デフォルトの名無しさん:2010/06/25(金) 22:46:06
>>278
>scd56jp.exeのマニュアル見てやっとわかった ありがとう
280デフォルトの名無しさん:2010/06/26(土) 11:09:02
>>279
そうか。具体的にどう解決できた?サンプルを書いてみて。
281デフォルトの名無しさん:2010/06/26(土) 12:51:16
>>280
WSH = WScript.CreateObject("WScript.Shell").Environment("Process")a = Inputbox
WSH = Item("A") = a
282デフォルトの名無しさん:2010/06/26(土) 13:30:20
>>281
ごめん携帯からあわてて書いたからおかしくなったわ

1.vbs
WSH = WScript.CreateObject("WScript.Shell")
env = WSH.Environment("Process")
A = InputBox()
env.Item("a") = A

2.vbs
WSH = WScript.CreateObject("WScript.Shell")
env = WSH.Environment("Process")

A = + env.Item("a")
WScript.echo(A)
283デフォルトの名無しさん:2010/06/26(土) 14:13:16
WSHのコードやよく使う関数をdllにできたらすごく便利だね うふ
284デフォルトの名無しさん:2010/06/26(土) 14:17:06
classでまとめておくのはやってる。
285デフォルトの名無しさん:2010/06/26(土) 14:25:54
>>282
vbsだからset 使わんと駄目なんだろう。あとWSHもオブジェクトだからたぶん駄目だろ。あとはrun付け足せばいいはず。
WScript.CreateObject("WScript.Shell").Run "wscript.exe " & WScript.CreateObject("ファイルシステムなんちゃら").GetParentなんちゃら(WSH.ScriptFullName) & "\2.vbs"

vbs全然つかってねえやw
286デフォルトの名無しさん:2010/06/26(土) 14:39:49
>>285
だってこれJScript用だし
287デフォルトの名無しさん:2010/06/26(土) 14:56:09
>>286
>>だってこれJScript用だし
>>282 に >>1.vbs
って書いてあるのに、それはねえべよ〜w こんな後だしジャンケンは初めてみたわw
288デフォルトの名無しさん:2010/06/26(土) 15:16:12
>>287
うん
そりゃね
VBSで動作実験してからJScript用に変えたから…



先にそれを書いておくべきだった すまない
289デフォルトの名無しさん:2010/06/26(土) 15:39:06
今回は >>278 の忠告を聞かない>>287が悪い。
290デフォルトの名無しさん:2010/06/26(土) 16:08:30
wscript.exe //e:jscript 2.vbs
で起こすから…
291デフォルトの名無しさん:2010/06/26(土) 17:35:03
審判長「ただ今の協議について説明いたします。
行事は、忠告を聞かなかった>>287の右足が俵を割ったと判定して
>>286に軍配を上げましたが、
>>290 のカウンターが>>287のあごにヒットしたため、
>>290の勝ちと判定いたします。」
292デフォルトの名無しさん:2010/06/26(土) 20:10:52
ttp://memoofwork.seesaa.net/article/13976209.html

のリンク数分回すのがうまく動かない


Length はリンク個数を取得してるのはわかるんだが・・・
なんで次へ のリンクに飛ばないんだ?
293デフォルトの名無しさん:2010/06/26(土) 20:31:48
>>292
わすれてた
リンクの場所はGoogleの検索結果です
294デフォルトの名無しさん:2010/06/26(土) 20:47:07
>>292
ちょっと見た感じ、元のページの内容が怪しそう
hrefってURLを表してるんじゃないの?

×If objIE.Document.links(i).href = "次へ" Then
○If objIE.Document.links(i).innerText = "次へ" Then
これならどう?
295デフォルトの名無しさん:2010/06/26(土) 20:58:08
>>294
できました!ありがとうございます!
296デフォルトの名無しさん:2010/06/26(土) 22:05:16
ごめんなさい 追加で質問です・・・
>>292をJScriptで同じようなことをさせてみようと思ったんですけどうまくできないんです

var IE,i,a
IE=new ActiveXObject('InternetExplorer.Application');IE.Visible=true;
IE.navigate2("http://www.google.co.jp/search?hl=ja&source=hp&q=amazon&aq=0&aqi=g7g-r3&aql=&oq=a&gs_rfai=");
WScript.sleep(1000);
a = IE.Document.links.length;
for (i = 0; i < a; i++) {
IE.Document.links(i).innerText=("次へ");
IE.Document.links(i).Click();};

これだと動かないんですがどうしたらいいでしょうか・・・
297デフォルトの名無しさん:2010/06/26(土) 22:26:35
>>297
これで動いた

var IE,i,a
IE=new ActiveXObject('InternetExplorer.Application');IE.Visible=true;
IE.navigate2("http://www.google.co.jp/search?hl=ja&source=hp&q=amazon&aq=0&aqi=g7g-r3&aql=&oq=a&gs_rfai=");
WScript.sleep(1000);
a = IE.Document.links.length;
for (i = 0; i < a; i++) {
if ((""+IE.Document.links[i].innerText)==("次へ")) {
IE.Document.links[i].click();
break;
}
};
298デフォルトの名無しさん:2010/06/26(土) 22:33:41
>>298
ありがとうございました
299デフォルトの名無しさん:2010/06/26(土) 22:59:09
>>297
>if ((""+IE.Document.links[i].innerText)==("次へ"))
このような方法は知りませんでした

もっと勉強します ありがとうございました!
300デフォルトの名無しさん:2010/06/26(土) 23:03:25
ああ、失礼
最初の ""+ はなくてもよいかも
オブジェクトが null になる可能性がある場合、これをいれておくととりあえあず文字列になって
エラーにならないので入れてみた(最初に>>296を起動したときエラーになったので念のために)
正しくオブジェクトが取得できる前提なら不要
301デフォルトの名無しさん:2010/06/27(日) 00:13:58
>>300
エラーになったみたいです・・・
一行目の1文字目の文字が正しくないって・・・
どういうことなんでしょうか
302デフォルトの名無しさん:2010/06/27(日) 03:19:22
1行目1文字目はいくらなんでもおかしい

文字が全角になってるとか、
ファイルがBOM付きのUTF-8になってるとか、
構文以前の基本的な個所でエラーになってる可能性がないか?
303デフォルトの名無しさん:2010/06/28(月) 03:00:29
WSHでOperaやFireFoxにURLを渡すのは不可能なんだろうか…


スレイプニルはできるのになぁ
304デフォルトの名無しさん:2010/06/28(月) 03:14:35
bugbrowser や Nilbrowserも出来るね。
305デフォルトの名無しさん:2010/06/28(月) 03:15:26
>>303
釣りとしか思えないなぁ・・・

バカが「OperaやFireFoxにURLを渡すのは不可能なんだろうか」って言うようなソースを晒してくれ
306デフォルトの名無しさん:2010/06/28(月) 03:33:17
>>305
ActiveXがないからWSHが使えないだけでActiveXがあればWSHが使えるんだからOperaやFireFoxにもActiveXが搭載できればいいんじゃないかと思うんだが
307デフォルトの名無しさん:2010/06/28(月) 03:47:18
>>306
コレは完全に釣りだな
面白いからソース晒せ
308デフォルトの名無しさん:2010/06/28(月) 03:56:58
>>307
RunでOpera.exeだのFireFox.exeを起動させただけのソースコードがみたいとは奇っ怪な
309デフォルトの名無しさん:2010/06/28(月) 04:07:27
>>308
「Sleipnirではできる」のに「OperaやFireFoxではできない」って言う奇怪なソースを早く晒せ

釣りには「ノリ」も必要だぞ
310デフォルトの名無しさん:2010/06/28(月) 09:43:40
恥ずかしい後釣り宣言来ました
311デフォルトの名無しさん:2010/06/28(月) 14:35:12
つDDE
312デフォルトの名無しさん:2010/06/28(月) 14:44:54
>>303
で何したいン?ただ外部のスクリプトからFirefoxでURLを開ければいいのか、FireFoxをスクリプトでいろいろ制御したいのか?
313デフォルトの名無しさん:2010/06/28(月) 19:25:00
IEで開いたページにあるリンクのURLをSendKeyを使ってメモ帳に書き込むコードを作ってみたのですが

一括で書き込んでるから途中で内容がぐちゃぐちゃになってしまいます


0.01秒ごとに書き込みすることはできないでしょうか?

以下 ソースコード

var ie,i,a,aaa,d,s;
var WSH;WSH = WScript.CreateObject("WScript.Shell");
IE=new ActiveXObject('InternetExplorer.Application');
IE.Visible=true;
aaa = "";
s = WScript.sleep(100);
d = 0;
while(d < 10){
d = d + 1;
ie.navigate2("★");
WScript.sleep(3000);
a = ie.Document.links.length;
for (i = 0; i < a; i++) {
if ((ie.Document.links[i].innerText)==("★")) {
test = ie.Document.links[i].search;
aaa = aaa + test~";
break;}};};

WSH.AppActivate("無題");
WSH.SendKeys(aaa);
314デフォルトの名無しさん:2010/06/28(月) 19:31:11
>>313
なんでSendKeys?
FSO使えばいいだろ
あと変数名が酷いなw
315デフォルトの名無しさん:2010/06/28(月) 19:37:26
個人で作って使ってんだ。
変数名なんて本人の好きで構わんだろ。
316デフォルトの名無しさん:2010/06/28(月) 19:45:00
これは難読化されたコードなんだよ
317デフォルトの名無しさん:2010/06/28(月) 19:47:44
>>314
FSOですか・・・それは知りませんでした

あと 変数名は適当に決めています
318デフォルトの名無しさん:2010/06/28(月) 19:52:35
変数と言うぐらいだから変な名前で何が悪い!
319デフォルトの名無しさん:2010/06/28(月) 20:40:07
変な名前では無いと思うが。w
320デフォルトの名無しさん:2010/06/28(月) 21:08:39
FSOに変えてみました

var IE,i,a,t,aaa,d,abc,test;
var WSH;WSH = WScript.CreateObject("WScript.Shell");
var FSO;FSO = WScript.CreateObject("Scripting.FileSystemObject");
IE=new ActiveXObject('InternetExplorer.Application');
IE.Visible=true;
aaa = "";
d = 0;
while(d < 2){
d = d + 1;
IE.navigate2("★");
WScript.sleep(3000);
a = IE.Document.links.length;
for (i = 0; i < a; i++) {
if ((IE.Document.links[i].innerText)==("★")) {
test = IE.Document.links[i].search;
aaa = aaa + test;
break;}};};

abc = FSO.OpenTextFile("abc.txt", 8, true);
abc.WriteLine(aaa);
abc.Close();


これだと改行をしてくれないようです
Write.Line は改行をしてくれるはずだったんですが・・・
321デフォルトの名無しさん:2010/06/28(月) 21:52:44
>>320
WriteLine()は最後に1つだけ改行する

aaa="";
while(...) {
aaa = aaa+なんとか;
}
の代わりに以下のようにすればよい
aaa=[]; // 配列にする
while(…) {
aaa.push(なんとか); //配列への要素の追加
}

abc.WriteLine(aaa.join("\r\n")); // 配列の各要素を改行で連結し、それを書き込み
322デフォルトの名無しさん:2010/06/29(火) 21:01:01
SeraphyScriptDialogは新しいのが出て64bitWindows7にも対応してた。AutoItXも更新してる。
みなさんは使ってますか?
323デフォルトの名無しさん:2010/06/29(火) 22:43:15
いいえ
324デフォルトの名無しさん:2010/06/29(火) 22:46:49
いいえ
325デフォルトの名無しさん:2010/06/29(火) 23:02:55
つかってるがぜよ
326デフォルトの名無しさん:2010/06/30(水) 14:04:56
>>312
後者
327デフォルトの名無しさん:2010/06/30(水) 16:32:44
大変だから止めた方がいい
328デフォルトの名無しさん:2010/07/01(木) 05:52:09
Opera,FireFoxも「JavaScript系で簡単に制御」できる
WSHじゃないのでスレチ


>>322
レジストリ使う時点で糞なので使わんだろ
汎用GUIからScriptControlでWSHを使うのが普通だな
329デフォルトの名無しさん:2010/07/01(木) 07:39:59
>>328
そのスレはどこに?
330デフォルトの名無しさん:2010/07/01(木) 09:26:23
>>329
「何をしたい」のか明記せずに糞みたいな質問ばかりすんな
とりあえず >>278 を読み直して内容を理解しろ
そして質問し直せ

それが出来なければ、自分でスレを探せ
331デフォルトの名無しさん:2010/07/01(木) 16:13:45
糞みたいなレスばかりすんな
332デフォルトの名無しさん:2010/07/02(金) 12:40:39
>>328
XPのmanifest使えばインストール無しでもDllは使える。
起動時のwscript.exeは、マニフェストがあるパスのwscript.exeを使わなきゃいけないけど。
システムを汚さなくても使うことは出来る。
エディタのマクロやブラウザのマクロのjscriptでも同じように使える。
システムへのインストールはいらない。

お前ら、wsh使ってますか? Part7
http://pc12.2ch.net/test/read.cgi/win/1190548945/715

715 名前:名無し~3.EXE[sage] 投稿日:2009/12/05(土) 17:35:36 ID:/VdO4Ha3
XPとWScriptのJscriptで、manifest使ってレジストリ登録なしでAutoItXが使えたんでメモしとく。
まずWScript.ExeとCScript.Exeをコピーして適当なフォルダに入れとく。
AutoItX3.dllも同じところに入れとく。
同じ場所にテキストファイルを3つ作る。
wscript.exe.manifest
cscript.exe.manifest
AutoIt.AutoItX3.manifest
333デフォルトの名無しさん:2010/07/02(金) 14:05:58
>>332
ソレ知ってる
SeraphyScriptDialogとAutoItXは「機能不足なので使わない」って方が正しい
>>328 を分かりやすくしておく

 レジストリ使う時点で糞なので使わんだろ
    ↓
 レジストリ使わなくても鼻糞なので使わんだろ
334デフォルトの名無しさん:2010/07/02(金) 16:03:24
>>333
ならそう書けよ。後出しジャンケン好きはプライドだけは高いから困るんだw
会社でもそういわれてるだろ?違うかい?
それで低機能ならSFCminiでも使ってみりゃいいさ。
335デフォルトの名無しさん:2010/07/02(金) 16:09:06
会社でも近所でも鼻つまみ者です
336デフォルトの名無しさん:2010/07/03(土) 02:10:03
>>334
自作の汎用GUIは「GUI/DLL絡みは外部テキストファイル定義」で、WSHからもコントロール可能にしてある
だから SeraphyScriptDialog,AutoItX,SFCmini のような「WSHにベース機能を提供するもの」は使わんよ

「他人がする評価」については否定も肯定もしない
因みにオレは未成年で学生だ
社会人扱いは止めてくれ
337デフォルトの名無しさん:2010/07/03(土) 13:51:54
>>336
ちなみにwin32APIにアクセスしたいときはどうしてるん?プロセス間通信とか、外部のアプリにメッセージ投げたいときとか?
338デフォルトの名無しさん:2010/07/03(土) 16:10:54
学校でも家庭でも鼻つまみ者です
339デフォルトの名無しさん:2010/07/03(土) 18:29:24
わざわざ外部ソフト入れんでも.NETやPowerShell使えばええやん
340デフォルトの名無しさん:2010/07/03(土) 22:24:23
>>339
標準語でおk
341デフォルトの名無しさん:2010/07/03(土) 23:33:34
またPowerShellかよw このスレの意味がない。
342デフォルトの名無しさん:2010/07/03(土) 23:55:49
>>337へのレスが無いね。
質問しといて遊び呆けて無ければ良いが…
343デフォルトの名無しさん:2010/07/04(日) 00:41:11
2chは煽るばっかりで難しい質問には答えられません
344デフォルトの名無しさん:2010/07/04(日) 01:14:33
VBScript コマンドから Windows PowerShell コマンドへの変換
345デフォルトの名無しさん:2010/07/04(日) 11:21:04
GUIはHTAでもいいかも。
足りない部分は外部のDll使おうが、PowerShell使おうが、
そこを関数化しておけばいいんじゃないの?
あとで簡単に置換え出来るでしょ。
Postmessageが使えるだけでもWSHやHTAから出来ることは大きく広がる。
346デフォルトの名無しさん:2010/07/04(日) 15:46:37
TextStreamオブジェクトをFunctionとかで呼んで戻すことができない・・
347デフォルトの名無しさん:2010/07/04(日) 16:40:06
>>346
あほにはできない・・
348デフォルトの名無しさん:2010/07/04(日) 19:22:33
>>346
できるよ・・
349デフォルトの名無しさん:2010/07/04(日) 21:33:20
そういやPowerShellのスレはないんだな
350デフォルトの名無しさん:2010/07/05(月) 08:54:52
win板にあるあるよ
351デフォルトの名無しさん:2010/07/05(月) 19:50:29
ボタンのあるHTMLをieオブジェクトで開いた時、
ボタンクリックのイベントをWSH側で拾うことは
可能ですか?
352デフォルトの名無しさん:2010/07/05(月) 20:09:42
はい
353351:2010/07/07(水) 08:05:20
ヒントちょうだい
354デフォルトの名無しさん:2010/07/07(水) 12:34:28
JScriptでimportもどきって、こんなんでいいのかな?

function require(module){
  if(typeof this[module] == "undefined"){
    var  fso = new ActiveXObject("Scripting.FileSystemObject");
    eval(fso.OpenTextFile(module + ".js").ReadAll());
    this[module] = eval(module);
  }
}
355デフォルトの名無しさん:2010/07/07(水) 12:56:52
>>354
それだと不便だろ?
ScriptControl使え
356デフォルトの名無しさん:2010/07/07(水) 14:32:00
>>354
それだと不便だろ?
WSF使え
357デフォルトの名無しさん:2010/07/07(水) 17:10:21
// wsfでいいんじゃねえの?.wsf
// scriptControlつかおうが、readallでeval使おうが、どっちみち
// スクリプトの中からファイル読込みしてやらんと駄目だろ。
// それならwsfのほうが楽だ。
// エディタのマクロには使えんけどな。
//
// <job id='main'> <script language='JScript' src='./subinclude.js'>
WScript.Echo('wsf');
// </script></job>
358デフォルトの名無しさん:2010/07/07(水) 17:55:12
スクリプトを動的に変更する場合は、一般的にScriptControlを使用する

>>354 は必要なときにスクリプトを後付けする構造なので
何でもできるScriptControlにする方がベストだと思う

>>357 のやり方はスクリプトの一括読み込みなので構造が違う
無駄なスクリプトも全部読み込みたい場合はwsfでも良いけど
ファイル構成も異なるので使い難い
359デフォルトの名無しさん:2010/07/07(水) 18:04:38
>>358
スクリプトコントロールを使うっていっても、その元になるスクリプトを書かれたファイルを読み込まなくていいのか?
たとえばどうやって書くわけよ?
vbsのinput使うみたいな形で、scriptcontrol使ってる例はあるわな。
どうしてもその言語じゃ処理できない場合に使う方法として。
その場合は、スクリプトのなかで記述しちゃってるよね。
>>354は、メインのスクリプトファイルから外部の関数やクラスをimportしたいんだろうから、
その都度読み込もうが、wsfでも何の問題もないと思うんだが。
ScriptControlを使う場合の方法と、そのメリットを判り安く解説してみてくれ。
360デフォルトの名無しさん:2010/07/07(水) 18:12:49
vbsからjsならscriptcontrolかもしれんが、jsからjsならevalでええ、scriptcontrolつかうなんてあほくさ
361デフォルトの名無しさん:2010/07/07(水) 18:16:58
だいたいimportしたいってのは、ファイル構成をわけて、
過去に作った関数を再利用しやすくするためのもんだと思うんだが・・・
ファイル構成をわけたくなきゃ、同じファイルにその関数をコピペすりゃいいだけだが、
それやってくと、それはそれで面倒臭いこともある。
362デフォルトの名無しさん:2010/07/07(水) 18:34:23
scriptcontrolつかいたければつかえば? どうぞどうぞ とめないよ
363デフォルトの名無しさん:2010/07/07(水) 19:57:08
importしたい奴にScriptControlのほうがいいと薦めるのか?
意味がわからん。誰か解説ヨロ
364デフォルトの名無しさん:2010/07/07(水) 21:34:04
断る
365デフォルトの名無しさん:2010/07/07(水) 21:41:20
<?xml version="1.0"?><package><job id="fso"><script language="VBScript"><![CDATA[
rem objIEに走っているスクリプトを入れて関数を呼び出す Unicode で保存
Function obj(jobName) :Set Container = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
CreateObject("Wscript.Shell").Run "Cmd.exe /c Cscript.exe //Nologo " & _
"""" & Wscript.ScriptFullName & """" & " //job:" & jobName & " " & Container.HWND & _
" || (echo Error In JobInitialize. & pause) ", 6
On Error Resume Next :Do :Err.Clear:Set objScript = Nothing
Set objScript = Container.GetProperty(Container.HWND)
Loop While objScript Is Nothing : On Error Goto 0
If Err.Number <> 0 Then : Err.Raise Err.Number : End If
Set obj = objScript : Container.Quit : Set Container = Nothing :End Function
]]></script><script language="VBScript"><![CDATA[rem *** FUNCTIONS ***
Function objSelf() : Set objSelf = CreateObject("Scripting.FilesystemObject").GetFile(WScript.ScriptFullName)
End Function ]]></script><script language="VBScript"><![CDATA[If WScript.Arguments.Count = 0 Then
Set fso = obj("fso") : msgbox fso.objSelf.Path ,32 : fso.Quit
End If]]></script><script language="VBScript"><![CDATA[If WScript.Arguments.Count = 1 Then
PutPropertyMyself() : Zzz() : Sub PutPropertyMyself() : PropertyID = Wscript.Arguments(0) + 0
For Each objIE In CreateObject("Shell.Application").Windows : If objIE.HWND = PropertyID Then
objIE.PutProperty PropertyID, Me : Exit For
End if : Next : End Sub : Sub Quit() : WScript.Quit : End Sub : Sub Zzz() : Wscript.StdOut.WriteLine "id: " & WScript.Arguments(0)
Do : Wscript.Sleep 1000 : Wscript.StdOut.Write "Zzz..." : Loop : End Sub
End If]]></script></job></package>
366デフォルトの名無しさん:2010/07/07(水) 22:46:31
つまらん
367デフォルトの名無しさん:2010/07/08(木) 13:33:47
IEのハンドル調べて、オブジェクトとプロパティのやり取りしていろいろやるのか。凄いな。
で何が凄いんだが、解説ヨロ
368デフォルトの名無しさん:2010/07/08(木) 19:10:09
面倒だからやだ
369デフォルトの名無しさん:2010/07/08(木) 21:27:57
複数ジョブを走らせると
終了時にcmd.exe が成仏しないことに
気がつきましたので
差し替えさせていただきます

どーも すみません
370デフォルトの名無しさん:2010/07/08(木) 21:28:51
<?xml version="1.0"?><package><job id="fso"><script language="VBScript"><![CDATA[
rem よそのスクリプトの関数を呼ぶ.wsf Unicodeで保存
Function obj(jobName) : Set container = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
CreateObject("Wscript.Shell").Run "Cmd.exe /c Cscript.exe //Nologo " & _
"""" & Wscript.ScriptFullName & """" & " //job:" & jobName & " " & container.HWND & _
" || (echo Error In JobInitialize. & pause) ", 6 : On Error Resume Next : Do : Err.Clear
Set script = Nothing : Set script = container.GetProperty(container.HWND) : Loop While script Is Nothing
On Error Goto 0 : If Err.Number <> 0 Then : Err.Raise Err.Number : End If
Set obj = script : container.Quit : Set container = Nothing : End Function
]]></script><script language="VBScript"><![CDATA[Function objHere()
Set objHere = CreateObject("Scripting.FilesystemObject").GetFile(WScript.ScriptFullName).ParentFolder
End Function]]></script><script language="VBScript"><![CDATA[If WScript.Arguments.Count = 0 Then
Set fso = obj("fso") : msgbox fso.objHere.Path, 32 : fso.Quit = TRUE
End If]]></script><script language="VBScript"><![CDATA[Dim Quit
If WScript.Arguments.Count = 1 Then : PutPropertyMyself() : Zzz() : End If
Sub PutPropertyMyself() : PropertyID = Wscript.Arguments(0) + 0
For Each objIE In CreateObject("Shell.Application").Windows
If objIE.HWND = PropertyID Then : objIE.PutProperty PropertyID, Me : Exit For : End if : Next : End Sub
Sub Zzz() : Do : Wscript.Sleep 1000 : Wscript.StdOut.Write Typename(Quit)
If Quit Then : Exit Do : End If : Loop : End Sub]]></script></job></package>
371デフォルトの名無しさん:2010/07/09(金) 17:55:11
GetObject("new:つかってみたかったのか?
CreateObject(ie)でよかろうもん
372デフォルトの名無しさん:2010/07/09(金) 18:28:23
どっちもいらんけどな
373デフォルトの名無しさん:2010/07/16(金) 21:18:50
おまいらWSHのデバッグどうしてる?
エラーダイアログ見て直す?あと個別に変数表示させる?
またはスクリプトデバッガいれてレジストリ直して//xでやってる?
もっと他にいい方法あるかな?
自分でツール作ってやってる人いるかな?
374デフォルトの名無しさん:2010/07/16(金) 22:43:29
>>373
いわゆる printf デバッグ

ただ、WScript.Echo() のままでは面倒なので、
msgout("a={0}, b={1}", [a, b])
みたいに使えるヘルパ関数は自作してる
375デフォルトの名無しさん:2010/07/16(金) 22:53:26
よく使うのは
msgbox escape()
msgbox typname()
だね
376デフォルトの名無しさん:2010/07/16(金) 23:09:08
正規表現とかの文字列処理は組み込んでからデバッグするんじゃなくて
該当部分だけ先にインタプリタ系ツールで試して問題ないことを確認してから
プログラムの本体に組み込む
377デフォルトの名無しさん:2010/07/17(土) 00:36:58
なるほどなるほど・・・
MSのスクリプトデバッガつかってるひとはいないのか。
試してみて、使いやすいとは思えなかったんでエディタと連携させて
自分で適当な関数を作ったほうがいいのかもしれんと思ったのだが・・・

デバッグに絡んで、関数の中で、実行中のその関数の名前を取得したいと思って
いろいろ試してるんだが、
functest=function(a){
s1=arguments.callee.toString() ;//だとfunction以降の中身が表示されて、関数の名前は表示されない。
s2=arguments.callee.name;// だとnetscapeでは関数の名前が表示されるらしいがJscriptでは使えない。
WScript.Echo(s1 +"\n"+ s2);
};
functest();

ということでいろいろ聞きたかったんだが
function functest(a){
とやることで名前を取得できるメドが立ちましたw
一応チラ裏ってことでメモ。
378デフォルトの名無しさん:2010/07/17(土) 13:59:43
IE8に標準のデバッガ使うのはどうだ?ラッパー関数つかって誤魔化せばどうにかなりそうだが。
379デフォルトの名無しさん:2010/07/20(火) 00:33:11
JScript(HTA)で
20→"\x20\00\00\00" // 32bitリトルエンディアン
みたいな変換をする方法があったら教えてください
バイナリ列を扱おうとして詰まった・・・(´・ω・`)
380デフォルトの名無しさん:2010/07/20(火) 01:05:23
>>379
20 => "\x14\x00\x00\x00" でよいのかな?
それでよいなら無理やりだけど以下

function SaveBin(filename, bin) {
var stm = new ActiveXObject("ADODB.Stream");
stm.Type = 1; // 1=adTypeBinary;
stm.Open();
stm.Write(bin);
stm.SaveToFile(filename, 2); // 2=adSaveCreateOverWrite
}
function CodeToBinary(code) {
var uc1 = String.fromCharCode(code & 0xffff);
var uc2 = String.fromCharCode((code >> 16) & 0xffff);
var stm = new ActiveXObject("ADODB.Stream");
stm.Type = 2; // 2 = adTypeText
stm.Charset = "UNICODE";
stm.Open();
stm.WriteText(uc1);
stm.WriteText(uc2);
stm.Position = 0;
stm.Type = adTypeBinary;
stm.Read(2);
return stm.Read(4);
}
SaveBin("binary1.dat", CodeToBinary(20))
SaveBin("binary2.dat", CodeToBinary(65536))
381379:2010/07/20(火) 02:32:44
>>380
レスありがとうございます
>20 => "\x14\x00\x00\x00" でよいのかな?
そうです。>>379は誤りですorz
そのような力業しかないのですか・・・
がんばってみます
382デフォルトの名無しさん:2010/07/20(火) 03:45:38
こういうのじゃだめなん?

function toString32LE(code){
  var s = "";
  for (var i = 0; i < 4; ++i) {
    var  n = code & 0xff;
    code = code >> 8;
    s += String.fromCharCode(n);
  }
  return s;
}

function parseString32LE(str) {
  return (
    str.charCodeAt(0) +
    (str.charCodeAt(1) << 8) +
    (str.charCodeAt(2) << 16) +
    (str.charCodeAt(3) << 24)
  ) >>> 0;
}
383380:2010/07/20(火) 13:13:50
>>382
以前試したとき、文字列で保持するとファイル読み書きが
うまくできなかった気がした
バイナリファイルの解析みたいなものだとそれがネックになる

逆にいえば、それを気にしないか、あるいは読み書きがクリアできるなら
確かに文字列の方が楽だと思う
JavaScriptで画像解析みたいなネタもどこかで見たので、
ひょっとするとそもそもそんな難しい問題ではないのかもしれないが
384デフォルトの名無しさん:2010/07/21(水) 03:22:23
JScriptのバイナリファイルアクセスは鬼門だよな。
書き出しはADODB.Streamをlatin-1で使えばいいとして、読み込みがしんどい。
バイナリタイプでは手も足も出ないからテキストタイプを使うしかないけど、
latin-1で読み込むと0x80-0x9fがutf-16の対応する文字に変換されちゃうし(逆変換で対応)、
utf-16で読み込むと先頭がBOMに一致する場合の対処が必要だし、
他のキャラクタセットだともっとめんどいし。
385デフォルトの名無しさん:2010/07/21(水) 15:29:48
そうかなぁ
ADODB.Stream使えば読むのも書くのも自由自在だけど
バイナリを1バイト置きにコピーしてUnicodeで見ればよい。
386デフォルトの名無しさん:2010/07/22(木) 00:54:32
結局テキストファイルほど簡単にはいかなくて、>>380みたいな変換処理が必要になるのか。
387デフォルトの名無しさん:2010/07/22(木) 02:41:08
00-ffを透過するコードページを使う
388デフォルトの名無しさん:2010/07/22(木) 19:15:04
ADODB.Streamはマカフィーが問答無用で警告を出すのでちょっと使いにくい(特にスクリプトを配布する場合)
389デフォルトの名無しさん:2010/07/22(木) 19:49:06
HTML+JavaScriptでアプリ作成の決め手になるの?Titaniumってやつ。
Windows, Linux, Mac, Andoroid,iPhoneまで同じ技術でカバー出来るらしいが。
HTAみたいなもんか? オマイらどう思う?

ここはAppcelerator Titaniumの日本語情報を整備するためのプロジェクトです。
クロスプラットフォームのアプリ開発としては非常に敷居が低く、javascriptだけでなくpythonやruby、phpなどを利用する事で、
webサービス系ライブラリの流用も可能であり、手軽なツールからサービスクライアントの作成が非常に容易になります。 * 2010/03/22 o 公開
ttp://www.appcelerator.com/products/download/

Titanium Desktopでアプリケーション開発中
ttp://blog.livedoor.jp/takabrk/archives/52647017.html

Appcelerator Titanium DesktopでRuby,Python,PHPを使ったお手軽デスクトップアプリ開発その1
ttp://d.hatena.ne.jp/yuichi_katahira/20100219/1266605194
390デフォルトの名無しさん:2010/07/24(土) 09:49:36
謎のオブジェクトを発見

rem a.vbs
msgbox WSH Is WScript
391デフォルトの名無しさん:2010/07/24(土) 15:39:44
>>390
ほれ

謎のオブジェクトを発見.js

for(var o in this){WScript.Echo(o);}
392デフォルトの名無しさん:2010/07/27(火) 11:04:47
//なるほど。その方法でも関数の名前が取得できるね。

getfunctionname=function(obj){
var sname;for(sname in obj){;};
return(sname);
};

funtest=function(s){
var sret=getfunctionname(this);
WScript.Echo('1 '+ function(){var s='';for(var o in this){s=o;};return(s); }() );
return(sret);
};

WScript.Echo('この関数の名前は '+ funtest() );
393デフォルトの名無しさん:2010/07/28(水) 10:14:25
ログをExecelシートに貼り付け〜なんて非生産的な作業があって、これをKeyLoggerみたいなので
自動化できればと思いまして、WSHで作れるかなと思ったのですが。
あまり詳しくないんだけども、イベントを追跡してってソフトの起動、ボタンクリック等の操作を記録で
きますでしょうか?それが無理ならキーボードのキーやマウス操作を記録して操作の再現ができますか?
394デフォルトの名無しさん:2010/07/28(水) 10:52:32
Excelのオブジェクトを操作するんじゃなくて、キー操作でうにゃうにゃしたいなら
UWSCでいいんじゃないの?日本語HELPもある。ポータブルでも動くし。
途中で複雑な判断いらない処理なら、UWSCでキー操作を記録して片付けるのがいい。
WSHに詳しくて、その技術を使って途中でいろいろ処理を分けたほうがいいとしたら、
他のソフトに絡むとこだけUWSCで記録しといたマクロをRunさせてまぜて使うとか。
またはAutoItXのDLL使って、ほかのソフトと絡む部分だけ処理させる。
USBのフォルダにシステムからコピーしたWScript.ExeやCscript.exeとmanifestとDLL使えば
UWSCと同じようにポータブルでも使える。
395デフォルトの名無しさん:2010/07/28(水) 16:58:13
excelでやれば
396デフォルトの名無しさん:2010/07/28(水) 22:50:48
ありがとうございますAutoItにUWSCですね。これはしかし動作を指定する必要がありますね。

癖とかありそうで結構手間がかかりそう。。

単純にWindows上の操作を一定期間記録して後で再現とか、できないんですかね。
397デフォルトの名無しさん:2010/07/29(木) 02:52:53
すれ違いだよ
398デフォルトの名無しさん:2010/07/29(木) 02:59:51
ソフト板で聞け
399デフォルトの名無しさん:2010/07/29(木) 03:21:57
謎のオブジェクトを発見

rem a.vbs
msgbox typename(me)
400デフォルトの名無しさん:2010/07/29(木) 05:19:19
>>396
こいつ、UWSCについて調べずに書き込んだな。
401デフォルトの名無しさん:2010/07/29(木) 08:02:10
>>単純にWindows上の操作を一定期間記録して後で再現とか、できないんですかね。
UWSCってそういうことするためのソフトなんだが・・・
402デフォルトの名無しさん:2010/07/29(木) 09:52:25
ゴメンさらっと見てそういう事ができると思わなかった。UWSC便利ですね。
複数のソフトをダウンロード&自動インストールなんて事もできるんだろうか・・
ちょっと使ってみます。どうも。
403デフォルトの名無しさん:2010/07/31(土) 17:11:20
Document.body.innerTextでWeb上の文字列を取得し
その文字列に含まれるキーワードを検索して
発見した場合の処理と見つからなかった時の処理をするにはどうしたらいいでしょうか


if ((IE.Document.body.innerText)==("文字列")) { //処理1 } else { //処理2 };

これだと動かないのです
404デフォルトの名無しさん:2010/07/31(土) 18:31:36
vbscriptならinstr()だな
405デフォルトの名無しさん:2010/07/31(土) 19:08:06
>>404
ありがとうございます
JavaScriptではどうなのでしょうか
406デフォルトの名無しさん:2010/07/31(土) 19:21:28
Stringオブジェクトのメソッドに同じようなものがあるだろ
407デフォルトの名無しさん:2010/07/31(土) 19:33:28
match()?
408デフォルトの名無しさん:2010/07/31(土) 21:22:20
if( /hogehoge/i.test(IE.Document.body.innerText)){ / * true * /;  ;}else{ / * false * / ;};

//正規表現のtestじゃだめか?
409デフォルトの名無しさん:2010/08/03(火) 15:41:46
>>403
自分は、この方法で逃げている。

if ((IE.document.body.innerText).indexOf("文字列") != -1) { // 処理1} else { // 処理2 };

VBSはシラネ
410409:2010/08/03(火) 15:53:02
match()を使うなら、

if ((IE.document.body.innerText).match(/文字列/) != null) { // 処理1 } else { // 処理2 };
411デフォルトの名無しさん:2010/08/03(火) 17:43:08
Webページを操作するなら、スクリプト使うのが前提の
NilとかBugとかプニルつかって、そっちのオブジェクトつかったほうがいいんじゃない?
どうしてもIE使ったほうがいいの?
412デフォルトの名無しさん:2010/08/03(火) 20:15:08
>>409のついでに質問してみる

innerHTMLで文字列を発見した時その行のリンクをクリックするのは可能?
413409:2010/08/03(火) 20:51:08
>>412
可能だとは思う。
該当するinnerHTMLが含まれている、"a"タグを特定して、.click()で出来るのでは。

自分は泥臭い方法でやってるけど、スマートな方法が有ったら教えて欲しい。

自分がやっている方法:

for (var i = 0; i < IE.document.all.tags("a").length; i++) {
if ((IE.document.all.tags("a")[i].outerHTML).indexOf("文字列") != -1) {
IE.document.all.tags("a")[i].click();
// リンクをクリック後に行う処理
break;
}
}
414デフォルトの名無しさん:2010/08/03(火) 20:54:03
>>412
リンクからたどればよい

for (i=0; i<ie.document.links.length; i++) {
if (ie.document.links[i].innerText=="リンク文字列") {
ie.document.links[i].click(); break;
}
}

もし、リンク文字列ではない文字列から近隣のリンクを探したいってことならもっと面倒になる
415デフォルトの名無しさん:2010/08/03(火) 21:55:44
>>414
>もし、リンク文字列ではない文字列から近隣のリンクを探したいってことならもっと面倒になる
それがやりたいけど方法が思いつかないのよね

>>413のように
IE.document.all.tags("a")[i].click();
を使えばできるかもしれないけど
これだと 目的のリンクをクリックしてくれるとは限らないというね
416デフォルトの名無しさん:2010/08/03(火) 21:59:15
>>415
indexOfで文字列を発見した所より前の文字列でIE.document.all.tags("a")[i].click();
を使う・・・あ できるかも

ちょっとソースコード書いてみる
417409:2010/08/03(火) 22:09:17
>>415
>>もし、リンク文字列ではない文字列から近隣のリンクを探したいってことならもっと面倒になる
>それがやりたいけど方法が思いつかないのよね

文字列が、aタグの外に有る場合なの?
文字列0<a href="...">文字列1</a>文字列2
で、文字列1ではなく、文字列0や文字列2を探してクリックとか。

確かに面倒だね。
.parentNodeとか、.previosSiblingや.nextSiblingとか、ゴチャゴチャ使わないと駄目そうだね。
418409:2010/08/03(火) 22:10:27
もう眠い。
今日は寝る。
419デフォルトの名無しさん:2010/08/03(火) 22:13:23
>>417
<a href="...">文字列1</a>文字列2

文字列2を検索するのは
if ((IE.document.body.innerText).indexOf("文字列2") != -1)
文字列1を検索するには 文字列2より前の文字列を検索する必要がある


420デフォルトの名無しさん:2010/08/03(火) 22:20:14
>>419
調べてみたら使えそうなものがあった
lastIndexOf

これでソースコードを完成できるよ みんなありがとう
421デフォルトの名無しさん:2010/08/03(火) 22:43:38
for (i=0;i< IE.document.all.tags("a").length; i++) {
if ((IE.document.all.tags("a")[i].outerHTML).lastIndexOf("文字列2") != -1) {
IE.document.all.tags("a")[i].click();

これじゃだめなのか・・・
422409:2010/08/04(水) 06:50:25
>>421
それ、後方から文字列を探すやつ。
前方から探すより、後方から探す方が探す時間が短い場合が有るから、そういう時に自分は使っている。
例えば、文字列1と文字列2が、非常に酷似していて、最後の数文字だけが異なる様な場合、比較回数が多分少ないのではないかと…

<a href="...">[文字列A][文字列1][文字列B][文字列2][文字列C]</a>

とかの場合。
423409:2010/08/04(水) 15:22:56
>>421
HTMLのタグ構造がどうなっているか示さないと、一体何をしたいのか分からないと思うよ。

(1) <div><a href="...">文字列1</a>文字列2</div>
となっているのか、
(2) <a href="...">文字列1</a><p>文字列2</p>
となっているのか等。

(1) の場合、
for (var i = 0; i < IE.document.all.tags("a").length; i++) {
if ((IE.document.all.tags("a")[i].parentNode.indexOf("文字列2") != -1) {
IE.document.all.tags("a")[i].click();
break;
}
}


(2) の場合、
for (var i = 0; i < IE.document.all.tags("a").length; i++) {
if ((IE.document.all.tags("a")[i].nextSibling.outerHTML).indexOf("文字列2") != -1) {
IE.document.all.tags("a")[i].click();
break;
}
}

とかじゃ駄目かな?
試してないから分からないけど。
424409:2010/08/04(水) 15:29:47
それより、JScriptからファイルをランダムアクセスする事って出来ないのかなぁ?
JScriptから利用出来るフリーのDLLとか有れば良いんだけど。

Perl等のファイルにランダムアクセス可能なスクリプトからIE操作すれば、一番良いんだろうけど、
PerlもVBも分かんねーし。
425デフォルトの名無しさん:2010/08/04(水) 18:06:24
>>ファイルをランダムアクセスする
???
426デフォルトの名無しさん:2010/08/04(水) 21:24:12
>>424
adodb.streamは?
427デフォルトの名無しさん:2010/08/05(木) 08:18:18
IEのボタンクリック
VBSだとちゃんとできるのにJScriptだとできないなぜだぁぁぁぁ


<form action="." method="post" >
<input type="hidden" name="...." value="..." class="">
<input type="hidden" name="..." value="..." class="">
<input type="hidden" name="..." value="..." class="">
<input type="hidden" name="..." value="..." class="">
<input type="hidden" name="..." value="..." class="">
<input type="hidden" name="..." value="...." class="">
<center>
<input type="submit" value="..." class="...">
</center>
</form>

VBS : IE.Document.Forms(0).Item(6).click
JScript : IE.Document.forms(0).Item(6).click();

428デフォルトの名無しさん:2010/08/05(木) 09:31:37
これも反応しない

<input type="text" value="" size="20" class="test">

IE.Document.forms(0).Item(0).value = "あああ"
429デフォルトの名無しさん:2010/08/05(木) 10:22:11
そういうことなら、その部分だけとりあえずはスクリプトコントロールで逃げといて、あとでじっくり考えるw
430デフォルトの名無しさん:2010/08/05(木) 22:30:49
JScriptで普通にいけるんじゃないの?

ie = new ActiveXObject('InternetExplorer.Application');
ie.visible = true;
ie.navigate('http://www.google.co.jp/')
WScript.Sleep(2000);
ie.document.forms(0).item(2).value='WSH';
ie.document.forms(0).item(3).click();
431デフォルトの名無しさん:2010/08/06(金) 08:25:47
>>430
どうもそのページだけできないんだ

入力フォームをクリックするとフォームの横に文字が表示されるものだから Inputタグのclassが怪しいと思うんだが
432409:2010/08/06(金) 12:13:20
>>431
nameやclassの属性がformsになっていたりしない?
433デフォルトの名無しさん:2010/08/06(金) 12:30:33
>>432
なってない
さすがにそんなミスはない

434デフォルトの名無しさん:2010/08/06(金) 13:04:00
wshでツールチップを指定した座標位置に表示させることは可能ですか?
435デフォルトの名無しさん:2010/08/06(金) 13:16:46
AutoItX使えば出来る。
oAutoIt = new ActiveXObject( "AutoItX3.Control.1" );
oAutoIt.ToolTip("WSH★★★こんばんみ★★★Part7",500,500);
436デフォルトの名無しさん:2010/08/08(日) 11:53:00
if文でWEB上にボタンがある時の処理とない時の処理をする方法ってある?

437409:2010/08/08(日) 19:39:00
>>436
outerHTMLを取得して、解析すれば良いだけでは?
ボタンがFlashとか、HTML以外だと厄介だけど。
見た目がボタンでも、 type = "button" の場合と、 type = "image" の場合が有るから、また厄介だけどね。
438デフォルトの名無しさん:2010/08/08(日) 21:17:28
>>437
なるほどそれがあったか・・・
と なると

if ((IE.Document.body.outerHTML)==(IE.Document.forms[0])) {
WScript.echo("YES")} else{WScript.echo("No")}

こうかな・・・
439409:2010/08/08(日) 21:33:13
>>438
それだと、うまくいかないでしょ。
440デフォルトの名無しさん:2010/08/08(日) 21:58:08
>>439
となると

if ((IE.Document.body.innerText)==(IE.Document.body.innerText.indexOf("form"))){ //処理 } else { //処理2 }

こう・・・でもないな
441デフォルトの名無しさん:2010/08/08(日) 22:07:32
innerTextでページ内のHTMLを・・・

・・・あれ?


if ((IE.Document.body.innerHTML)==(IE.Document.body.innerHTML.indexOf("form")))
これでもだめ?
442デフォルトの名無しさん:2010/08/08(日) 22:13:58
innerHTMLでページ内のHTMLを全部取り出すんだから
innerHTML.indexOf("文字列") で検出した文字列とinnerHTMLのソースと照らし合わして処理・・・じゃないのか?
ならなんで動かないのかと
443409:2010/08/08(日) 22:15:05
>>441
その条件式では、左辺値と右辺値は永遠にイコールにはならないから。
444デフォルトの名無しさん:2010/08/08(日) 22:22:21
>>443
IE.Document.body.innerHTML.indexOf("form")は文字列を検出して表示するんじゃないのか?

文字列があるならその文字列を表示してなければ-1だったはずだが
それと左辺値を比較して左辺値の文字列の中に右辺値の検出した文字列があれば処理1 なければ処理2じゃないのか?

445デフォルトの名無しさん:2010/08/08(日) 22:33:22
あぁ・・・そういうことね

左辺値からすでに間違えていたのか俺は

if((IE.Document.body.innerHTML.match("form")==("form"))

左辺値がソース全体だったら右辺値はformだけでソースとまったく一致しない
ならば左辺値をソース全体からformだけを検出し なければnull それを右辺値と比較

こんな簡単なことに気付かなかった自分が恥ずかしいわ。。。
446409:2010/08/08(日) 22:39:18
>>444
indexOfの説明を良く読んだ方がいいと思う。

ttp://www.microsoft.com/downloads/details.aspx?familyid=e74494d3-c4e1-4e18-9c6c-0ea28c9a5d9d&displaylang=ja
から、 scd56jp.exe をダウンロードし、インストールすればヘルプファイルがインストールされると思う。

直リンクはこちら
ttp://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe

結構役に立つ。
あと、 IE Developer Toolbar も便利。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en
447デフォルトの名無しさん:2010/08/09(月) 01:17:32
http://www.mbga.jp/.pc/_u?u=14965811&_root=msg_list
http://www.mbga.jp/.pc/_dia_list?u=14965811&_from=u_dia
この子ね

>>403 と全く同じ質問しててワラタ
ポイント稼ぐために、必死こいてスクリプト組んでるみたいよw
448デフォルトの名無しさん:2010/08/09(月) 09:59:26
>>447
ワロタ
なんだこのハゲ リアルでのハゲなのか?w
449デフォルトの名無しさん:2010/08/09(月) 13:35:23
IEで
document.location.reload() はできて
document.location.back() はできないんだな
450デフォルトの名無しさん:2010/08/09(月) 13:51:43
document.histry が使えないって・・・
451409:2010/08/09(月) 18:45:15
ところで、WSH使いって、仕事の案件等の為に使っている人と>>447みたいな人とどっちが多いの?

自分は>>447の様な理由でやってるだけだけどさ。
プログラムは20年近く昔に学生の頃に授業でFortran77とLispのS式を習った程度。
学生時代、一緒だった人は何だか未踏のスーパークリエイターで表彰台に上っている写真がIPAのサイトに掲載されてたけどさ。

楽天のメルマガが1週間で2千通を超えるので、メルマガ解除用のスクリプトでも書くか…
452デフォルトの名無しさん:2010/08/11(水) 17:17:28
過疎だなぁ

WSHってそんなにマイナーかな
453デフォルトの名無しさん:2010/08/11(水) 17:25:57
作者タンがカキコしてくれないからな。
454デフォルトの名無しさん:2010/08/11(水) 17:40:27
ハゲでも誰でもいいから来てくれ…
455デフォルトの名無しさん:2010/08/13(金) 01:19:09
みんな暇そうだから質問投下


VBSで多重起動を防止するのをJSでできるか


FSOだとロックファイルの作成と削除はできるけど 重複した時の処理が分からない
456デフォルトの名無しさん:2010/08/13(金) 04:56:28
>VBSで多重起動を防止するのをJSでできるか
この意味が分からないけど、
単純に多重起動を抑止するなら、

1. アプリ起動時にロック用フォルダを作成
2. アプリ起動時にロック用フォルダを削除

1. のフォルダ作成に失敗したらほかのインスタンスが起動中なので、メッセージを表示して終了
でダメなの?
457デフォルトの名無しさん:2010/08/13(金) 17:11:53
http://blogs.msdn.com/b/ie/archive/2010/08/04/html5-modernized-fourth-ie9-platform-preview-available-for-developers.aspx

Nanalich 5 Aug 2010 7:50 PM
Is it still possible to use the new JScript engine with ECMAScript 5 features outside of IE?
Like in WSH and/or HTA?

EricLaw [MSFT] 6 Aug 2010 6:55 AM
JScript9.dll is not presently supported for use outside of IE9, HTAs, and Web Browser controls,
so no, it won't be loaded by WSH.



もしかしてWSH切り捨て?
458455:2010/08/14(土) 20:10:13
VBSでいう Err.Number はJSではどういう使い方?


VBSでの二重起動防止の方法をJSに直してみたんだけど Err.Numberだけ使えないんだ
459デフォルトの名無しさん:2010/08/14(土) 20:57:05
VBScript
何らかの処理
If Err.Number <> 0 Then
エラーの処理
End If

JScript
try {
何らかの処理
} catch (e) {
エラーの処理
}

vbs ではオプションによるが、エラーが発生したときでも、
処理は継続し、その代りにエラーコードが Err.Number にセットされる
js ではエラーが発生すると例外が発生し、try〜catchで捕まえないとアプリケーションが終了する
460455:2010/08/14(土) 21:23:35
>>459
サンクス
ScriptControlで on error resume next を呼び出してErr.Numberの代わりにすることにした


あと
FSOでファイルを削除するプログラムをmakeexeでexeにすると うまく動かないのは俺だけ?


Test.js
(略)
FSO.DeleteFile("Test.exe",true)


これをexeにして起動しても削除できないようです
461デフォルトの名無しさん:2010/08/16(月) 13:57:47
>>457
つまりWSHの進化はこれで止まって、枯れた技術になり、仕様の変更とかややこしいこと考えなくて済むようになるってことか?
462デフォルトの名無しさん:2010/08/16(月) 20:21:32
馬鹿っぱやいJScriptのHTAとかは作ってみたかったかも
463デフォルトの名無しさん:2010/08/20(金) 19:42:58
IEオブジェクトを使ってスクリプトとスクリプトの間で共有メモリみたいな感じで通信=相互にデータのやり取りしようと思ってます。
データのやり取り専用のIEオブジェクトを最初に1つ作っといて、終了せずにずっと使い続けるって形です。
Shell.ApplicationでそのIEのオブジェクトを探して、そこにプロパティ付けて通信するってことです。
XPとIE8だと、new ActiveXObject('InternetExplorer.Application')でIEオブジェクトをつくって
そこにプロパティを付けて、値を設定すればスクリプト間でデータのやり取りができました。
で、Vistaでも試したら問題なく動きました。
ところが、XPとIE6の古いPCではすぐにIEオブジェクトが消えてしまうようでうまく行きません。
ウィンドウを開いた普通のブラウザのIEオブジェクトに対してならデータのやり取りは出来ましたが、
ユーザーが何の気なしにそのウィンドウを閉じたらオシマイです。
ウィンドウなしのIEオブジェクトならそんな心配がないのでいい方法だと思ったんですが、
うまくいかない環境があるようです。結局、このPCはWindowsUpdateしてIE8の環境にまであげたらIEオブジェクトは消えずに通信できました。
となると、この先もなんらかのUPDATE次第で、IEオブジェクトを使った通信は出来たり出来なくなったりするのでしょうか?
簡単に動いたから勿体ない気持ちもあるけど、こんな方法は邪道だから辞めた方がいいのかなw
テキストファイルを使うか、SFCminiを使って共有メモリの関数作っちゃったほうがいいんでしょうかね?
464デフォルトの名無しさん:2010/08/20(金) 20:08:54
>となると、この先もなんらかのUPDATE次第で、IEオブジェクトを使った通信は出来たり出来なくなったりするのでしょうか?

yes

>簡単に動いたから勿体ない気持ちもあるけど、こんな方法は邪道だから辞めた方がいいのかなw

yes

>テキストファイルを使うか、SFCminiを使って共有メモリの関数作っちゃったほうがいいんでしょうかね?

no
465デフォルトの名無しさん:2010/08/22(日) 13:32:25
>となると、この先もなんらかのUPDATE次第で、IEオブジェクトを使った通信は出来たり出来なくなったりするのでしょうか?

yes

>簡単に動いたから勿体ない気持ちもあるけど、こんな方法は邪道だから辞めた方がいいのかなw

yes

>テキストファイルを使うか、SFCminiを使って共有メモリの関数作っちゃったほうがいいんでしょうかね?

no

そのものズバリのオブジェクトを公開するコンポーネントってのがある。こっちのほうが簡単。
>>このコンポーネント(COMサーバー)は、指定した COMオブジェクトを外部に公開し、
>>他のアプリケーションからアクセス出来るようにするものです。
RunObj.exe /RegServer で40KBのファイルを入れるだけ。
var ro = new ActiveXObject('Hyon.RunObject');
ttp://hyons.hp.infoseek.co.jp/#RunObjectComponent
これでオブジェクトを作った側のプロセスが生きてる限り、オブジェクトのプロパティを共有できる。
相互に通信したいならこれで行ける。
466デフォルトの名無しさん:2010/08/23(月) 13:36:56
DDE通信なら田楽サーバと田楽DLLでもいいんじゃね?
467デフォルトの名無しさん:2010/08/24(火) 11:31:25
質問。 ScriptControlのAddObjectって一回に1つのオブジェクトしか追加できないんですか?
468デフォルトの名無しさん:2010/08/24(火) 23:05:27
IScriptControl.AddObjectの定義を見ると1つだけのようだ。
[id(0x000009c4), helpstring("Add an object to the global namespace of the scripting engine"), helpcontext(0x00113f4d)]
void AddObject(
[in] BSTR Name,
[in] IDispatch* Object,
[in, optional, defaultvalue(0)] VARIANT_BOOL AddMembers);
469デフォルトの名無しさん:2010/08/25(水) 14:01:43
サンクスです。ScriptControl AddObject でググッても多くの資料は出てこないようですが、
どこかに判りやすい解説をしてるページはありますか?
470デフォルトの名無しさん:2010/08/26(木) 00:28:57
ググッたんなら↓見たろ? これじゃダメかい?
スクリプト コントロールの AddObject メソッドを使用する方法
ttp://support.microsoft.com/kb/185697/ja
471デフォルトの名無しさん:2010/08/26(木) 01:01:56
そもそもCOMに可変長引数ってあるの?
472デフォルトの名無しさん:2010/08/26(木) 01:25:28
ScriptControl.Run("Name", arg1, arg2, ... argn) とか、ふつうにやるじゃんか。
MIDL上はSAFEARRAY(VARIANT)になってるみたいね。
[id(0x000007d3), vararg, helpstring("Call a procedure defined in the global module"), helpcontext(0x00113f09)]
VARIANT Run(
[in] BSTR ProcedureName,
[in] SAFEARRAY(VARIANT)* Parameters);
473デフォルトの名無しさん:2010/08/30(月) 22:05:56
WSHShell.Environment("Process");

でItemを作って他のファイルに変数を渡そうとしてるんだけど 文字化けして
-1.#IND
になってしまうのですがどうすればいいでしょうか
474デフォルトの名無しさん:2010/08/30(月) 22:43:40
>>473
他のファイルってのが何かわからないけど、
環境変数はプロセス毎のもので子プロセスにしか
引き継がれないからではないだろうか
475デフォルトの名無しさん:2010/09/04(土) 20:46:22
てs
476デフォルトの名無しさん:2010/09/04(土) 20:47:30
Open OfficeのプログラムIDってありますか?
477デフォルトの名無しさん:2010/09/04(土) 20:49:32
サゲ進行なんですかね
失礼
478デフォルトの名無しさん:2010/09/04(土) 21:04:18
>>476
やったことないけどこのへん参考になるのかな
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge
479467:2010/09/04(土) 21:13:49
>>478
ありがとうござます
公式にページがあったんですね。

エクセルよりめんどくさそう…
480デフォルトの名無しさん:2010/09/14(火) 06:26:28
WMIか何かで、起動中のプロセスのコマンドラインオプションを得る方法はないでしょうか?
Win32_Process では取得できないみたいで…
481デフォルトの名無しさん:2010/09/14(火) 06:48:14
Win32APIのならわかるが
482デフォルトの名無しさん:2010/09/14(火) 07:05:10
SFC miniとか使ってやるのでしょうか?
Win32APIは使ったことがないので、教えてください
483デフォルトの名無しさん:2010/09/14(火) 10:50:32
>>480
XP以降ならWin32_ProcessのCommandLineで取れるよ
484デフォルトの名無しさん:2010/09/14(火) 13:49:05
ありがとうございます。それで取れました。
http://www.anchorsystems.jp/anchor/ashp/netmon/samples/wmi_os.html#Win32_Process.htm
に載ってなかったので、そもそも無いのかと思ってました。
485デフォルトの名無しさん:2010/09/14(火) 14:19:09
486デフォルトの名無しさん:2010/10/09(土) 17:41:15
Windows Script Host のエラーダイアログを非表示にすることはできませんか?
487デフォルトの名無しさん:2010/10/09(土) 17:56:45
try catchとかon error resume nextとかやればいいんでないの
488デフォルトの名無しさん:2010/10/09(土) 18:19:36
try catchでもエラーが出るようなんです

underfined はNull またはオブジェクトではありません
489デフォルトの名無しさん:2010/10/09(土) 18:53:24
そりゃ underfined はそうだろうね。
490デフォルトの名無しさん:2010/10/10(日) 20:06:36
そうだね、ごめん。
491デフォルトの名無しさん:2010/10/24(日) 14:40:44
001.txtから150.txtまでの空のテキストファイルを任意のフォルダに一括作成する方法を教えてください
492デフォルトの名無しさん:2010/10/24(日) 14:48:19
そんなのをWSHでやるのは面倒臭い
493デフォルトの名無しさん:2010/10/24(日) 14:48:55
set fso = wsh.CreateObject("Scripting.FileSystemObject")
for i = 1 to 150
 fso.CreateTextFile(right("00" & i, 3) + ".txt")
next
494デフォルトの名無しさん:2010/10/24(日) 14:49:15
>>492
何でやれば楽なんですか?
よろしけば教えてください
495491:2010/10/24(日) 14:54:40
>>493
できました。
ありがとうございます。
496デフォルトの名無しさん:2010/10/24(日) 14:56:47
逝ってヨシ
497デフォルトの名無しさん:2010/10/24(日) 15:00:14
コマンドプロンプトのバッチでやるとかどう?
498デフォルトの名無しさん:2010/10/24(日) 15:14:20
499デフォルトの名無しさん:2010/10/24(日) 23:36:14
30分くらいのやり取りで完結してしまうとかスタックオーバーフロー並だな
過疎スレの癖にw
500デフォルトの名無しさん:2010/10/24(日) 23:38:44
m9

くやしいのう くやしいのう
501デフォルトの名無しさん:2010/10/25(月) 00:39:32
>>493
right("00" & i, 3)
コレに気づかず
if a < 100 then gyoubangou = "0" + a
if a < 10 then gyoubangou = "00" + a
なんて事してた。
サンクス。
502デフォルトの名無しさん:2010/10/25(月) 01:24:06
2ch は心の荒んだ人の溜り場だな
503デフォルトの名無しさん:2010/10/31(日) 13:54:53
△心の荒んだ人の溜り場
○ヒトが心の歪みを、吐き出す場所。
504デフォルトの名無しさん:2010/11/01(月) 20:30:07
32bitで動いてるか64bitで動いてるかどうやって判定する?
505デフォルトの名無しさん:2010/11/01(月) 20:38:35
wscript.fullname
506デフォルトの名無しさん:2010/11/01(月) 21:41:24
タスクマネージャ見れば32bitで動いてるプロセスは
firefox.exe * 32
みたいになってる
507デフォルトの名無しさん:2010/11/01(月) 22:18:52
貧乏人は32bit。所得が高い人は64bit。顔を見れば判る。
508デフォルトの名無しさん:2010/11/02(火) 01:07:29
509デフォルトの名無しさん:2010/11/02(火) 01:13:13
if( typeof( koumuin ) == "object" ){
WScript.Echo("あなたは勝ち組64bitです")
}else{
WScript.Echo("あなたは消費とは無縁な32bitです")
}
510デフォルトの名無しさん:2010/11/02(火) 16:54:11
32bit winの32bit ieと64bit winの64bit ieが区別でけんな
511デフォルトの名無しさん:2010/11/02(火) 18:11:28
folderexist("c:\windows\syswow64")
512デフォルトの名無しさん:2010/11/22(月) 21:12:19
WindowsXPでコマンドプロンプトを使用しています。
colorコマンドや、cmd /t:である程度色は変更可能ですが、
ショートカットファイルでの設定
ttp://cmd-pro.com/pro_color.html
のように、もっと色を細かく指定したいと考えています。

WSHのCreateShortcutで、色を指定したショートカットファイルを作ることはできないでしょうか?
よろしくお願いします。
513デフォルトの名無しさん:2010/11/22(月) 23:48:36
\HKEY_CURRENT_USER\Console
の中に ColorTable00 〜 ColorTable15 っていうのがデフォルト 16 色

個別の設定は標準の cmd.exe なら
\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

C:\hoge\fuga\hage.exe なら
\HKEY_CURRENT_USER\Console\C:_hoge_fuga_hage.exe

に ColorTableNN を追加
514512:2010/11/23(火) 06:35:27
>>513
ありがとうございます。
いけました。
515デフォルトの名無しさん:2010/11/23(火) 09:08:57
Vistaだとうまくいかないみたいだけどwindows7ではどうなんだろう?
516デフォルトの名無しさん:2010/11/23(火) 09:43:25
\HKEY_CURRENT_USER\Console\ショートカット名(.lnkを除く)

の ColorTableNN を上書き
で逝けました
517デフォルトの名無しさん:2010/11/23(火) 10:10:12
ありがとうございます。
いけました。
518デフォルトの名無しさん:2010/11/23(火) 11:14:45
>>516
それWindows7での話?
519デフォルトの名無しさん:2010/12/04(土) 19:35:44
cscriptから起動してるときにウィンドウのタイトルをjscriptから変えるにはどうしたらいいんだろ?
520デフォルトの名無しさん:2010/12/05(日) 03:46:26
new ActiveXObject("WScript.Shell").Exec("cmd.exe /c title newtitle")
521デフォルトの名無しさん:2010/12/05(日) 13:39:12
ありがとうございました。いけました。
522デフォルトの名無しさん:2010/12/06(月) 22:47:48
IEをバージョンアップしてjscript.dllが新しくなったらWSH上のJScriptも早くなるの?
523デフォルトの名無しさん:2010/12/06(月) 23:07:55
IE9からはJSscriptがIE内臓になって、COMの形で提供されなくなるらしい
524デフォルトの名無しさん:2010/12/06(月) 23:18:07
それならそれでいいや。htaの動作や仕様はそこで固まるってことでいいわけ?
525デフォルトの名無しさん:2010/12/08(水) 13:59:36
vbscriptも?
526デフォルトの名無しさん:2010/12/11(土) 19:29:48
スクリプトエラーがexitcodeで判定できないの?
527デフォルトの名無しさん:2010/12/12(日) 16:48:40
スクリプトでは0以外返せば、0ならエラーと分るな
528デフォルトの名無しさん:2010/12/14(火) 16:51:05
なるほど 裏をかくわけですね
529デフォルトの名無しさん:2010/12/15(水) 05:58:57
「ファイル名を指定して実行」をコマンドから起動したいのですが、
方法が解りません。なにか方法はないでしょうか?
530デフォルトの名無しさん:2010/12/15(水) 07:48:11
send,#r
531デフォルトの名無しさん:2010/12/15(水) 12:59:41
「ファイル名を指定して実行」をコマンドから起動でぐぐれ

ttp://scripting.cocolog-nifty.com/blog/2006/11/r_77cc.html
532デフォルトの名無しさん:2010/12/15(水) 13:41:54
すれ違いだろ このすれではshell.filerunだろ
533デフォルトの名無しさん:2010/12/15(水) 14:35:13
なんでそんな事したいのか解んねw
534デフォルトの名無しさん:2010/12/15(水) 19:39:35
コマンドでもスクリプトでもどっちでもよいが、コマンドラインを「ファイル名を指定して実行」に送れるとよいのだが、無理だろな
535デフォルトの名無しさん:2010/12/15(水) 20:51:29
startじゃだめなん?
536デフォルトの名無しさん:2010/12/15(水) 21:29:54
昔はsendtoxがあったけどな
537デフォルトの名無しさん:2010/12/16(木) 12:19:40
うほおお
ありがとう!>>530-536
538デフォルトの名無しさん:2010/12/17(金) 17:36:46
>>534
MRU書き換えてから開けば?
539デフォルトの名無しさん:2010/12/18(土) 18:41:41
今は Send To Toys 2.6 てえのがある
540デフォルトの名無しさん:2010/12/27(月) 21:43:22
wshからexcelブック開いて
あるシートの最終行を取得したいんだけど
どうしたらいいかな?
LastRow = objExcel.Range("$A$1").End(xlDown).Rowとか
.objExce.Cells.SpecialCells(xlLastCell).Address とかやると
rangeプロパティのcellsオプションがとってこれねぇ!
って怒られるんだけど。(objExcelはエクセルオブジェクトね)
541デフォルトの名無しさん:2010/12/27(月) 21:57:35
work(current)book,work(current)sheetの指定が必要
542デフォルトの名無しさん:2010/12/27(月) 22:51:31
ありがとう
そして今度はまた違うエラーが出るんだが

objExcel.workbooks("C:\test.xlsm").worksheets("data").Range("A5").End(xlDown).Row

未知の実行時エラー 800A03EC

マイクロソフトのページによるとアカウントの権限が
なんちゃらかんちゃら
よくわからんのだが
543デフォルトの名無しさん:2010/12/27(月) 23:04:56
馬鹿には無理
544デフォルトの名無しさん:2010/12/27(月) 23:05:14
すんまそん
545デフォルトの名無しさん:2010/12/27(月) 23:16:08
UsedRangeが使えなかったっけ?
ってか、WSH?
546デフォルトの名無しさん:2010/12/27(月) 23:17:38
ってか釣り
547デフォルトの名無しさん:2010/12/27(月) 23:32:52
悲しいかな釣りではない
今オブジェクトライブラリの設定してる
548デフォルトの名無しさん:2010/12/27(月) 23:39:52
UsedRange.Rowで開始位置はとれた。
なんでEnd(xlDown)が使えないの…

お前らの反応からしてかなりあほな原因なんだろうな
549デフォルトの名無しさん:2010/12/27(月) 23:42:59
xlDownに値が入ってないんだろうな
550デフォルトの名無しさん:2010/12/27(月) 23:53:15
とれた。
ありがとう
いいヒントだった
551デフォルトの名無しさん:2010/12/28(火) 01:00:42
予想通りかなりあほな原因だったな
552デフォルトの名無しさん:2010/12/28(火) 15:27:59
でもさ、いろんなサイトで
(xlDown)ってそのまま使ってるんだぜ?
何あれ、エクセルマクロVBA専用なのか?
553デフォルトの名無しさん:2010/12/28(火) 15:36:19
>>545
これってWSHっぽくない書き方なの?
554デフォルトの名無しさん:2010/12/28(火) 15:40:56
>>553
option explicitを知らんのか
555デフォルトの名無しさん:2010/12/28(火) 15:52:25
>>554
上のほうについちょるよ。
馬鹿で申し訳ないんだけど
explicitステートメントとWSHぽくない
関係がよくわからんのだけど
556デフォルトの名無しさん:2010/12/28(火) 18:43:44
>>552
Yes, we can.
557デフォルトの名無しさん:2010/12/28(火) 22:37:37
>>556
but I can't

まぁ、でも実家帰る前に解決してよかったわthx
じゃあお前らまた来年ノシ
558デフォルトの名無しさん:2010/12/29(水) 18:11:24
wshって将来なくなるの?
559デフォルトの名無しさん:2010/12/29(水) 20:52:26
powershellになるんじゃね?
560デフォルトの名無しさん:2010/12/29(水) 20:54:36
psつまらん
561デフォルトの名無しさん:2010/12/30(木) 13:01:55
そんな簡単にはなくならんだろ
趣味で使ってるヤツらは切ってしまえばグチグチいいながらもなんか他のに移るだろうけど
業務で使ってるヤツがごろごろしてるだろうからいきなり切ったらそういう人種が大騒ぎするぞ
562デフォルトの名無しさん:2010/12/30(木) 16:39:44
cmd.exeがなくなったか?
command.comがなくなったか?
563デフォルトの名無しさん:2010/12/30(木) 17:26:20
エントロピーは増大する
564デフォルトの名無しさん:2010/12/30(木) 18:19:46
VBSなんですけど、例えばIEオブジェクトに自作のメソッドを追加することってできますか?
565デフォルトの名無しさん:2010/12/31(金) 04:17:17
IEコンポーネント使ってます。
通常、ボタンのclickで新しいウインドウが開くページなのですが
「ポップアップはブロックされました。Ctrlキーを押しながら...」とステータスバーに表示されます。
ポップアップを表示させるにはどうすればよいでしょうか?
ちなみにそのポップアップは無視したままで構いません。
566デフォルトの名無しさん:2010/12/31(金) 11:20:25
馬鹿か?
567デフォルトの名無しさん:2011/01/02(日) 08:54:18
どうすれば良いと?
568デフォルトの名無しさん:2011/01/04(火) 14:42:43
https://www.miraiz.bz/Template/Index/
にあるテンプレートを全て一括してダウンロードしたいです。wshでできますか?誰か作ってくれませんか?
569デフォルトの名無しさん:2011/01/04(火) 22:01:34
馬鹿か?
570デフォルトの名無しさん:2011/01/05(水) 13:35:18
>>569
貴方ほどバカではありません。
571デフォルトの名無しさん:2011/01/05(水) 14:53:33
五十歩百歩ってこと?
572デフォルトの名無しさん:2011/01/05(水) 21:01:56
言いたいだけだろうよ
573デフォルトの名無しさん:2011/01/07(金) 08:31:25
バカですか?
YES→なら帰れ
NO→なら自分で作れ
574デフォルトの名無しさん:2011/01/07(金) 16:25:20
サイトからリンクたどってダウンロードしてくれるソフトなんて、山ほど有るのに、wshでやりたいバカで、自分で作れないバカ。
馬鹿面ライダーダブルってカンジ?
575デフォルトの名無しさん:2011/01/07(金) 16:42:11
>>574
途中でフォームの入力があるよ。
馬鹿?
576デフォルトの名無しさん:2011/01/07(金) 19:53:56
お前ら罵り合ってないで
タイピングにいそしめよ
577デフォルトの名無しさん:2011/01/07(金) 21:55:30
タイピストかよw
578デフォルトの名無しさん:2011/01/07(金) 23:40:40
罵りあうのにタイピングしてる件
579デフォルトの名無しさん:2011/01/16(日) 09:47:06
みんなWindows7つかってる?
WSHとかってXPの頃と変りなく使えてる?
580デフォルトの名無しさん:2011/01/16(日) 10:10:46
Cygwinの動きがおかしい
581デフォルトの名無しさん:2011/01/16(日) 17:06:03
>579
自分も知りたいです。
PCのハードが不調で、ついでに7に移行しようか検討中...
582デフォルトの名無しさん:2011/01/16(日) 17:34:08
>>579
Windows 7 64bitでWSHもHTAも特に問題なく使えてる。
583デフォルトの名無しさん:2011/01/17(月) 01:10:43
>>582
サンクス
HTAも問題ないってのは朗報だね。

でも、IEのバージョンが上がると
HTAの方で出来ることも変わったりするから
油断は出来ねぇ
584デフォルトの名無しさん:2011/01/17(月) 03:41:06
でも、IEのバージョンが上がると
WSHの方で出来ることも変わったりするから
油断は出来ねぇ

585デフォルトの名無しさん:2011/01/17(月) 20:43:56 BE:1455989478-PLT(23456)
IE9beta入れてるけど大抵のことはできること変わんないと思うよ。
あまり凝ったものは組んだことないけど、今までのものは普通に動いてる。
586583:2011/01/18(火) 17:35:11
ごめん別にWSHがIEの影響を受けるって意味じゃなくて
WSH使ったプログラム書くときに
IEに関係する機能を利用してると って事で。
587デフォルトの名無しさん:2011/01/18(火) 18:59:58
ビスタから7はあまり変わらんかもしれんがxpからビスタや7は大変よ
ie.navigate 保護モード無効のサイト
が初っ端から動かんからな
588デフォルトの名無しさん:2011/01/20(木) 00:36:46 BE:2105984399-PLT(23456)
>>586
そういうことか。申し訳ない。
589デフォルトの名無しさん:2011/01/29(土) 18:13:04
お前らプログラム組む時どんな感じなの?
サンプルコピペでちょっと変えて…
の繰り返しって感じ?
590デフォルトの名無しさん:2011/01/29(土) 18:49:18
アプリケーションプログラムではそれもあるけど、スクリプトはほぼベタ書き
精々コードスニペットから自前の雛形引っ張ってくるくらい
スクリプトなんて、サンプル探すより自前で書いた方が早いようなことにしか使わないし
591デフォルトの名無しさん:2011/01/29(土) 20:40:41
>>589
最初に、まずダーっと書く。
自分で用意してある関数群は使う場合があるけど
小さいプログラムやスクリプトの場合は使わない。

で、ある程度書いてから整理の方針を決めて
全体像を決めてから整理する。
主にGUI作るときはこんなん。
592デフォルトの名無しさん:2011/01/29(土) 23:56:31
>>589
サンプルって言うか、自分の書き溜めたコードを雛形にして
書き起こしていくことが多いな・・・
593デフォルトの名無しさん:2011/01/30(日) 05:40:13
書き捨て用のものと再利用を考慮したものでは書き方も変わってくる
594デフォルトの名無しさん:2011/01/30(日) 19:34:34
WSHではあまり書き捨てはやらんな。
常に使っていればいいけど、
たまにしか使わなくなるとなると、メソッドとか思い出すのにちょっとめんどい。
595デフォルトの名無しさん:2011/02/06(日) 15:56:59
最近、VBScript で書き上げても、移植性のなさ、この先のサポートを考えると、一抹の不安が残る今日この頃。
596デフォルトの名無しさん:2011/02/06(日) 17:50:26
移植性のなさって具体的に何?
597デフォルトの名無しさん:2011/02/06(日) 18:17:44
power shellに移行だな
598デフォルトの名無しさん:2011/02/07(月) 00:45:34
>>595
移植性なんか心配してるヒマがあったら、
未来のおまいのために、コードをきれいに仕上げてコメント付けとけ。
599デフォルトの名無しさん:2011/02/07(月) 14:56:34
言語を変えるのを移植とは言わんだろ
600デフォルトの名無しさん:2011/02/07(月) 17:08:00
convertibility
601デフォルトの名無しさん:2011/02/08(火) 10:09:16
>>599
うーん…
簡単にプログラミング言語を変えられない現状を鑑みれば、移植と言って良いと思うな。
そもそも、キミの言う移植がアセンブラレベルの意味合いっぽいじゃん?
もう、誰も、そんな事してないじゃん?
602デフォルトの名無しさん:2011/02/08(火) 14:59:27
あたまわるそう
603デフォルトの名無しさん:2011/02/28(月) 16:37:18.39
index=folderitem.getlink.geticonlocation(path)
pathはbyref string
wshでpathを得るにはどうすればよいのですか?
wshでは不可能ですか?
604デフォルトの名無しさん:2011/02/28(月) 16:47:28.84
普通にやればいいだけだと思うけど
605デフォルトの名無しさん:2011/02/28(月) 18:53:40.12
無理だろ 諦めろ
606デフォルトの名無しさん:2011/03/01(火) 18:50:09.10
wshじゃ内部型stringのvariant型の参照渡しだもんな
607デフォルトの名無しさん:2011/04/17(日) 00:11:31.36
IEが起動しているかどうか調べる方法ってございませんか?
起動してない場合に特定の処理したいので・・・
608デフォルトの名無しさん:2011/04/17(日) 00:14:59.65
>>607
WMI使えば出来るよ

WMIはWSH専用ではない汎用ライブラリで
WSHとは別物でありスレ違いになるので、ここでの詳細解説は伏せる
609デフォルトの名無しさん:2011/04/17(日) 00:59:27.00
>>607
shell.applicationのshellwindows
610デフォルトの名無しさん:2011/04/17(日) 12:43:48.33
AppActivateでChromeをアクティブにしてSendkeysでF5を押してページをリロードしたいのですが、F5が効きません
IEとFirefoxは問題なくできました。
ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
なのでALT+Dを送信してからF5を押せばいいのかと思い"%D"を送ってみたのですがアドレスバーにフォーカスが移りません
Chromeでページをリロードできるところまで何とかやりたいのですが解決方法ございませんか?
611デフォルトの名無しさん:2011/04/17(日) 12:44:34.31

晩生は打ち間違えですので読み飛ばしてください
612610:2011/04/18(月) 00:19:37.81
どうやらF5が効かないのではなくてアクティブになってないようでした
ただ、コードを実行するとChromeが前面に表示されるのですが(Chromeを最小化した状態でも)、どうもChromeの上の青い箇所が薄くなってました(メモ帳で言えば灰色の状態)
Chromeの仕様上WSHでは無理なんでしょうか?
613デフォルトの名無しさん:2011/04/18(月) 15:21:08.85
メモ帳だってappactivate直後のsendkeysは受付ねーが?
適当にsleepしろ
614デフォルトの名無しさん:2011/04/18(月) 15:22:38.38
↑sleep 5000って書いてあんぞ
615デフォルトの名無しさん:2011/04/18(月) 16:15:39.03
それがどうした?
616デフォルトの名無しさん:2011/04/18(月) 16:29:18.91
質問者はsleep書いてるのにsleepしろは矛盾している
617デフォルトの名無しさん:2011/04/18(月) 17:57:39.92
質問者はsleepしてsendkeysしたと書いてるかバカめ
618デフォルトの名無しさん:2011/04/18(月) 18:49:42.87
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
>ただ、appActivateでChromeをアクティブにしてsleep 5000ぐらい待機させて、その間にアドレスバーにフォーカスを手動で移して晩生SendkeysでF5で更新ができました
619デフォルトの名無しさん:2011/04/18(月) 20:45:09.98
>その間にアドレスバーにフォーカスを手動で移して晩生
これが見えぬか
620デフォルトの名無しさん:2011/04/18(月) 21:14:18.24
手動にしないとF5が効かないって意味じゃないか。
>>619お前ずっと書き込みしてる人?静観してたけどお前がレスすると話がおかしくなるから黙ってがいいよ。
621610:2011/04/18(月) 22:43:31.43
解決できました
622デフォルトの名無しさん:2011/04/18(月) 23:39:08.17
FireFoxなら指定時間毎の自動更新が出来るけどChromeにはそういう機能はないの?
623デフォルトの名無しさん:2011/04/19(火) 19:04:50.94
SendKeysはいいんだけどマウス動かす方法ないの?
624デフォルトの名無しさん:2011/04/19(火) 23:40:59.55
MouseでなくWindowを動かせば?相対的なもんだろ?
625デフォルトの名無しさん:2011/04/19(火) 23:52:03.13
Windows 転送ツールを使ってユーザープロファイルをコピーするのを、
WSHで定期的にタスクで自動実行したいのですが、簡単な方法はありますか?
代替えでAIKつかってコマンドでできるそうなのですが、
うまくイメージがとれませんでした。
626デフォルトの名無しさん:2011/04/20(水) 11:52:54.52
>>624
windowの中をSendKeysで処理したい場合でTABキー移動もできない場合は?
627デフォルトの名無しさん:2011/04/21(木) 01:18:09.34
sendkeys "% m{right}"
628デフォルトの名無しさん:2011/04/21(木) 07:49:23.22
>>627
いや、だから…
例えばブラウザでサイト閲覧してて
SendKeysで入力フォームを自動入力させる処理があるとする
普通ならTABをSendKeysで送ってやれば入力フィールドから次のフィールドにフォーカスが当たる
しかし、FlashやTAB遷移できない要素はマウスでonFocusやonClickする必要がある
これをWSHでどうやればいいだろうかと
629デフォルトの名無しさん:2011/04/21(木) 09:44:55.12
チーター乙
630デフォルトの名無しさん:2011/04/21(木) 11:50:47.68
>>629
ゲーム等のbotプログラムをわざわざWSHでやろうとは思わんよ
業務自動化の使用範疇だよ
631デフォルトの名無しさん:2011/04/22(金) 18:27:34.48
口調が気に食わない
632デフォルトの名無しさん:2011/05/17(火) 19:23:55.22
wsh で c:\Program Files のように標準のプログラム保存フォルダを取得ってできないの?
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
見てみたけど無いんだよね。
633デフォルトの名無しさん:2011/05/17(火) 19:39:21.95
%ProgramFiles%
634デフォルトの名無しさん:2011/05/17(火) 19:56:48.72
>>633
ありがとうございます。
635デフォルトの名無しさん:2011/05/21(土) 21:38:02.65
下記コードのhtmlにアクセスしたら、
指定のURLにリダイレクトさせたいんですが、
どうすればできるでしょうか?
『例』
<SCRIPT LANGUAGE="VBScript">
<!--
// リダイレクト先のパス指定
http://www.yahoo.co.jp/
-->
</SCRIPT>
636デフォルトの名無しさん:2011/05/21(土) 22:52:30.15
スレ違い・・・・・じゃなかった板違い
637デフォルトの名無しさん:2011/05/22(日) 13:00:28.56
ツールチップを表示したいのですが参考になるページございませんか?
638デフォルトの名無しさん:2011/05/23(月) 10:32:32.56
Win7デスクトップで[並び替え]→[名前]を二回連続で繰り返すwshください
639デフォルトの名無しさん:2011/05/23(月) 17:54:38.56
1回ものはどこかで見たがなぜ2回?
640デフォルトの名無しさん:2011/05/23(月) 20:50:52.50
sendkeys
641デフォルトの名無しさん:2011/05/26(木) 03:41:37.18
>>639
降順じゃね?
642デフォルトの名無しさん:2011/05/30(月) 05:54:47.25
ファイル名を全角→半角にリネームする際にリネーム後のファイル名が重複した場合に
aaa(1).txtというように番号をふって対処したいのですがどのように書いたら良いでしょうか?

〜〜〜
function rename(f) {
var new_name = full_to_half(f.Name);
var new_path = f.ParentFolder.Path + "\\" + new_name;

643デフォルトの名無しさん:2011/05/30(月) 05:57:15.06
つづきです。

if (new_name != f.Name) {
if (fso.FolderExists(new_path) || fso.FileExists(new_path)) {
???
}
〜〜〜
644デフォルトの名無しさん:2011/05/30(月) 08:41:00.90
パスをカンマより前とカンマ以降に分けて変数に格納
c:\hoge\aaa.txt
なら
前="c:\hoge\aaa"  後=".txt"

次に連番化用の変数作って

var 連番文字変数 = "";
var 連番カウンタ変数 = 1;

あとはループ作って

new_path = 前 + 連番文字変数 + 後;
Exists(new_path) //がfalseなら抜け
連番文字変数 = "(" + 連番カウンタ変数 + ")";
連番カウンタ変数 += 1;

ループ抜けたらnew_pathにリネーム

これだけ


最初の「前 + 連番文字変数 + 後」では、連番文字変数が空だから
「"c:\hoge\aaa" + "" + ".txt"」=「c:\hoge\aaa.txt」

二回目は「連番文字変数」に「"(" + 連番カウンタ変数 + ")"」が入っているから
「"c:\hoge\aaa" + "(1)" + ".txt"」=「c:\hoge\aaa(1).txt」
645642:2011/05/30(月) 13:51:29.91
>>644
ご丁寧にレスを下さり有難うございます。
早速試してみたのですが、
この場合だと全角のaaa.txtを半角へとリネームする際に
既にaaa.txtとaaa(1).txtが存在しているとaaa(2).txtとはならずに
aaa(1).txで重複のエラーになってしまいます。
このような場合に無限に連番で処理することは出来ないのでしょうか?
646デフォルトの名無しさん:2011/05/30(月) 13:59:34.54
new_path = 前 + 連番文字変数 + 後;
Exists(new_path) //がfalseなら抜け
連番文字変数 = "(" + 連番カウンタ変数 + ")";
連番カウンタ変数 += 1;

はループ内に入れたか?
ループ内に入れてあれば
> 無限に連番で処理
されるはずだが、というか実際にされているが
647642:2011/05/30(月) 22:09:05.71
>>646
すいません、できました。
親切にお答えいただき有難うございました。
648デフォルトの名無しさん:2011/06/07(火) 13:53:05.03
質問します。
IEのキャッシュを削除するスクリプトを使用したいと思っています。
そこで、下の URL のスクリプトを実行してみましたが、

C:\Documents and Settings\(ユーザー名)\Local Settings\Temporary Internet Files

内のファイルは一切削除されませんでした。
Temporary Internet Files フォルダ自体を削除することを試してみましたが、
「書き込みできません」とエラーが発生しました。
WSHでIEのキャッシュを削除する方法をご存じの方は、ご教示ください。

(環境)
Windows XP SP3
IE 8

649デフォルトの名無しさん:2011/06/07(火) 14:45:35.02
エクスプローラのツリーからは何故か見えないんだけど
実際には Temporary Internet Files\ の下に更に Content.IE5\
というフォルダがあって更にその中の複数のサブフォルダの中にファイルがある

下の URL のスクリプト ってどれよ?
650648:2011/06/07(火) 15:49:30.04
>>649
レスありがとう。そして間違えました。
URLのつもりがキャッシュフォルダのパスを書きました。
正しくは下のやつです。

http://gallery.technet.microsoft.com/scriptcenter/ffcb9491-3df6-4540-a378-a7c61f0b707e/

なお、Content.IE5 以下のフォルダを WSHで削除しようとしても、
「書き込みできません」とエラーが発生します。

何卒、お知恵をお貸しください。
651デフォルトの名無しさん:2011/06/07(火) 16:34:27.94
確かに出るね
IEを終了させたら出なくなったから
使用中のキャシュは消せないんだろうね
652デフォルトの名無しさん:2011/06/07(火) 18:03:52.91
Scripting Guy!はあほじゃね?
cache.vbsとかみたほうがよくね?
653デフォルトの名無しさん:2011/06/07(火) 18:28:31.84
>>651-652
レスありがとうございます。

こちらではIEの起動の有無にかかわらず
「書き込みできません」のエラーがでました。

また、cache.vbs の CacheClear.VBS を試してみましたが、
同スクリプトの17行あたりで
「エラーを特定できません」とのエラーダイアログ表示され、
エクスプローラーでキャッシュフォルダが開かれるだけでした。

そこで該当部分をコメントアウトして実行してみたところ、
エラーは表示されないものの、キャッシュフォルダ内のファイルなどは
一切消されないままでした。

引き続きご教示をよろしくお願いします。
654デフォルトの名無しさん:2011/06/07(火) 19:02:11.42
cacheclear.vbsパッケージのcacheclear2.vbsなんかどう?
655650:2011/06/07(火) 19:36:13.03
>>654
ありがとうございました。
CacheClear2.VBS でうまく削除できました。
あぁ、本当に助かりました。4日くらい試行錯誤しまくっていました。
656デフォルトの名無しさん:2011/06/07(火) 20:49:47.42
C.C.クリーナーみたいなソフトはインストールしたくない、或いは、サクっとキャッシュだけ削除したいから、スクリプトなのかな?
なんか、必死なワリにはググる事しないんで、なんか変だなと思って。w
657デフォルトの名無しさん:2011/06/07(火) 23:42:55.23
Scripting Guy!が出鱈目書いてると思わなかったんだろ
さっさとこっちで聞けば教えてやったのに
658デフォルトの名無しさん:2011/06/08(水) 01:13:27.47
なるほど…
659デフォルトの名無しさん:2011/06/13(月) 19:56:37.20
ぽるぽと…
660デフォルトの名無しさん:2011/06/17(金) 22:30:04.22
InternetExplorer.Applicationオブジェクトで質問なのですが、
・JavaScriptを実行させる
・ページの一番下までスクロールさせる
にはどうやればいいでしょうか?
661デフォルトの名無しさん:2011/06/17(金) 23:34:40.57
Document.Scriptか
Document.parentWindowがwindowオブジェクトなので
そこからevalか何かでどうぞ
662デフォルトの名無しさん:2011/06/18(土) 00:13:12.39
スクロール
ie.document.parentWindow.scrollTo(0, ie.document.body.scrollHeight)

JavaScript実行
ie.document.parentWindow.eval("alert(123)")
または
ie.document.parentWindow.execScript("alert(456)")

なお、該当ページにもともと一切のスクリプトが含まれていない場合、
ie.document.parentWindow.eval()
は失敗するので注意のこと
(IE8 with Windows7 で確認)
663デフォルトの名無しさん:2011/06/18(土) 00:16:32.38
scrollIntoView
664デフォルトの名無しさん:2011/06/18(土) 23:42:29.48
>>662
execScriptはスクリプト無効で使えんよ
665デフォルトの名無しさん:2011/06/19(日) 02:13:51.98
>>664
意味が分からない

自分の環境では、下のスクリプトの実行結果が SUCCESS, SUCCESS, ERROR, SUCCESS ってなるんだけど
使えないってどういうこと?

function foo(url) {
ie.navigate(url);
WScript.Sleep(3000);
ie.document.parentWindow.WScript = WScript;
try {
ie.document.parentWindow.eval("WScript.Echo('eval() SUCCESS');");
} catch(e) {WScript.Echo("eval() ERROR");}
try {
ie.document.parentWindow.execScript("WScript.Echo('execScript() SUCCESS');");
} catch(e) {WScript.Echo("execScript() ERROR");}
}
ie = new ActiveXObject("InternetExplorer.Application");
ie.visible = true;
foo("http://www.yahoo.co.jp/");// scriptが含まれるページ
foo("http://www.jaipa.or.jp/ipv6day/");// scriptが含まれないページ
666デフォルトの名無しさん:2011/06/19(日) 03:32:32.70
そのまんまスクリプト無効のゾーンでは使えん
667デフォルトの名無しさん:2011/06/19(日) 07:49:43.41
ADODB.Steam.LoadFromFile()てファイル全部メモリに読み込むんだな
XPsp3(32bit 4GB)で1.8GB弱のバイナリファイル読ませたらメモリ不足になることがあった
wshでこういうファイルを扱ういい方法はないものか
668デフォルトの名無しさん:2011/06/19(日) 08:10:54.77
部分的に読み込んだらいいんじゃない?
669デフォルトの名無しさん:2011/06/19(日) 15:26:18.02
細かく分割してファイルにして書きだして後から操作する。
ちょっと時間かかるがしょうがない。
670デフォルトの名無しさん:2011/06/20(月) 08:29:44.73
>>666
だったらスクリプト有効にすればいいだろ
671660:2011/06/20(月) 09:31:05.44
>>661 >>662
できました。ありがとうございます。
672デフォルトの名無しさん:2011/06/21(火) 17:59:22.78
>>670
ことわる
673デフォルトの名無しさん:2011/06/21(火) 21:03:48.56
>>672
断れません
674デフォルトの名無しさん:2011/06/21(火) 22:30:20.28
スクリプト無効でもできる方法あるのに断ればいいじゃん
675デフォルトの名無しさん:2011/06/22(水) 14:09:25.19
どうやるのどうやるの
676デフォルトの名無しさん:2011/06/22(水) 15:57:15.71
>>675
ことわる
677デフォルトの名無しさん:2011/07/03(日) 15:43:12.47
WScript.Echoって、真偽値を"true" "false"みたいに
文字列で表示してくれないの?


WScript.Echo(func()); #=> 0 or -1

こうじゃなくって、trueかfalseで表示してほしいんだけど
678デフォルトの名無しさん:2011/07/03(日) 16:14:23.83
trueかfalseで表示するようにすればいいだけじゃん
679デフォルトの名無しさん:2011/07/03(日) 16:50:06.25
>>678
いちいち?
680デフォルトの名無しさん:2011/07/03(日) 16:56:59.72
WScript.Echo(func()?'true':'false');
681デフォルトの名無しさん:2011/07/03(日) 22:14:30.52
WScript.Echo(func().toString());
または
WScript.Echo(""+func());
682デフォルトの名無しさん:2011/07/03(日) 22:29:51.52
>>681
ハラショー
EchoをラップしてtoStringの結果を出力する関数使うわ
ありがとう
683デフォルトの名無しさん:2011/07/04(月) 11:13:20.06
1バイト分の16進数を10進数に直接変換する方法ってないかな?
現在、下のような処理を513行書いて凌いでるが、長すぎる…
X = objText.Read(2)'テキストファイルから16進数を呼び出してます
Select Case X
Case "FE"
Y = 254
684デフォルトの名無しさん:2011/07/04(月) 12:18:46.24
Eval("&H"+X)
685デフォルトの名無しさん:2011/07/04(月) 12:37:20.28
>>684
513行かかった処理が1行で終わるとは…感激したっす。激しく感謝!
686デフォルトの名無しさん:2011/07/10(日) 02:58:11.11
NASにおいてある.jsファイルをダブルクリックすると出てくるセキュリティ警告がテラウザイ・・・
なんか良い警告の抑止方法はないですかね?
687デフォルトの名無しさん:2011/07/10(日) 06:59:26.13
おまいらFileSystemObjectとかWScript.Shellとか使うとき
どんなオブジェクト名にしとる?
objFSOとかが多いみたいだけど。
俺は oFs、oWs みたいな感じ
688デフォルトの名無しさん:2011/07/10(日) 07:13:03.17
FSO, WShellにしてる
689デフォルトの名無しさん:2011/07/10(日) 09:03:35.98
>>687
俺は oFs、oSh な感じ
oWsはExcelのワークシートにしてる
690 忍法帖【Lv=7,xxxP】 :2011/07/10(日) 09:12:23.42
なでしこ勝利おめこ
691デフォルトの名無しさん:2011/07/10(日) 09:14:28.05
スクリプトはエディタでの色分けの関係で、未だにハンガリアンでやってる
数値や文字列などの値型変数と、オブジェクトなどの参照型変数を色分けしたいのだが
FSOやWScript.Shellみたいに、1個作れば事足りるものばかりなら、単語登録すれば良いが
XML、HTTP、ADOStreamなどは複数のインスタンスを同地に使う場合もあるし
FSOでも下位のFile、Folderオブジェクトとかは複数作ることも多いので
やはり決まったプレフィックス付けて正規表現で色分けするのが手っ取り早いからな

普通のプログラム言語では、もうハンガリアン使ってないけど、
昔はプログラム言語もハンガリアンでやっていて、ハンガリアンはすっかり身に浸みているから、
スクリプトとプログラム言語で記法を変えても混乱はしない
692デフォルトの名無しさん:2011/07/10(日) 21:31:53.75
要約して
693デフォルトの名無しさん:2011/07/11(月) 00:59:08.69
2chの1レスの文字数制限無いに収まるカキコすら読めないような奴に
スクリプト、プログラム言語を扱うのは無理じゃね?
694デフォルトの名無しさん:2011/07/11(月) 05:47:33.80
スクリプト、プログラムにしろ、無意味な長文は苦痛なだけ
695 忍法帖【Lv=8,xxxP】 :2011/07/11(月) 08:31:19.23
そうだぬ
696デフォルトの名無しさん:2011/07/11(月) 11:52:25.84
意味のある文章や処理の意味を見いだせない奴を無能と呼ぶ
697デフォルトの名無しさん:2011/07/11(月) 15:21:58.39
意味のない文章や処理をだらだら書く奴を無能と呼ぶ
698デフォルトの名無しさん:2011/07/12(火) 06:04:47.91
自己紹介?
699デフォルトの名無しさん:2011/07/12(火) 10:40:10.94
菅ガンス
700デフォルトの名無しさん:2011/07/13(水) 11:34:10.87
米倉
701デフォルトの名無しさん:2011/07/13(水) 20:38:22.49
向かい側に座ってる女の人のスカートが短か過ぎて困る
702デフォルトの名無しさん:2011/07/14(木) 00:23:47.87
>>691
エディタ何使ってんの?
俺はemacs系エディタ
色分けは最低限でよくね?慣れだとは思うけど

変数名はFOやwsって感じで2文字が多いかなぁ
703デフォルトの名無しさん:2011/07/14(木) 20:37:27.84
>>685
clng使えよ
704デフォルトの名無しさん:2011/07/19(火) 20:03:10.02
parseInt使えよ
705デフォルトの名無しさん:2011/08/03(水) 22:26:40.15
VBSで、ドライブ上のテキストファイル全てを対称に、キーワードを検索する処理を行う
処理としては、対象ファイルを一時ファイルにコピーして、一時ファイルから読み込んで検索、という感じ

ところが、現実に存在していて、アクセス中でも隠しファイルでもない普通のファイルが「見つからない」といって53のエラーをはき出す事が頻繁に発生する。

どんな理由が考えられる?
訳あって、コードは載せれないけど。

すごく困っているので教えて!! いや、教えて下さい。
706デフォルトの名無しさん:2011/08/03(水) 22:40:40.59
ファイル名くらい載せろ
707デフォルトの名無しさん:2011/08/04(木) 02:36:09.08
考えられることはコードが間違ってるってことだな
13行目7桁目を調べろ
708デフォルトの名無しさん:2011/08/04(木) 05:40:59.53
>>705
アクセス権

つか、エラー発生行ぐらい載せられるだろ
みんなエスパーじゃねえんだ
709デフォルトの名無しさん:2011/08/04(木) 22:42:01.24
見られたらまずいんだろ
710デフォルトの名無しさん:2011/08/06(土) 13:52:56.48
>>705
フォルダー名が違うとか、そんなんじゃないの?

Pathの組み立てに、
Path = Folder & "\" & Filename
とか、安易にやっちゃってんじゃないの?
Path = FSO.BuildPath(Folder, Filename)
ってやった方がいいよ
711デフォルトの名無しさん:2011/08/06(土) 14:29:32.35
えすパー自慢?
712デフォルトの名無しさん:2011/08/07(日) 01:47:18.64
713デフォルトの名無しさん:2011/08/11(木) 08:54:36.23
CopyHereって、失敗しても何も言わないの?
zipファイルの中にコピーしようとしてるんだけど、
コピーできてないのになんのエラーも出さずに終わる

ちゃんと圧縮待ちはしてるのに
714713:2011/08/11(木) 10:05:47.92
追記
圧縮待ちは、下の2通りをためしました
・Items().Countが増えるまで待つ
 →いくら待っても増えなかった
・1秒待ってからOpenTextFile(zipfile,8,FALSE)でエラーなく開けるまで待つ
 →すぐに開けてしまった
715デフォルトの名無しさん:2011/08/11(木) 21:22:37.44
まっそういうもんだな
716705:2011/08/13(土) 18:07:34.54
えーと、705です。

社のPCにあるので、コード全文はのせられないん(持ち出せない)だけど、ファイルを検索する部分は
ttp://md1000.cocolog-nifty.com/blog/2008/09/wsh-5d65.html
のコードを流用しています。
ファイルが見つかったら、のところで、

For Each temp2 In f.Files
Ext = LCase(FS.GetExtensionName(FoundFile))

Next


アクセス権にも問題はありません。

717705:2011/08/13(土) 18:15:11.57
途中で書き込んでしもた

For Each temp2 In f.Files
Ext = LCase(FS.GetExtensionName(FoundFile))
if Ext="txt" then
TextCheck(temp2)
enf if
Next

みたいな感じで、このTextCheckというのが、テキストの全文検索ルーチンです。

引数のテキストファイルを一時ファイルにコピーして内容を検査する、という処理ですが、アクセス権にも問題が無く、実際に存在しているのに「書き込めません」とかってエラーになる。
でも、実際には一時ファイルはその都度作成しています。
いくつか検証したら、xpの場合、必ず同じフォルダでエラーを起こす。また、7の場合だと、"Application Data\Application Data...."の無限ジャンクションで処理を勝手に辞めてしまって終了してしまいます。
とにかく、ドライブ中の、アクセス権があるテキストファイルをまんべんなく検索して処理する、というのがうまくいっていないみたいです。

このTextCheckルーチン自体を単体のスクリプトとして動作させた場合には問題がないので、原因とは考えられません。
718デフォルトの名無しさん:2011/08/13(土) 18:32:10.65
>>717
「GetExtensionNameで拡張子をとってみてtxtだったら
 TextCheck() というサブルーチンに投げてる」
ってだけ?
エラー内容の方が大事なんだが

>現実に存在していて、アクセス中でも隠しファイルでもない
>普通のファイルが「見つからない」といって53のエラーを
>はき出す事が頻繁に発生する。
どこでエラーが出てるか確認してみたら?
GetExtensionNameの時にエラーが出てるんか?
取ろうとしてるフォルダは普通の場所なんだよね。
Application Data とか普通じゃない雰囲気がぷんぷんするんだが。
719デフォルトの名無しさん:2011/08/14(日) 21:06:52.69
FoundFileに何を設定してんのかな?
720705:2011/08/15(月) 11:14:29.92
あ、失礼。Foundfileはtemp2。
721デフォルトの名無しさん:2011/08/15(月) 16:11:15.08
temp2のデフォルトプロパティはなんだっけ?
722デフォルトの名無しさん:2011/08/15(月) 17:34:31.19
つーか、書き込めないって事は、テンポラリーフォルダーへのコピーに失敗してるんじゃないの?

TextCheckのルーチン内に原因があったりしてな
723デフォルトの名無しさん:2011/08/15(月) 21:41:07.64
圧縮ファイルをテンポラリに解凍して、解凍ファイルを読みに行く処理を書いた時
「ファイルが見つからない」ってなるユーザーがいて、その時はウエイトを掛けて
回避した。
724デフォルトの名無しさん:2011/08/16(火) 15:40:06.08
>>716
>ttp://md1000.cocolog-nifty.com/blog/2008/09/wsh-5d65.html
>のコードを流用しています。

みたけどやめとけ ましなサイトがあるだろ 
725デフォルトの名無しさん:2011/08/16(火) 16:03:46.63
>>717
いたるところにログを書き出すルーチン組み込んでみれ。
726デフォルトの名無しさん:2011/08/16(火) 19:22:32.45
ファイル列挙中のフォルダの配下のファイルを操作したせいで、
列挙処理がおかしくなってるとか
727デフォルトの名無しさん:2011/08/17(水) 09:07:29.77
一つ疑問なんだが、一時コピーする必要はあるのか?
本体そのものにアクセスするんじゃまずいわけがあるの?

もしかして他のアプリが開いてる可能性のあるログファイルの類なんじゃ…
ロックされててアクセスできないとか。
728705:2011/08/18(木) 21:25:22.77
皆さん、ありがとうございます。取り急ぎ、レスへの回答です。

>>727
えーと、一時コピーする理由は、本体を必要とする他のアプリに影響を与えないようにスナップショットを取るためです。
ただし、この処理を行うときは、他の常駐アプリやサービスはウィルス検査等も含め、停止させています。

>>726
それはないです。過去に作成したきりで、全くアクセスしていないファイルでも同じように発生します。

>>725
ログじゃないですが、stopでデバッガが起動する、という事らしいのですが私の環境ではデバッガのデの字も起動しません。
もちろん、デバッガ本体はインスコしてますが、7には非対応とか?

>>723
ウェイトと、あと無限ループでファイルのコピーが終わったら次の処理、というのは試してみましたが、結果は同じでした。
729デフォルトの名無しさん:2011/08/19(金) 09:34:14.95
>>728
起動しないデバッガで、何をするつもりなの?
甘えてないで、ログ取れば?
730デフォルトの名無しさん:2011/08/19(金) 10:27:26.30
>>705
そもそもどんなエラーメッセージが出力されているかもわからず回答できるわけが無い。
デバッガを起動できないならログ出力の関数を自作してデバッグすればいいだけのこと。
ログ出力の関数のコードすら書けないということなら論外。

もしかしてalertさえも使ったこと無いのか?
731デフォルトの名無しさん:2011/08/19(金) 21:53:28.77
見てて、あると思うか?
732デフォルトの名無しさん:2011/08/20(土) 06:47:48.55
>>731
無いと思うw
733705:2011/08/20(土) 11:29:25.11
>>729
処理の至る所にログ吐き出し処理を入れてみました。やはり、ちゃんと存在していて、アクセスされていないディレクトリをを削除しようとしているときに「書き込みできません」になったりしてます。
でも、そのディレクトリを削除するためだけのスクリプトを別に作って削除したらちゃんと削除できるんですよね。
つまり、[削除前処理]→[フォルダ削除]ってやろうとしているときに、じつは[削除前処理]が終わっていないって事なんでしょうか。

>>730
alertは使ったことないですが、msgboxでErr.Descriptionを表示させてます。
734デフォルトの名無しさん:2011/08/20(土) 16:19:24.86
いつからディレクトリ削除の話になったんだ?
それなら十中八九まるまるに決まってるじゃん
でも問題を後出しにするような奴には教えん
735デフォルトの名無しさん:2011/08/20(土) 17:34:34.61
>>705
自分で解決しようっていう意思が全く無いなw
ここで嘘でもいいからそうだって言われれば安心するならあえて言おう。

甘ったれるなw
736デフォルトの名無しさん:2011/08/20(土) 19:30:19.14
サイトの自己宣伝だろw
他人が参考にするようなもんじゃないもの
737デフォルトの名無しさん:2011/08/20(土) 19:31:23.31
そうだな レベルが合ってる 偶然にしては出来過ぎだな
738デフォルトの名無しさん:2011/08/20(土) 23:06:12.16
>>733
>>710が、すげーヒントをくれてるのに、何で無視してるん?
まじ、自分でやる気がないのな
739デフォルトの名無しさん:2011/08/21(日) 00:49:16.37
そういえば、処理完了前に次の処理をしようとしたせいで上手くいかないって状態の時に
原因解明のためにMsgBox出したら、それによって処理かぶりが無くなってしまい
「観測すると現象が起きなくなる」
という、まるで量子力学かのような状態になって アルェー って成ったことが
みんな一度はあるんじゃないか?

直ぐ気づくというか、こうなった時点で答えが分かるようなもんだけど。
740デフォルトの名無しさん:2011/08/21(日) 04:20:17.43
HDDの"ディスクの書き込みキャッシュを有効にする"って設定は関係あったりするの?
741デフォルトの名無しさん:2011/08/21(日) 05:21:42.24
関係ないと思うが。
742デフォルトの名無しさん:2011/08/21(日) 05:27:57.08
聞 く 前 に 何 で 試 さ な い の か ?
743デフォルトの名無しさん:2011/08/23(火) 13:50:48.70
め ん ど う だ か ら
744デフォルトの名無しさん:2011/08/25(木) 12:58:23.99
つまりそれは、出来ないんじゃなくて
やらないだけだな

もういいだろ
745デフォルトの名無しさん:2011/08/26(金) 10:52:22.28
t
746デフォルトの名無しさん:2011/09/05(月) 17:53:14.02
WindowsXPを使用しています。

WSHから外部アプリケーション(例えばメモ帳)を起動するときに
起動位置を座標指定して起動することはできないのでしょうか?
できるようであれば方法を教えて下さい。
747デフォルトの名無しさん:2011/09/05(月) 18:31:55.20
>>746
Win32使えばできる
WSHじゃないけど、ここが参考になるかも
http://dobon.net/vb/dotnet/process/movewindow.html
748デフォルトの名無しさん:2011/09/05(月) 20:16:04.41
Win32って、Win32APIのことかな?
わざわざWin32APIなんて使わなくても、WMIで出来るよ
そもそもWin32APIはWSHから直接使えないしw
749デフォルトの名無しさん:2011/09/05(月) 20:53:02.38
うそだろ
750デフォルトの名無しさん:2011/09/05(月) 20:54:12.05
WSHからPowerShellをキックすりゃえーよ
751746:2011/09/05(月) 21:32:39.78
レスありがとうございます。

>>747
WSHからWin32APIを使用する方法がわからず、参考URLを元に
VB.NETで作っているところです。

>>748,750
PowerShellからもできるんですね。WSHというこだわりはないので
(ショートカットをダブルクリックしたら指定プログラムを指定座標で起動したい)
PowerShellでの方法も調べてみます。
WMIの存在もはじめて知りました。こちらも調べてみます。
752デフォルトの名無しさん:2011/09/05(月) 21:37:04.60
>>750
それ「直接」じゃないでしょ。
753デフォルトの名無しさん:2011/09/05(月) 21:49:57.56
>>750
WSHやめてRubyやPythonにした方がいいね
754デフォルトの名無しさん:2011/09/05(月) 22:08:49.01
>>749
何が嘘だと?
WMIで出来るのは事実だし、WSHからWin32APIが直接呼べないのも間違いじゃないだろ。
755デフォルトの名無しさん:2011/09/06(火) 12:40:38.37
>752
WSHで「直接」なんて意味ないでしょ。なんだって間接でしょ?
756デフォルトの名無しさん:2011/09/07(水) 00:16:33.27
WSH から PowerShell は、「直接」呼べるけど、PowerShell スクリプトは、PowerShell を
通して「間接」的に実行するってことでしょ。

WSH は、どっかで Win32API の CreateProcess( ) { かどうかはわからんが、似たような
API } を使ってるから間接だという主張なの?
757デフォルトの名無しさん:2011/09/07(水) 02:44:28.20
間接的に、呼び出した何かでどうこうするって話なら
なんぼでもやりようあるからな。
758デフォルトの名無しさん:2011/09/07(水) 12:52:38.10
WindowsXpにて手動でデスクトップのアイコンを全て表示/非表示に切り替える事ができますが、
これでWSHで実装する事は可能でしょうか?

手動だとデスクトップで右クリック→i→dでできる操作をWSHで実装し、ショートカットアイコンにショートカットキーを
設けてキー操作で簡単に行いたいのです。
最悪SendKeysで、と思ったのですが、デスクトップ上で右クリックする際デスクトップアイコンにフォーカスが当たっていると
失敗してしまいます。因みに右クリックはSendKeys でShift+F10を実行している。
759デフォルトの名無しさん:2011/09/07(水) 14:34:39.36
選択" "
解除"^ "
760デフォルトの名無しさん:2011/09/07(水) 14:58:23.96
f5
761758:2011/09/07(水) 18:41:42.93
>>759
意味不明なり

>>760
更新じゃないです
アイコン非表示は手動でやれば直ぐ消えます
F5とか不要です
762デフォルトの名無しさん:2011/09/07(水) 20:22:40.18
デスクトップアイコンにフォーカスが当たっていると
失敗してしまいます。

759 :デフォルトの名無しさん:2011/09/07(水) 14:34:39.36
選択" "
解除"^ "


760 :デフォルトの名無しさん:2011/09/07(水) 14:58:23.96
f5
763デフォルトの名無しさん:2011/09/07(水) 21:03:39.56
ShellFolderView.SelectItem
764デフォルトの名無しさん:2011/09/07(水) 21:37:41.23
hideicons
765デフォルトの名無しさん:2011/09/08(木) 08:27:21.55
>>762-763
個人的にはSendKeysは使いたくなかったので理解できませんでした。すいません

>>764
レジストリをすっかり見落としていました
有り難う御座います
無事解決しそうです
766758:2011/09/08(木) 10:14:52.72
ダメだできない。分からない
>>759ってどう言う事なんでしょうか?
F5でアイコンフォーカスを外せる事は分かったのですが
767758:2011/09/08(木) 10:17:29.55
すいません、理解できました
sendkeysで実装するしかないんですかね、やっぱ
768デフォルトの名無しさん:2011/09/08(木) 14:28:25.53
現状
var ws = WScript.CreateObject('WScript.Shell');
//デスクトップをを表示(こいつが上手く機能してくれない)
ws.run('C:\\hoge\\desktop.lnk');
WScript.Sleep(1000);
ws.SendKeys('{F5}');
WScrip.Sleep(1000);
ws.SendKeys('+{F10}');
WScript.Sleep(200);
ws.SendKeys('i');
WScript.Sleep(200);
ws.SendKeys('d');
しかもこれだとデスクトップ表示中には使えない
デスクトップ表示切り替えいい方法ないですかね?
769デフォルトの名無しさん:2011/09/08(木) 15:19:54.35
なにが死体ん?
770758:2011/09/08(木) 16:16:01.50
>>768>>758です
すいません
やりたい事は>>758
結局sendkeysで実装中
で、問題が1点
デスクトップ上で>>768を実行すると上手くいきますが
別のウィンドウが立ち上がっているとアクティブウィンドウ上で>>758を走らせるだけなので失敗します
アクティブウィンドウがあるか?今現在デスクトップを表示しているのか?
を判定する術はありますでしょうか?
771デフォルトの名無しさん:2011/09/08(木) 16:22:30.35
If ws.AppActivate("program manager") Then
772デフォルトの名無しさん:2011/09/08(木) 21:07:23.51
レジストリ変えても反映されんな なんか方法ない?
773デフォルトの名無しさん:2011/09/08(木) 21:22:38.81
面倒だから、vc++にしちゃいなよ。
#include <Windows.h>

int main(int argc, char* argv[])
{
HWND hWnd;
BOOL status;
hWnd = FindWindow("ProgMan",NULL);
status = ShowWindow(hWnd,SW_HIDE);
if(!status){
ShowWindow(hWnd,SW_SHOW);
}

return 0;
}
774デフォルトの名無しさん:2011/09/09(金) 01:09:48.28
thx!
775デフォルトの名無しさん:2011/09/09(金) 14:57:24.17
「デスクトップアイコンの表示」を切り替える。
ttp://scripting.cocolog-nifty.com/blog/2011/09/post-fa65.html
776758:2011/09/10(土) 00:03:58.12
>>775
有難う御座いました。目的が達成できました。
ソース内容がさっぱり理解できないのでググッて勉強致します。
日付的に考えて、ここを見ている方のブログか、>>775様本人のブログだと思いますが、
フィード登録させて頂きました。シンプルで見易いし、
私の欲しい情報と色々マッチする良いブログだと思いました。

ご存知かとは思いますが、
ブログにはデスクトップにアイコン置くと戻せないと、ありますが、
デスクトップにショートカットキーを設定したショートカットアイコンを設置しておくと
気軽にアイコン表示/非表示切替ができますよ。

因みにWindows7でも問題なく動きました。
777デフォルトの名無しさん:2011/09/12(月) 12:51:06.81
>>775
オブジェクトねぇよってエラーになる
Administratorじゃなきゃダメ?
778デフォルトの名無しさん:2011/09/13(火) 15:12:01.15
D&Dされたファイルを、特定ディレクトリ下にあるファイル名と前方一致するディレクトリに移動させて
ディレクトリ名の末尾に付いてる数字を+1するスクリプトを書きたいんだがどうすればいいのか、何から学べばいいのか分からない。
779デフォルトの名無しさん:2011/09/13(火) 15:21:08.72
VBScript
FileSystemObject
780デフォルトの名無しさん:2011/09/13(火) 22:42:03.47
JScriptにしとけ
781デフォルトの名無しさん:2011/09/14(水) 20:47:13.58
はーい
782デフォルトの名無しさん:2011/09/15(木) 23:35:50.18
教えてください。
今、写真ファイルに適当な名前がついていて、
これのファイル名を、
写真ファイル右クリック→プロパティ→詳細
で進んだ先の「タイトル」と同じものに変更したいと思っています。
そこで、GetFileで写真ファイルのオブジェクトを作った後に
どのようなプロパティで「タイトル」を取得すればよいですか?
よろしくお願いします。

win7 homeです
783デフォルトの名無しさん:2011/09/16(金) 01:10:33.97
FolderItem.ExtendedProperty("System.Title")
784デフォルトの名無しさん:2011/09/16(金) 20:28:47.97
ありがとうございます。
試してみます。
785デフォルトの名無しさん:2011/09/23(金) 18:45:42.41
糞仕様、来んな
786デフォルトの名無しさん:2011/09/28(水) 23:48:14.94
>>785
何が糞仕様なん?
787デフォルトの名無しさん:2011/09/29(木) 04:26:24.31
来なかったから気にせんでもええ
788デフォルトの名無しさん:2011/09/30(金) 02:07:35.36
来たよ
789デフォルトの名無しさん:2011/10/04(火) 21:40:59.02
こっちくんな
790デフォルトの名無しさん:2011/10/05(水) 02:48:43.15
791デフォルトの名無しさん:2011/10/10(月) 14:52:27.46
テキスト変換で行き詰まってるんだけど、
たとえば、あ→こ、こ→て、て→あ、って処理をやろうとすると、
全部巡り巡って「あ」になってしまう現象を防いで置換するにはどうすればいい?
処理する量が膨大故に、あ→つ といった一時待避方法は使わずにできれば…
792デフォルトの名無しさん:2011/10/10(月) 16:23:12.60
replaceで分けてやるからだろ
regexpで一度にやればええだろ
793デフォルトの名無しさん:2011/10/10(月) 17:14:00.83
ううむ…すみません、Replaceさえ使わずに置換してた上、正規表現が判らない…
ネット見ながら書き直してみたけど、思った通りに動かない…
794デフォルトの名無しさん:2011/10/10(月) 18:20:30.32
text.replace('a|b|c|d','g',function(a)
{
var ans='';
switch(a)
{
case 'a' :
ans='A';break;
case 'b' :
ans='B';break;
・・・
default:
ans='baka';
}
return ans;
});
795794:2011/10/10(月) 19:20:12.25
コッチの方が簡単か。
var map=[];
map['a']='A';
map['b']='B';
text.replace('a|b','g',function(a){return map[a];});
796デフォルトの名無しさん:2011/10/11(火) 09:30:25.79
tr/// みたいなのが JS にもあればなあ
797デフォルトの名無しさん:2011/10/12(水) 03:58:23.22
あるよ
798デフォルトの名無しさん:2011/10/13(木) 18:21:32.26
>>794-795
動かんが?
799デフォルトの名無しさん:2011/10/13(木) 20:27:43.50
こうか
text.replace(/a|b/g, function(a){return map[a];})
800デフォルトの名無しさん:2011/10/13(木) 20:33:49.25
>>798
>>795じゃないけど正規表現の書き方が間違ってるので勝手に修正
テストはしていない

//textに処理対象文字列
var map=[];
//['置換したい文字']='置換後文字';
map['a']='A';
map['b']='B';
//hogeに置換後文字列値
hoge=text.replace(/a|b/ig,function(a){return map[a];});
801795:2011/10/13(木) 21:00:47.60
>>798-800
ごめんね。
DMonkeyで使えるから、Jscriptでも使えると思っていた。
802デフォルトの名無しさん:2011/10/13(木) 21:41:35.95
var map={a:'A',b:'B'};
803デフォルトの名無しさん:2011/10/13(木) 22:09:27.16
>>801
ドンマイ
正規表現を複雑にせずに置換処理する連想配列を使うこの方法は個人的に好きです
改修も簡単だしね
804デフォルトの名無しさん:2011/10/13(木) 22:26:26.37
vbscriptがほとんどでjscriptはあんまり使ってなかったけど
無名関数が使えるのか…知らなかったorz
805デフォルトの名無しさん:2011/10/13(木) 23:03:37.97
ドキュメント読め
http://msdn.microsoft.com/ja-jp/library/cc391867.aspx
function(x){return x*x;} // 関数リテラルです。
806デフォルトの名無しさん:2011/10/18(火) 17:31:58.84
すいません、質問なんですが、例えばURLが
http://www.atmarkit.co.jp/fwin2k/tutor/?????/cformwsh01_01.html
までしか分かってない場合でも、WSHから飛ぶことって出来ますか?

ちなみに?????はcformwsh01だったりするのですが
ここに規則性がなく分からない場合でも飛べるようになりたいと思っています。
可能であれば何かヒントを頂けると嬉しいです。

これからWSHを学んでいきたい初心者ですが、どうかよろしくお願いします。
807デフォルトの名無しさん:2011/10/18(火) 17:47:15.88
WSH以外で飛べるならWSHでも飛べるんじゃないか
808デフォルトの名無しさん:2011/10/18(火) 17:56:36.85
WSHの上に立って膝をゆっくり曲げて瞬間的に伸ばせ
809デフォルトの名無しさん:2011/10/18(火) 20:57:07.77
?はだめだけどrun urlで飛ばないか?
810デフォルトの名無しさん:2011/10/18(火) 21:29:07.79
>>806
スレ違い

もし一部不明でも飛ばしてくれるとしたら
飛ばすのはWSHではなくサーバーがやってるので
WSHスレで聞くべき内容じゃない
811デフォルトの名無しさん:2011/10/18(火) 22:10:43.82
WSHから飛ぶことって出来ますか?
という質問はスレ違いじゃなかろう?
812デフォルトの名無しさん:2011/10/18(火) 23:54:40.20
>>806
var hoge='';
//unique process
window.open('http://www.atmarkit.co.jp/fwin2k/tutor/'+hoge+'/cformwsh01_01.html','_self');

ユニーク処理はrandomでやるの?
813デフォルトの名無しさん:2011/10/19(水) 00:38:53.73
方法としては、URL候補をまず調べ、その結果からワード検索してURLをリストアップし、順次実行。

URL候補は、分かっている部分からweb検索するといい。
(例 googleに対して、2つの検索ワード指定 www.atmarkit.co.jp/fwin2k/tutor cformwsh01_01するとか)
814デフォルトの名無しさん:2011/10/19(水) 00:58:23.06
ユニーク処理って?
815デフォルトの名無しさん:2011/10/19(水) 03:58:10.09
ここはブルートフォースで行きましょうか
816デフォルトの名無しさん:2011/10/19(水) 08:21:47.84
>>815でやっと気付いた
結局、それ系がやりたいっぽいね
納得したわw
BFAよりレインボーテーブル使った処理のが早くない?
合わせ技が1番いいんだろうけどアルゴリズム云々でなく運だからなー

でも>>806読んだ感じidテーブルは入手済みで後は蓮だけっぽいね
817806:2011/10/19(水) 17:57:12.32
皆様ありがとうございました。紹介頂いた方法をいくつか試してみましたが
私にはまだスクリプトがしっかり書けていないためもあり
成功することが出来ませんでした。

しかし、どれも大変為になるレスばかりでしたので
何度も見直して調べてみようと思います。
まずはユニーク処理を頑張ってみます。どうもありがとうございました。







例えば?????を.*なんかの正規表現に出来るなら
もしくは、ホームページの仕組みが/というのがWindowsでいう\と同じ感じだったら
それをbatに当てはめて考えられないかなぁと思っていたんですが違うみたいですね。
例えばcformwsh01_01.htmlのURLが完全に分かっている場合にcformwsh01_02.htmlを探すとき
カレントディレクトリを1階層上げて、そこからcformwsh01_02.htmlを全てのフォルダで探して

しかし、実際はテーブルでしたりハッシュでしたり、そーいった概念とは違うのですね。
ほんと無知ですいません。並行してホームページの仕組みをjavascriptでjscriptと一緒に学んでいこうと思います。
どうもありがとうございました。
818806:2011/10/19(水) 17:59:41.01
すいません、改行で空いた下の文章なんですが
これは前に書き途中で削除し忘れた駄文になりますので、気にしないで下さい。
失礼しまいた。
819デフォルトの名無しさん:2011/10/19(水) 19:05:29.19
>>817
batで正規表現は使えない
やるならjscriptかvbscript
てか、そもそも正規表現いらない
if文でやればいい
AだったらBかCか…をランダムに表示はできる
階層も関係なくできる
820デフォルトの名無しさん:2011/10/19(水) 19:10:15.39
>>819
うそこくな findstr知らんあほか?
821デフォルトの名無しさん:2011/10/19(水) 19:51:50.69
>>817
>例えばcformwsh01_01.htmlのURLが完全に分かっている場合にcformwsh01_02.htmlを探すとき
その方法で良いなら、cformwsh01_01.htmlのページにあるcformwsh01_02.htmlのリンクから飛ぶじゃ駄目なの?
まあ、俺はやり方分からないんであれだけど。
822806:2011/10/19(水) 20:40:11.86
>>819
>AだったらBかCか…をランダムに表示はできる
そのような方法もあるのですね。ありがとうございます、参考にしてみます。

>>821
それでも全然大丈夫です。その方法に気付きませんでした、ありがとうございます。
823806:2011/10/19(水) 20:42:53.53
WSHで入力したURLから、そのURL自体のスクリプト(ソースコードと呼べばよいのでしょうか?)を
展開するにはどうればよいのでしょうか?キーワードだけでも教えて頂けないでしょうか?

もしそれが可能であれば、例えば先の例でリンクはここにあったので
<body>
 <div id="main">
  <div id="centercol">
   <taable width=大きさ>
    <tbody>
     <tr>
      <td>
       <div align="right">
        <font size="2">
         Page1
         <a href="cformwsh01_02.html">Page2</a>
正規表現からここを検索して取得できるように頑張ります。
(ここがhttp;//から始まるURLになっている場合を想定しています)
(ここであればURLは完全に表示されれている場合を想定しています)
824デフォルトの名無しさん:2011/10/19(水) 21:11:32.03
>>820
findstr使ったこと無いだろ…

あんなの正規表現もどきのワイルドカードだよ
825デフォルトの名無しさん:2011/10/19(水) 21:44:13.96
ワイルドカードと正規表現の別もわからないのか?
826デフォルトの名無しさん:2011/10/19(水) 23:40:16.92
>>820
正規表現知らない小僧は黙ってた方がいいぞw
827デフォルトの名無しさん:2011/10/19(水) 23:40:31.39
お前正規表現が何かもわかってないでしょ
828デフォルトの名無しさん:2011/10/19(水) 23:53:52.87
findstrのマッチングは正規表現を軽く齧った程度の代物で
例えばA又はBといった表現は出来ないし
行のどこにマッチしたかというようなことはわからんな。
829デフォルトの名無しさん:2011/10/19(水) 23:57:24.32
>>823
もう突っ込みどころ多すぎるから少しは自分で調べて勉強しろ

>展開するにはどうればよいのでしょうか?
file:///c:\hoge.js
http:でやりたいならhttp:をfile:/で置換しろw

>もしそれが可能であれば、例えば先の例でリンクはここにあったので
何の話だよwもうエスパーでいくぞw
<a href="#" onclick="window.open('cformwsh01_02.html','_self')">Page2</a>

お前に正規表現はまだ早過ぎる
Jscriptの基本を勉強しろ
830デフォルトの名無しさん:2011/10/20(木) 00:01:42.68
>>827
否定論理和の否定の戻り読みはどうやんの?findstrでできんだろ?w
さっさとコード貼れよw
831デフォルトの名無しさん:2011/10/20(木) 00:10:25.03
秒単位で被ったけど>>827>>825へのレスだよ…
832デフォルトの名無しさん:2011/10/20(木) 00:29:45.70
>>831
そんな気はちょっとしてた
でも、レス番号なるべくいれようぜ
833デフォルトの名無しさん:2011/10/20(木) 00:33:27.70
>>831
あれ?>>825は正規表現とfindstrは別モノ
ワイルドカードは正規表現じゃねーよ派だろ
やっぱりお前は間違ってる
834デフォルトの名無しさん:2011/10/20(木) 01:10:27.04
ワイルドカードは正規表現のサブセットじゃねーよ おバカさん
どんな正規表現でもワイルドカードにはならんわ
835デフォルトの名無しさん:2011/10/20(木) 04:57:20.27
正規表現は、文字列のパターンを表現する表記法なので
ワイルドカードも正規表現
ところで、findstrはワイルドカードじゃないんだね?
http://www.k-tanaka.net/cmd/findstr.php
>>828
A又はBは出来るみたいだよ
findstr "test char" sample.txt //sample.txtの中から"test"もしくは"char"が含まれる行を表示する
836デフォルトの名無しさん:2011/10/20(木) 08:04:17.56
>>835
排他的論理和の否定戻り読みも書いてみて下さいね
837デフォルトの名無しさん:2011/10/20(木) 08:24:41.02
var hoge='hoge';

string type変数に値が入った瞬間、それは正規表現ですってバカかよw
そんな事誰も言ってねーだろw
>>820はstring型変数に値入れることを正規表現でやるって言うの?
838デフォルトの名無しさん:2011/10/20(木) 11:07:05.56
http://technet.microsoft.com/ja-jp/library/cc755405(WS.10).aspx
ヘルプには正規表現で検索するって書いてあるな
使えるパターン少ないけどww
839デフォルトの名無しさん:2011/10/20(木) 12:59:22.00
そもそもcmdってWSHなん?
840デフォルトの名無しさん:2011/10/20(木) 17:37:21.63
正規表現オタクはすれ違いだしうざいよ
841デフォルトの名無しさん:2011/10/20(木) 18:00:54.25
>batで正規表現は使えない
>あんなの正規表現もどきのワイルドカードだよ
九州電力佐賀県知事執行役員みたいだな
842デフォルトの名無しさん:2011/10/20(木) 20:55:47.22
うん
843デフォルトの名無しさん:2011/10/20(木) 22:34:28.06
否定戻り読みが無いと正規表現とは言わないっていう宗教にはまっているのだろう
844デフォルトの名無しさん:2011/10/21(金) 00:07:44.46
宗教じゃないよ 粘着質由来の強迫神経症だろ
845デフォルトの名無しさん:2011/10/21(金) 08:19:56.60
一般的にワイルドカード程度で正規表現なんて言わない
wordの検索もexcelの式もExplorerの検索も正規表現できるなんて言ったら笑われるぞ
そしてcmdはスレ違い
846デフォルトの名無しさん:2011/10/21(金) 08:30:42.81
例えサブセットだろうと正規表現を使って検索するとMSは説明に明記してるんだから
単なるワイルドカードとは一線を画しておかなきゃね。
847デフォルトの名無しさん:2011/10/21(金) 11:57:39.84
>>844
ニダ
848デフォルトの名無しさん:2011/10/21(金) 16:13:03.28
>>845
Explorerの検索が正規表現だと誰か言ってるのか?
幻聴まで聞こえるのはやばいよ 悪いことは言わん 病院行けよ
849デフォルトの名無しさん:2011/10/22(土) 02:27:17.58
うん
850デフォルトの名無しさん:2011/10/22(土) 17:01:32.86
>>848
MSが間接的に言ってる
*でワイルドカード検索できるからね
それは正規表現でしょ?w
851デフォルトの名無しさん:2011/10/22(土) 17:22:23.69
>>850
神が早く病院に行けって言ってないか?
852デフォルトの名無しさん:2011/10/22(土) 17:37:41.00
もうどうしようもないレベル
853デフォルトの名無しさん:2011/10/22(土) 17:59:07.56
>>799
VBSでは?
854デフォルトの名無しさん:2011/10/22(土) 18:17:15.96
VBSなんぞ窓から投げ捨てろ
855デフォルトの名無しさん:2011/10/22(土) 18:18:49.01
>>853
そういうことは知らない ワイルドカードと正規表現のことだけ聞いて
856デフォルトの名無しさん:2011/10/22(土) 18:22:39.71
>>854
VBSを持って病院に行ったほうがいいよ
857デフォルトの名無しさん:2011/10/22(土) 20:46:58.88
>>850
>MSが間接的に言ってる

どこで言ってるかURL教えて
858デフォルトの名無しさん:2011/10/22(土) 21:26:48.57
ダイレクトにアタマの中で聞こえるだろ?
859デフォルトの名無しさん:2011/10/23(日) 15:40:37.61
患者の主張は分裂してないか?
ワイルドカードは正規表現
findstrの正規表現はワイルドカード
860デフォルトの名無しさん:2011/10/23(日) 15:51:10.61
うにぁ
1 findstrの正規表現はワイルドカード
2 ワイルドカードは正規表現
3 findstrの正規表現は正規表現
という三段論法かも
861デフォルトの名無しさん:2011/10/23(日) 16:30:59.08
つーかVBAがVB6基調である限り、VBSも残るだろうな
862デフォルトの名無しさん:2011/10/23(日) 17:04:49.41
>>861
つーかそれがどうしたってーの
863デフォルトの名無しさん:2011/10/23(日) 17:26:54.64
なんか勘違いしてんだろ
864デフォルトの名無しさん:2011/10/23(日) 20:53:17.96
865デフォルトの名無しさん:2011/10/23(日) 23:27:22.78
正規表現は元々UNIXコマンドが発祥でPerlで発展して、他はそれ準拠ってうたったりしてるようなもんだから、MSでどーのこーのいってもしょうがない。
866デフォルトの名無しさん:2011/10/24(月) 00:16:56.92
>>864
.がワイルドカードだって所の事か?
867デフォルトの名無しさん:2011/10/24(月) 08:10:30.16
>>866
はい
Explorer.exeの検索も*がワイルドカードなのでMSKK的には正規表現
WordやExcelも同様

因みに私はこれらを正規表現と認めたくない派です
868デフォルトの名無しさん:2011/10/24(月) 10:46:52.48
>>867
>>864のリンクはfinfstrの説明であり、そこには正規表現の説明で
*は「繰り返し : 直前の文字またはクラスのゼロ個以上」
とある。
これがワイルドカード(としての*の説明)だと思う人はいないだろう。

また、ページエクスプローラの検索では良いリンク先が見つからなかったが、
http://windows.microsoft.com/ja-JP/windows7/Advanced-tips-for-searching-in-Windows
ここでは、
  注
  任意の 1 文字を表すワイルドカードとして、疑問符 (?) を使用できます。
  また、任意の数の文字を表すワイルドカードとして、アスタリスク (*) を使用できます。
とあり、正規表現だとは言ってないし、
*の意味も上記のfindstrとは異なる。
869デフォルトの名無しさん:2011/10/24(月) 12:22:37.41
>>867
おまいが、findstrで*をワイルドカードだと思って使ったら、
自分の思った動作をしないだろうし、その時はバグだとでも騒ぐ気なのかね?

また、word,excelの検索は独自でこれも正規表現とはMSは言ってないだろ。
まあ、検索オプションに[ワイルドカードを使用する(U)]というものは存在するがな。
870デフォルトの名無しさん:2011/10/24(月) 12:25:47.22
>>868
なるほど
でもfindstrが正規表現ってのも何だかなー
Wordのトリッキーな検索も似非正規表現っぽいし

まぁWSHじゃないからスレ違いなんだけどねw
871デフォルトの名無しさん:2011/10/24(月) 12:47:11.58
>>867
ワイルドカードを使って検索するにチェック入れといて何言ってんの君?
872デフォルトの名無しさん:2011/10/24(月) 13:04:29.14
ワイルドカードを使って検索するー>ワイルドカードを使用する
だね
873デフォルトの名無しさん:2011/10/24(月) 16:58:28.87
なあんだ直らない病気だったのか
874デフォルトの名無しさん:2011/10/24(月) 17:39:40.90
>>848
幻聴じゃなくて幻視だろ
おまいこそ病院逝け
875デフォルトの名無しさん:2011/10/24(月) 18:00:21.79
なに幻視が聞こえるのか?そりゃ大変だな
876デフォルトの名無しさん:2011/10/24(月) 18:01:13.07
何言ってんの君?

まあ、「言う」じゃなくて「書く」だろとかのたまうんだろうな。
877デフォルトの名無しさん:2011/10/24(月) 18:08:48.31
口が滑ったんじゃなく手が滑ったんだとか
878デフォルトの名無しさん:2011/10/24(月) 18:09:11.69
正気表現でw
879デフォルトの名無しさん:2011/10/24(月) 19:31:25.64
やめて!私のために争わないで!
880デフォルトの名無しさん:2011/10/24(月) 21:21:24.28
正気狂言だろw
881デフォルトの名無しさん:2011/10/24(月) 23:36:57.71
findstrが正規表現じゃないなら
grepとかも正規表現じゃないって事にならないか?
どっちも.の意味同じだよね
882デフォルトの名無しさん:2011/10/25(火) 00:07:56.96
g/RE/p
edの作者が何の気なしに作ったg/正規表現/p
がちょー便利すぎるって外だしコマンドgrepになったのが正規表現の産声なんだよ。unixのmanに誇らしげに当時のストーリーが書いてある。
findstrはMS社員の劣化コピー。

883デフォルトの名無しさん:2011/10/25(火) 00:16:49.56
findstrがあまりに機能が低くて正規表現と言いたくないというのは分かる。
が、それを根拠にエクスプローラの検索がワイルドカード指定できるからこれも正規表現だ
という主張は3段論法でも無ければ風が吹いたら桶屋がもうかるの論理でも無く、
あまりにも突飛すぎて誰もついていけない。
884デフォルトの名無しさん:2011/10/25(火) 00:24:18.05
>>883
そう書くと、言葉通りに受け取って、誰もそんなこと言ってないぞ、とか言われるぞ。
まあ俺はバカじゃないからそんなことは言わないが。
885デフォルトの名無しさん:2011/10/25(火) 00:35:07.53
否定戻り読みが無いと正規表現とは言わないなら
findstrだけじゃなくてVBSやJSのRegExpも正規表現じゃないって事になっちゃうんだが
886デフォルトの名無しさん:2011/10/25(火) 08:02:36.81
>>883
Explorerのワイルドカードが正規表現でない根拠は?
正規表現とはある文字xで多種類文字列が取得できる表現の事だよ?
要は1:nの関係が成り立つ変数として確立できれば正規表現
887デフォルトの名無しさん:2011/10/25(火) 10:50:59.85
>>886
じゃあfindstrも正規表現でいいよね
888デフォルトの名無しさん:2011/10/25(火) 17:20:11.35
889デフォルトの名無しさん:2011/10/25(火) 18:44:44.14
>>887
そうだね
890デフォルトの名無しさん:2011/10/25(火) 19:47:43.77
どっかにAddToFavoriteみたいなAddToHistoryってなかったっけ?
891デフォルトの名無しさん:2011/10/26(水) 00:53:14.24
>>890
ie.navigate
892デフォルトの名無しさん:2011/10/26(水) 07:35:26.31
だれもWikipediaとかで調べてないのか?
*と(|)に相当する機能がない奴は正規表現じゃないだろ
893デフォルトの名無しさん:2011/10/26(水) 08:20:50.75
>>892
wikipediaなんて正式的じゃないし
正規表現の正確な決まりなんてない
言ったモン勝ち状態
正規表現はバズワード
894デフォルトの名無しさん:2011/10/26(水) 08:54:07.01
Microsoftは、findstrの検索は正規表現と言ってるが、explorerの検索を正規表現と言ってる記述は無い。
他人が正規表現をどう規定しよう(例えばPOSIX準拠とか、パターンを使ってればワイルドカードもOK)が
勝手ではあるが、少なくともMicrosoftはワイルドカードと正規表現は一緒にはしていないことは確か。
895デフォルトの名無しさん:2011/10/26(水) 09:28:01.68
>>892
>*と(|)に相当する機能がない奴は正規表現じゃないだろ

Wikipediaにはそんなこと書いてないぞ
http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
896デフォルトの名無しさん:2011/10/26(水) 10:49:17.58
横からレスすると、

一般化した形式言語理論での正規表現なら載ってるね。
1) Σのメンバーは正規表現である。
2) emptyは正規表現である。
3) X, Yが正規表現のとき、連接(X・Y)と合併(X+Y)とKleeneスター(X*)は正規表現である。
4) 以上の手順で得られるものだけが正規表現である。

2つの2項演算子と1つの単項演算子だが、実際はXY, X|Y, X*だから、
*と|の2つと言っても間違いじゃないよね。
で、findstrはこれに該当するわけで立派に正規表現と言えるし、
explorerの検索は該当しないので正規表現とは言えない。

というのが、>>892の主張だろう。
897デフォルトの名無しさん:2011/10/26(水) 10:57:04.28
補足
単項演算しKleeneスターは

1) V が文字列の集合であるとき、V* は、空文字列 ε を含み、文字列連結演算に
  閉じているような最小の集合と定義される。
  この集合は、別の書き方をすれば、V に含まれるゼロ個以上の文字列を連結して
  作ることができるような文字列の集合である。
2) V がシンボル・文字の集合であるとき、V* は、空文字列を含む V 上の
  あらゆる文字列の集合である。

一般化してモノイドMの2項演算子としても表せる。
1) (閉包)あらゆる a、b ∈ M に対し、a . b ∈ M
2) (結合法則)あらゆる a、b 、c ∈ M に対し、(a . b) . c = a . (b . c)
3) (単位元)ある ε ∈ M が存在して、あらゆる a ∈ M で a . ε = ε . a = a
898デフォルトの名無しさん:2011/10/26(水) 15:52:17.79
すれ違いうざいんだけどよそ行ってくれない
899デフォルトの名無しさん:2011/10/26(水) 15:54:57.06
HTAスレが過疎ってるから、やりたきゃ
http://hibari.2ch.net/test/read.cgi/tech/1220874815/
でやってくれ
900デフォルトの名無しさん:2011/10/27(木) 06:36:46.80
ヒデー展開だな

スレ違いもそうだが、ここまで、完全に正しいことを言ってる奴が一人も居ないんだが、、、
HTAスレじゃなくて正規表現スレもあるんだから、どっちに行ってもいいが、ここで低レベルな
スレ違い話続けるのはやめてくれ
901デフォルトの名無しさん:2011/10/27(木) 08:08:29.22
>>900
ことプログラム言語に関しての正規表現はバズワード
902デフォルトの名無しさん:2011/10/28(金) 01:44:16.66
訳が悪いんじゃね
Normal Expressionみたい
正規表現厨はabnormalだね
903デフォルトの名無しさん:2011/11/02(水) 22:55:00.09
sendKeysの逆ってできますか?
キー入力を常に監視して入力されたキーコードをgetしてテキストに出力したいです
ただ、ブラウザのwindow内でなくwindows上での全てのキー入力を取得したいです
904デフォルトの名無しさん:2011/11/02(水) 23:25:45.11
何をタクラマカン砂漠
905デフォルトの名無しさん:2011/11/02(水) 23:35:15.14
できますよ
906デフォルトの名無しさん:2011/11/03(木) 02:37:35.11
>>905
wshじゃムリ
907デフォルトの名無しさん:2011/11/03(木) 02:46:22.94
正規表現を使えばできるのでは?
908デフォルトの名無しさん:2011/11/03(木) 19:25:16.39
ワイルドカードじゃむりぽ?
909デフォルトの名無しさん:2011/11/03(木) 21:27:58.79
>>503
wshではないけど、AutoHotkeyというソフトをつかえばできそう。
調べてみては?

AutoHotkey スレッド part13
http://hibari.2ch.net/test/read.cgi/software/1317156599/l50
910デフォルトの名無しさん:2011/11/06(日) 12:04:20.50
>>905
教えて下さい
911デフォルトの名無しさん:2011/11/06(日) 16:03:56.30
やなこった
912デフォルトの名無しさん:2011/11/06(日) 16:10:50.66
まずふくをぬぎます
913デフォルトの名無しさん:2011/11/06(日) 17:34:53.06
頭悪いとそういうのが面白いものかね?
914デフォルトの名無しさん:2011/11/07(月) 16:05:03.36
馬鹿には無理
915デフォルトの名無しさん:2011/11/08(火) 21:22:22.15
頭悪いとそういうのが面白いものかね?
916デフォルトの名無しさん:2011/11/09(水) 18:03:04.50
面白い
917デフォルトの名無しさん:2011/11/10(木) 05:17:44.11
頭悪い
918デフォルトの名無しさん:2011/11/10(木) 17:15:50.23
あくい
919デフォルトの名無しさん:2011/12/15(木) 14:36:06.47
vbsのOPTION EXPLICITってクラスメソッド内だと機能してない
気がするけど気のせい?
920デフォルトの名無しさん:2011/12/21(水) 18:24:34.27
どんまい
921デフォルトの名無しさん:2011/12/28(水) 14:49:44.08
気のせい
922デフォルトの名無しさん:2011/12/29(木) 11:40:47.27
木の精
923デフォルトの名無しさん:2011/12/31(土) 23:01:46.32
メチルアルコール?
924デフォルトの名無しさん:2012/01/25(水) 07:37:59.43
ちょっとスレチを承知だけど、質問させてください。

DynamicWrapper をこれまでWinXP 32bit で使ってきてたけど、
Win7 64bit に変えたら、dllの登録時にエラーが出てしまう。
(いま、出先の携帯からのカキコでエラー番号とか失念)

ググっても、英語の質問掲示板とかで、同症状の質問が見つかるだけで
回答がない。

DynamicWrapperなんて、もはやユーザー少ないのかしら。
925デフォルトの名無しさん:2012/01/25(水) 08:05:43.86
DynamicWrapperは知らないけど、この辺意識してる?
http://maggothand.at.webry.info/200907/article_2.html
926デフォルトの名無しさん:2012/01/25(水) 09:01:30.26
単に管理者権限がないだけじゃねーの
UAC
927924:2012/01/25(水) 20:51:05.87
>>925, >>926 レスありがとうございます。


>regsvr32 dynwrap.dll

「モジュール "dynwrap.dll" は読み込まれましたが、
DllRegisterServerへの呼び出しはエラーコード
0x80040201 により失敗しました。.... 」
とのエラーが出ていました。

>>925 さん紹介URLのように、
%WINDIR%\SysWOW64\Regsvr32.exe
して見ましたが、上記と同じエラーが出てダメでした。

>>926 さんご指摘に従って、
管理者権限で実行したコマンドプロンプトで実行
(>regsvr32 dynwrap.dll)
したところ、無事に登録ができました。



928デフォルトの名無しさん:2012/01/28(土) 01:45:27.16
WSHって息してる?今はじめて存在知ったんだけど。実はちょー便利だったりするの?
929デフォルトの名無しさん:2012/01/28(土) 05:15:53.34
コマンドプロンプトやBATが使えない人にとっては無用の長物であることには違いが無いさ
930デフォルトの名無しさん:2012/01/28(土) 12:26:44.53
長物って。別に何も邪魔になっとらんやろ
931デフォルトの名無しさん:2012/01/29(日) 11:12:44.50
WSHには、スクリプトウィルス実行ホストという役目もあるから
使わない人にとっては正に無用の長物じゃね?
932デフォルトの名無しさん:2012/01/29(日) 18:46:25.68
おまえの話が一番無用の長物じゃね?
933デフォルトの名無しさん:2012/02/03(金) 02:04:19.31
最近はパワシェル使うことが多くなった
934デフォルトの名無しさん:2012/02/03(金) 21:32:04.88
powershellってまただいぶ違ってたりするの?
935デフォルトの名無しさん:2012/02/04(土) 17:06:58.56
にたようなもん
936デフォルトの名無しさん:2012/02/04(土) 19:43:27.91
PowerShellはWSHと機能性だけ比較すれば優位だが
他の言語や開発環境まで視野に入れていろんなコストなども含めて総合的に判断すると
ほとんど存在価値が無くなってしまう
俺も一通り使ったけどPowerShell使うのは無駄以外の何物でもないと気付いて使わなくなった
937デフォルトの名無しさん:2012/02/04(土) 20:31:38.04
>>928
たとえば、Microsoft Officeで作業する場所で、
C++, C#などの開発環境をインストールしてはならない場合でも、
WSHならインストールされてるからつかえる(VBAもつかえるだろう)
938デフォルトの名無しさん:2012/02/04(土) 20:41:23.07
>>937
そんな意味でも特別な許可設定しないとスクリプトをダブルクリックで動かすことすらできない PowerShell はダメだな
能力はあるのに
939デフォルトの名無しさん:2012/02/05(日) 02:36:46.32
>>937
普通に入っているが?
940デフォルトの名無しさん:2012/02/05(日) 02:59:57.56
>>939
何を勘違いしてるの?
941デフォルトの名無しさん:2012/02/05(日) 14:10:11.58
PowerShell、Windows 7からはOS標準になってる。
perlやrubyみたいな他のスクリプト言語に比べたら大きなアドバンテージだけど
デフォルトで実行許可されてないのが痛い。痛すぎる
942デフォルトの名無しさん:2012/02/05(日) 14:38:59.17
>>940
csc,vbc,jscが普通に入ってるの知らないんだwww
943デフォルトの名無しさん:2012/02/05(日) 14:58:34.06
実行ポリシー変えられるときは変えてるし、できない時は
スクリプトを読み込んでeval(Invoke-Expression)しちゃえばいいから、
まあそこまで困ってはいない
944デフォルトの名無しさん:2012/02/05(日) 18:31:24.57
サクラエディタでWSHをマクロとして使えることに気づいた
こんな感じにいろんなソフトがマクロとして使ってるのかな
945デフォルトの名無しさん:2012/02/06(月) 21:34:29.73
>>942
なるほど、そういう方向の勘違いか
946デフォルトの名無しさん:2012/02/07(火) 01:19:27.07
>>945
なるほど、そういう方向の○違いか
947デフォルトの名無しさん:2012/02/07(火) 04:50:00.92
悔し紛れのオウム返し
948デフォルトの名無しさん:2012/02/07(火) 17:05:21.20
悔し紛れの言い張り返し
949デフォルトの名無しさん:2012/02/08(水) 00:31:47.76
Windows XP, Office 2003の職場めずらしくないでしょ
950デフォルトの名無しさん:2012/02/08(水) 18:46:05.52
なるほど、そういう方向の勘違いか
951デフォルトの名無しさん:2012/02/17(金) 01:24:42.12
プログラムを実行させる時、
プロセス1とプロセス2は終了を待つことなく同時に実行し、
プロセス1とプロセス2が両方とも終了したらプロセス3に移行するにはどう書けばいいですか?

952デフォルトの名無しさん:2012/02/17(金) 03:39:30.95
exec
exec
do while .state
loop
exec
953デフォルトの名無しさん:2012/02/18(土) 13:26:46.30
954デフォルトの名無しさん:2012/02/18(土) 14:10:58.44
popup出しつつ、ステートメントは次へ行くことって出来ますか?
runにはあるのに。
955デフォルトの名無しさん:2012/02/18(土) 15:02:18.54
Popupを出すスクリプトをRunで呼び出す
956デフォルトの名無しさん:2012/02/18(土) 15:04:14.61
>>954
shell = new ActiveXObject("WScript.Shell")
shell.Popup("hello")

とだけ書かれたスクリプトを
shell.Run("wscript msg.js")
みたいに呼べばいい
957956:2012/02/18(土) 15:05:10.21
かぶった
958デフォルトの名無しさん:2012/02/18(土) 15:09:02.93
>>955
ありがとうございました。
959デフォルトの名無しさん:2012/02/18(土) 15:20:28.10
お礼をいい損ねてた
>>956氏もありあとう
960デフォルトの名無しさん:2012/02/18(土) 19:59:58.73
961デフォルトの名無しさん:2012/02/21(火) 17:54:11.66
runじゃ閉じれないが?
962デフォルトの名無しさん:2012/02/21(火) 18:54:49.91
んじゃexec
WshShortcutではマイコンピュータなどのショートカットは扱えませんか?
ショートカットからTargetPathなどを取り出してShellExecuteExに渡すことを目的としています。
どうなる?
駄目ならshell.applicationのfolderitem.getlink使え
ありがとうございます。

folderitem.getlink.target.pathでマイコンピュータとマイネットワークのショートカットから
"::{GUID}" という形式のターゲットパスが得られました。
これをShellExecuteExに渡すと、開けました。

スタートメニューのファイル名を指定して実行でも使えるけど
ショートカットのプロパティのリンク先には入れられないのが謎です。

コントロールパネル項目なんかのショートカットは取得できなかったので
これは別に探してみようと思います。
>スタートメニューのファイル名を指定して実行でも使えるけど
>ショートカットのプロパティのリンク先には入れられないのが謎です。

GUIが撥ねてるだけで、WshShortcutなら入る

>コントロールパネル項目なんかのショートカットは取得できなかったので
>これは別に探してみようと思います。

レジストリをshellfolderで検索
ありがとうございます。

>GUIが撥ねてるだけで、WshShortcutなら入る
WshShortcutで取得できないものの、Saveはできるようですね。

>レジストリをshellfolderで検索
こちらは、クラスIDを知るのが目的ではなく、ショートカットファイルから
取得するのが目的です。
target.pathが空白なので、検索しようがありませんでした。
なんでそんな必要があるのかわからんが必要なら.lnkのフォーマットをadodb.streamでバイナリで見て取り出せば?
969デフォルトの名無しさん:2012/04/14(土) 00:37:21.24
excelのショートカットなんか取り出しても動かんな
なんだこのxlicons.exeって?実行可能なアプリケーションじゃありません
970デフォルトの名無しさん:2012/04/15(日) 12:09:13.38
971デフォルトの名無しさん:2012/04/25(水) 12:37:56.84
javascriptの板でこちらのがいいと誘導されてきました。


var objApl;
var objFolder;
var objFolderItems;
var objItem;
var i;
objApl = new ActiveXObject("Shell.Application");
objFolder = objApl.NameSpace("c:\\ShortCut");
objFolderItems = objFolder.Items();
for(i=0;i<objFolderItems.Count;i++) {
objItem = objFolderItems.Item(i);
if (objItem.IsFolder==true) {
WScript.echo("D " + objItem.Name + " ModifyDate:" + objItem.ModifyDate);
} else {
WScript.echo(" " + objItem.Name +
" Size:" + objItem.Size + "Bytes ModifyDate:" + objItem.ModifyDate);
}
}
objItem = null
objFolderItems = null
objFolder = null
objApl = null


objFolder = objApl.NameSpace("c:\\ShortCut");の部分で、
「書き込みできません」とエラーが出るのは何故でしょうか
972デフォルトの名無しさん:2012/04/25(水) 14:27:08.34
c:\ShortCutに対するアクセス許可を持ってない
973デフォルトの名無しさん:2012/04/25(水) 14:34:11.06
アクセス許可はどこからどう見た権限でしょうか。


ローカルにあるjsで、
cドライブももちろんローカルです。
全てが同じドライブ上にあるんですが…
974デフォルトの名無しさん:2012/04/25(水) 15:00:17.63
c:\ShortCutのアクセス許可を見ろよバカ
975デフォルトの名無しさん:2012/04/25(水) 17:33:38.08
なんでWindowsの初歩が解ってない奴がJScriptとかに手出してるんだ?
今はそういう時代なのか?
976デフォルトの名無しさん:2012/04/27(金) 10:24:00.76
こういうのって、fsoじゃなくshell使うのがナウいの?
977デフォルトの名無しさん:2012/04/27(金) 16:02:28.16
トロいんじゃね?
978デフォルトの名無しさん:2012/05/03(木) 12:48:27.44
var o = new ActiveXObject('System.Text.StringBuilder');
o.append('U');
インスタンスは作れるのにメソッドは呼べないorz
oはIDISPATCHらしいんだが。
979デフォルトの名無しさん:2012/05/03(木) 14:48:27.89
980デフォルトの名無しさん:2012/05/03(木) 18:31:27.82
>>979
thx!
帰ったら試してみる!
981デフォルトの名無しさん:2012/05/03(木) 20:39:44.95
982デフォルトの名無しさん:2012/05/04(金) 13:37:23.44
983デフォルトの名無しさん:2012/05/04(金) 13:43:59.30
984デフォルトの名無しさん:2012/05/04(金) 13:49:31.24
985デフォルトの名無しさん:2012/05/04(金) 14:12:04.10
もんまり
986デフォルトの名無しさん:2012/05/04(金) 16:06:35.05
987デフォルトの名無しさん:2012/05/04(金) 16:15:33.91
988デフォルトの名無しさん:2012/05/05(土) 00:36:50.04
989デフォルトの名無しさん:2012/05/05(土) 08:30:34.40
990デフォルトの名無しさん:2012/05/05(土) 23:41:18.69
うめ
991デフォルトの名無しさん:2012/05/06(日) 07:29:14.65
>>563
宇宙には、秩序がある。生物には、多様性がある
992デフォルトの名無しさん:2012/05/06(日) 12:12:41.43
うめ
993デフォルトの名無しさん:2012/05/06(日) 13:23:51.64
かゆ
994デフォルトの名無しさん:2012/05/06(日) 16:19:30.33
うま
995デフォルトの名無しさん:2012/05/06(日) 19:22:36.49
うし
996デフォルトの名無しさん:2012/05/07(月) 06:16:41.15
うに
997デフォルトの名無しさん:2012/05/07(月) 15:03:27.13
うり
998デフォルトの名無しさん:2012/05/07(月) 19:48:44.01
うみ
999デフォルトの名無しさん:2012/05/07(月) 19:54:04.02
うら
1000デフォルトの名無しさん:2012/05/07(月) 21:13:55.30


        _,. -──-- .,,_
      ,. ''"          ´`ヽ、
    , '        __,,,....,,,ゝ,_  ヽ、
    ,'     ,.- '"´   ____  `ヽ!、 ヽ,
   i    ,.'´ ,. --ァ'7´   `i⌒ヽ、!.、  ',
   .i   .i,' /  / /  ハ !─!-`Yヽ、 ',
   |   !/  ,' .i-i─ハノ レ´,≠ト!、ハ i i
   |   イ  / ./,!ィ'=-ト、   'ト、 } !ハ,.ヘハノ
  ノ   i  ハ/イ ト、  }'    ゙ー´,,i/!  i
  イ  /  ! ヽi` ゝ-゙'´   `   .! | 〈
  ,'  〈 ,ヘ',  ヘ ""    σ   ,.イ ノ !
  /  i   ヽ, ハ>.、,,_  ,,.イノ、レ,.ヘノ
 〈  ハ    V>、!、/ヽ,  ̄! i>ヽ、 /
  ヽ/ ヽハ/´   ヽゝ、/ヘi/i    ',
      /        / i/ i   ',
     /、       ,〈  」、」   _ゝ、
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。