こんなことコンピュータにやらせろよ。そう思ったことはありませんか?
簡易的な実行環境も含めて普通のOSだったら当たり前に備わっている自動実行。
Windowsの標準に備わっているそれがWSH(Windows Script Host)です。
また、ここではWSHだけに限らずWMI、ADSIなどのネタもOKです。
・煽りや荒らしは無視の方針で。基本的にsage進行です。
・ここでヒントを得て完成したスクリプトは、出来れば皆さんにお披露目してください。
同じことで悩んでいる人のためになります。
・質問する際は、OS及び使用するコンポーネントのバージョンもお忘れなく。
前スレ
お前ら、wsh使ってますか? Part7
http://hibari.2ch.net/test/read.cgi/win/1190548945/
お前ら、wsh使ってますか? Part8
レス数が900を超えています。1000を超えると表示できなくなるよ。
2010/12/19(日) 22:20:35ID:SZFqF39w
2010/12/19(日) 22:22:00ID:SZFqF39w
2 名前:名無し~3.EXE[sage] 投稿日:2007/09/23(日) 21:03:13 ID:2RosR0QK
●便利なリンク
Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp
MSDN Library (オンラインドキュメント)
http://msdn.microsoft.com/library/ja/
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB)
http://download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe
Sesame Script (スクリプト作成初心者向けコラム)
http://www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx
Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集)
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
Windows管理者のためのWindows Script Host入門 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
ADSI (Active Directory Service Interfaces) の特集記事全文
http://web.archive.org/web/20050309045811/http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html
●個人サイト
Windows Script Wiki
ttp://winscript.s41.xrea.com/wiki/index.php
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html
●便利なリンク
Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp
MSDN Library (オンラインドキュメント)
http://msdn.microsoft.com/library/ja/
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB)
http://download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe
Sesame Script (スクリプト作成初心者向けコラム)
http://www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx
Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集)
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
Windows管理者のためのWindows Script Host入門 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
ADSI (Active Directory Service Interfaces) の特集記事全文
http://web.archive.org/web/20050309045811/http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html
●個人サイト
Windows Script Wiki
ttp://winscript.s41.xrea.com/wiki/index.php
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html
2010/12/19(日) 22:23:08ID:SZFqF39w
●コンポーネント関連リンク
○Microsoft 製外部コンポーネント
DCOM
(98/Me ※リンク切れ) http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
(95) http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp
MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://msdn2.microsoft.com/ja-jp/data/aa937730.aspx
WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875
ADSI - Active Dictoryの機能を操作
http://www.microsoft.com/downloads/details.aspx?FamilyID=f4bf2bf6-ed15-4789-9c63-e849d530a6df&DisplayLang=ja
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1
○サードパーティ製外部コンポーネント
BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他
http://www.hi-ho.ne.jp/babaq/basp21.html
Doodle2 - グラフィック変換、操作、描画
http://www.vector.co.jp/soft/winnt/prog/se219120.html
DynaCall - Win32APIコール
http://people.freenet.de/gborn/WSHBazaar/WSHDynaCall.htm
AutoItX - マウス・キーボード・クリップボード操作
http://www.hiddensoft.com/AutoIt/
○Microsoft 製外部コンポーネント
DCOM
(98/Me ※リンク切れ) http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
(95) http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp
MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://msdn2.microsoft.com/ja-jp/data/aa937730.aspx
WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875
ADSI - Active Dictoryの機能を操作
http://www.microsoft.com/downloads/details.aspx?FamilyID=f4bf2bf6-ed15-4789-9c63-e849d530a6df&DisplayLang=ja
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1
○サードパーティ製外部コンポーネント
BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他
http://www.hi-ho.ne.jp/babaq/basp21.html
Doodle2 - グラフィック変換、操作、描画
http://www.vector.co.jp/soft/winnt/prog/se219120.html
DynaCall - Win32APIコール
http://people.freenet.de/gborn/WSHBazaar/WSHDynaCall.htm
AutoItX - マウス・キーボード・クリップボード操作
http://www.hiddensoft.com/AutoIt/
2010/12/19(日) 22:24:05ID:SZFqF39w
●WSH(COM)参考書籍
「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.amazon.co.jp/gp/product/477410650X/
「[改訂版] VBScriptポケットリファレンス」
http://www.amazon.co.jp/gp/product/4774127930/
「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版
http://www.amazon.co.jp/gp/product/4871936678/
「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.amazon.co.jp/gp/product/4839900906/
「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.amazon.co.jp/gp/product/4896270207/
「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.amazon.co.jp/gp/product/4873110068/
「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.amazon.co.jp/gp/product/4756136036/
「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著
http://www.amazon.co.jp/gp/product/4894712881/ (どちらかというとVBによる操作本?)
「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://www.amazon.co.jp/gp/product/4797314001/
「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.amazon.co.jp/gp/product/477410650X/
「[改訂版] VBScriptポケットリファレンス」
http://www.amazon.co.jp/gp/product/4774127930/
「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版
http://www.amazon.co.jp/gp/product/4871936678/
「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.amazon.co.jp/gp/product/4839900906/
「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.amazon.co.jp/gp/product/4896270207/
「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.amazon.co.jp/gp/product/4873110068/
「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.amazon.co.jp/gp/product/4756136036/
「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著
http://www.amazon.co.jp/gp/product/4894712881/ (どちらかというとVBによる操作本?)
「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://www.amazon.co.jp/gp/product/4797314001/
2010/12/19(日) 22:25:19ID:SZFqF39w
●JavaScript、VBScript 以外のWSHで使える言語
TCLScript
http://tclscript.sourceforge.net/
Perl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Ruby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
Python
http://www.python.jp/Zope/download
PHP
http://www.php.net/downloads.php
REXX
http://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm
TCLScript
http://tclscript.sourceforge.net/
Perl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Ruby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
Python
http://www.python.jp/Zope/download
PHP
http://www.php.net/downloads.php
REXX
http://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm
2010/12/20(月) 01:30:01ID:0VqfHqM5
言いたいことも言えないこんな世の中じゃ
乙
乙
2010/12/20(月) 01:37:26ID:pw89Kxj0
テンプレ乙
2010/12/24(金) 01:04:53ID:MccdA2yM
hosyu
2010/12/25(土) 10:14:02ID:7Kf1fKnZ
Wscript.Echo("保守");
2010/12/25(土) 16:11:37ID:IjNpG0xL
---------------------------
Windows Script Host
---------------------------
スクリプト: C:\Users\10\Desktop\10.js
行: 1
文字: 1
エラー: 'Wscript' は宣言されていません。
コード: 800A1391
ソース: Microsoft JScript 実行時エラー
---------------------------
OK
---------------------------
Windows Script Host
---------------------------
スクリプト: C:\Users\10\Desktop\10.js
行: 1
文字: 1
エラー: 'Wscript' は宣言されていません。
コード: 800A1391
ソース: Microsoft JScript 実行時エラー
---------------------------
OK
---------------------------
2010/12/30(木) 00:17:30ID:08ofgx/l
WSHで1番汎用的なのって結局vbsなんですか?
2010/12/30(木) 00:42:04ID:xW3gQ5+X
wsfだろ
2010/12/30(木) 17:08:36ID:0MWDFXK8
wsfが何か解ってての発言ならそう
解ってなくての発言なら「wsfもデフォルト、しかもwsf内でVBSとJS、更に他のActiveScript対応言語が混在できる」と言っておく
解ってなくての発言なら「wsfもデフォルト、しかもwsf内でVBSとJS、更に他のActiveScript対応言語が混在できる」と言っておく
2010/12/30(木) 17:55:32ID:xW3gQ5+X
日本語でおk
2010/12/31(金) 10:08:00ID:/JGLq4Iy
えっ
2010/12/31(金) 20:09:14ID:kL9e4eNw
汎用的なんつー曖昧なことをいうからだ。
どれも何かの処理に特化したもんでもないし*それなりに*汎用的だ。
どれも何かの処理に特化したもんでもないし*それなりに*汎用的だ。
2011/01/01(土) 16:30:59ID:u9x30d7f
wsfはvbsより専用的?
jsはvbsより専用的?
一般的なデフォルト?
特殊なデフォルト?
jsはvbsより専用的?
一般的なデフォルト?
特殊なデフォルト?
2011/01/02(日) 18:32:59ID:92kNE2ba
vbsはvbscript専用。jsはjscript専用。wsfはvbscript、jscript両用なので汎用
2011/01/08(土) 02:47:48ID:wFF3NM0U
rubyは一般的なデフォルトで使えないから汎用的でないんだよ
2011/01/13(木) 17:38:31ID:xqN3E9C5
汎用的なデフォルトは一般的でないんだよ
2011/01/14(金) 15:33:32ID:j6FZVWGM
2011/01/15(土) 16:21:12ID:4x/qG0WE
>>28
27ではないけど、書名にあるようにRuby側から見たらあくまで「邪道」
ただRubyやPerlそのものでは無くて
ActiveScriptRubyや、PerlScriptに依存した話なら
ここで良いのではと思う
27ではないけど、書名にあるようにRuby側から見たらあくまで「邪道」
ただRubyやPerlそのものでは無くて
ActiveScriptRubyや、PerlScriptに依存した話なら
ここで良いのではと思う
2011/01/15(土) 16:21:56ID:zaQ/9Snk
窓APIとかWMIいじるならrubyよりPowerShellがいいって事だよ
2011/01/16(日) 16:57:09ID:aEtK6RmW
わざわざwshでrubyしていいことあるのか?
2011/01/18(火) 21:09:35ID:6oYqEXc4
HTAでActiveScriptRubyやPerlScriptやりたいならわからんでもないが
2011/02/04(金) 19:18:50ID:zRGsp834
Temporary Internet Files に溜まっている容量を食う画像ファイルの削除方
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
function d1(aaa)
{
if(fs.FileExists(aaa)) fs.DeleteFile( aaa );
}
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.gif" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.gif" );
たらたら
スマートではないな。
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
function d1(aaa)
{
if(fs.FileExists(aaa)) fs.DeleteFile( aaa );
}
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.gif" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.gif" );
たらたら
スマートではないな。
2011/02/04(金) 19:21:56ID:H0i5uLHI
環境変数くらい使えw
2011/02/05(土) 17:42:37ID:oOuGbzzj
そんなもんバッチファイルでやれや
2011/02/05(土) 18:19:50ID:rk7KWhb/
バッチファイルとかDOS窓ひらくじゃん
2011/02/05(土) 18:28:22ID:oOuGbzzj
それくらい最小化すればええがな
2011/02/07(月) 08:37:45ID:DSR2LhTh
むしろ俺はWSHもcscriptでやるし、wscriptでもmsgbox表示するぞ
何かしらの表示があったほうが進行状況が分かって個人的に安心できる
何かしらの表示があったほうが進行状況が分かって個人的に安心できる
2011/02/07(月) 14:58:51ID:FEcKz/Kj
いみふ 日本語使え
2011/02/07(月) 18:42:46ID:T7YFH+4h
わかるだろw
2011/02/07(月) 21:08:05ID:FEcKz/Kj
color f0
ってやれば気にならねーよ
ってやれば気にならねーよ
2011/02/07(月) 21:50:23ID:FEcKz/Kj
ついでに
title Temporary Internet Files に溜まっている容量を食う画像ファイルを削除中です...
title Temporary Internet Files に溜まっている容量を食う画像ファイルを削除中です...
2011/02/10(木) 03:35:40ID:p4x9btO0
個人的にはバッチファイルならJSかな
@if (0)==(0) @echo off
cscript.exe "%~f0" //Nologo //J:JScript %*
goto :EOF
@end
var args = new Enumerator(WScript.Arguments)
この辺まで個人的にテンプレ文だわ
@if (0)==(0) @echo off
cscript.exe "%~f0" //Nologo //J:JScript %*
goto :EOF
@end
var args = new Enumerator(WScript.Arguments)
この辺まで個人的にテンプレ文だわ
2011/02/10(木) 16:10:00ID:DW3C2PEC
2011/02/10(木) 17:14:47ID:uU7ZMDHw
俺は拡張子でwscript.exeとcscript.exeを使い分けてる
.vbs、.js、.wshはwscript.exe、.vbc、.jcs、.cshはcscript.exeってね
C Shell等、別な物と被るなら他の拡張子でもいいし
エディタが拡張子で言語見分けてるから、.bat拡張子だと
中身がJSやVBSでもバッチファイルの強調表示や入力補完になっちゃうし
.vbs、.js、.wshはwscript.exe、.vbc、.jcs、.cshはcscript.exeってね
C Shell等、別な物と被るなら他の拡張子でもいいし
エディタが拡張子で言語見分けてるから、.bat拡張子だと
中身がJSやVBSでもバッチファイルの強調表示や入力補完になっちゃうし
2011/02/13(日) 00:53:31ID:lqMvXV0f
// jscriptでも1行でいけるね
@if (0)==(0) (@cscript.exe "%~f0" //nologo //e:jscript %*) & (@goto :eof) & @end
for(var iii=0;iii<WScript.Arguments.length;iii++){ WScript.Echo(iii + '-'+ WScript.Arguments(iii));};
new ActiveXObject('WScript.Shell').popup(WScript.Arguments.length);
@if (0)==(0) (@cscript.exe "%~f0" //nologo //e:jscript %*) & (@goto :eof) & @end
for(var iii=0;iii<WScript.Arguments.length;iii++){ WScript.Echo(iii + '-'+ WScript.Arguments(iii));};
new ActiveXObject('WScript.Shell').popup(WScript.Arguments.length);
2011/02/13(日) 23:22:03ID:6qPKG8Qf
それほどの事でもないだろ
2011/02/14(月) 15:25:37ID:WWZot1vK
昔はVBSのほうがドキュメントもそろってたけど、もう立場は逆転した感じ。
2011/02/14(月) 17:13:42ID:MBnaCfqF
コロンだっちゃ
2011/02/15(火) 02:33:03ID:5kt/fSLl
ちょっと教えてください。
時刻の文字列から、合計の秒数を計算して表示しようとしてるのだけれど、数字によって表示がおかしくなります。
何か大事なことを忘れてるんでしょうか?
わけがわからないです。
oshl=new ActiveXObject('WScript.Shell');
var nsec=33.48 ;
nsec=nsec + 60;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 60を足した結果に、文字を付け足すと数字がおかしくなる");
var nsec=33.48 ;
nsec=nsec + 100;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 100を足した結果に、文字を付け足しても数字がおかしくならない");
時刻の文字列から、合計の秒数を計算して表示しようとしてるのだけれど、数字によって表示がおかしくなります。
何か大事なことを忘れてるんでしょうか?
わけがわからないです。
oshl=new ActiveXObject('WScript.Shell');
var nsec=33.48 ;
nsec=nsec + 60;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 60を足した結果に、文字を付け足すと数字がおかしくなる");
var nsec=33.48 ;
nsec=nsec + 100;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 100を足した結果に、文字を付け足しても数字がおかしくならない");
5655
2011/02/15(火) 02:49:44ID:5kt/fSLl わかりにくいかもしれないんで、書き直します。たとえば、関数の戻り値がおかしくなっちゃうのです。
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// この場合は、数字がおかしい。
n=100;
oshl.popup( test(n));// この場合は、数字は問題ない。
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// この場合は、数字がおかしい。
n=100;
oshl.popup( test(n));// この場合は、数字は問題ない。
5755
2011/02/15(火) 03:13:19ID:5kt/fSLl ぐぐったら、これがjavascriptの仕様なんだとw そ、そんな馬鹿なと思ったけど。
少数を含む数値を1000倍にしといて整数にしてから計算して、1000で割ることにしました。まんどくせえw
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
test2=function(n){
return( "合計 "+ (((33.48)*1000 + (n*1000))/1000)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// 数字がおかしい。
n=60;
oshl.popup( test2(n));// 数字は問題ない。
少数を含む数値を1000倍にしといて整数にしてから計算して、1000で割ることにしました。まんどくせえw
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
test2=function(n){
return( "合計 "+ (((33.48)*1000 + (n*1000))/1000)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// 数字がおかしい。
n=60;
oshl.popup( test2(n));// 数字は問題ない。
2011/02/15(火) 11:21:20ID:KQK8NgNf
nが文字列になる瞬間に数字が変わってるね。
「return n;」だと異常ないのに、「return n+"";」だと循環小数になる。
こっちでもっと良い解決方法が無いか15分くらい探してみたけど、見付からなかった……。
あと、returnは関数ではなくて文なので、「return(n);」でなくて「return n;」の方が良いと思う。
「return n;」だと異常ないのに、「return n+"";」だと循環小数になる。
こっちでもっと良い解決方法が無いか15分くらい探してみたけど、見付からなかった……。
あと、returnは関数ではなくて文なので、「return(n);」でなくて「return n;」の方が良いと思う。
2011/02/15(火) 11:26:34ID:KQK8NgNf
「return n;」の前に「n+=33.48;」って書いて説明するの忘れてた……。
function test(n){
n+=33.48;
//return n;/*93.48*/
//return n+"";/*93.47999999999999*/
return "合計"+n+"秒です";
};
var oshl=new ActiveXObject('WScript.Shell');
oshl.Popup(test(60));
function test(n){
n+=33.48;
//return n;/*93.48*/
//return n+"";/*93.47999999999999*/
return "合計"+n+"秒です";
};
var oshl=new ActiveXObject('WScript.Shell');
oshl.Popup(test(60));
2011/02/15(火) 17:27:27ID:63WoE9G3
俺はVBSがメインでJSは多少しか使わないんだけど
MsgBox関数に相当するようなのはJSでは何?
デバッグ用によく使うんだけど、JS使うときいつも困る。
MsgBox関数に相当するようなのはJSでは何?
デバッグ用によく使うんだけど、JS使うときいつも困る。
2011/02/15(火) 18:31:31ID:Sw9YlaCV
WScript.Echo()
2011/02/15(火) 18:45:58ID:ohiLAigb
// スクリプトコントロールのVbscriptで逃げられるかと思ったら、引き算がアウトだった。
// nilscriptもjscriptと同じく駄目。dmscriptで試すと、引き算を除いて、問題なしだった。
oshl=new ActiveXObject('WScript.Shell');
ovbscript=new ActiveXObject('ScriptControl');
ovbscript.Language = 'VBScript';
ovbscript.AddCode("Function vbscriptexecute(scommand):dim sret:Execute scommand:vbscriptexecute=sret:End Function");
sreteval=function(scommand){return ovbscript.Run('vbscriptexecute',scommand);};
// nilscriptもjscriptと同じく駄目。dmscriptで試すと、引き算を除いて、問題なしだった。
oshl=new ActiveXObject('WScript.Shell');
ovbscript=new ActiveXObject('ScriptControl');
ovbscript.Language = 'VBScript';
ovbscript.AddCode("Function vbscriptexecute(scommand):dim sret:Execute scommand:vbscriptexecute=sret:End Function");
sreteval=function(scommand){return ovbscript.Run('vbscriptexecute',scommand);};
2011/02/15(火) 18:47:51ID:ohiLAigb
n=33.48; nplus=60;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=33.48:nplus=60:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (33.48 + 60) & "どうですかvbs"'));
n=1.01; nplus=1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (1.01 + 1.1) & "どうですかvbs"'));
n=1.01; nplus=-1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=-1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= ((1.01 - 1.1)+0.01) & "どうですかvbs"'));
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=33.48:nplus=60:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (33.48 + 60) & "どうですかvbs"'));
n=1.01; nplus=1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (1.01 + 1.1) & "どうですかvbs"'));
n=1.01; nplus=-1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=-1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= ((1.01 - 1.1)+0.01) & "どうですかvbs"'));
2011/02/15(火) 19:02:44ID:ohiLAigb
@set @SHORT_CIRCUIT = true/* & (@title batdm:%~nx0) & (@dm.exe "%~f0" %*) & (@goto :eof) & @end */
// d-monkeyのdmscriptでも一行バッチが動いたわ。jscriptでも起動の部分だけ変えると動くね。
// d-monkeyのdmscriptでも一行バッチが動いたわ。jscriptでも起動の部分だけ変えると動くね。
2011/02/15(火) 22:18:48ID:qdYN7Y8/
2011/02/16(水) 14:03:18ID:9iSQ4aMo
>>60
関数作ればいいじゃん。
function msgbox(s,n){new ActiveXObject('WScript.Shell').Popup(s,n);};
msgbox("www");
関数作ればいいじゃん。
function msgbox(s,n){new ActiveXObject('WScript.Shell').Popup(s,n);};
msgbox("www");
2011/02/19(土) 10:10:15ID:QTF/dNrf
スクリプトコンポーネント(WSC)内部から
呼び出し元のコンテキスト(グローバルオブジェクト)を取得することってできるかな。
WSC内のグローバルオブジェクトと
呼び出し元(例えばWSH)のグローバルオブジェクトは異なるんだよね。
現状WSH側から明示的にthisを渡しているけど、
できればこれを暗黙的にやりたいんだ。
呼び出し元のコンテキスト(グローバルオブジェクト)を取得することってできるかな。
WSC内のグローバルオブジェクトと
呼び出し元(例えばWSH)のグローバルオブジェクトは異なるんだよね。
現状WSH側から明示的にthisを渡しているけど、
できればこれを暗黙的にやりたいんだ。
2011/02/19(土) 10:28:51ID:QTF/dNrf
2011/02/19(土) 23:30:19.14ID:QTF/dNrf
>>70
WSC側でexecuteglobalを呼び出す限り
WSCのグローバルコンテキストで実行されるだけなんだよね(eval系は全部同じ)。
ちなみにJScript使っているんだけど
WSC側でevalするとWSCのグローバルコンテキストで評価される。
WSHのグローバルを受け取って(仮に変数wshに入れておくとする)
WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
これをしたいがためにWSH側のグローバルオブジェクトが必要だった。
WSH側から明示的には渡せるけど、
WSC側から暗黙的に取得することは可能なのかなと思った次第っす。
WSC側でexecuteglobalを呼び出す限り
WSCのグローバルコンテキストで実行されるだけなんだよね(eval系は全部同じ)。
ちなみにJScript使っているんだけど
WSC側でevalするとWSCのグローバルコンテキストで評価される。
WSHのグローバルを受け取って(仮に変数wshに入れておくとする)
WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
これをしたいがためにWSH側のグローバルオブジェクトが必要だった。
WSH側から明示的には渡せるけど、
WSC側から暗黙的に取得することは可能なのかなと思った次第っす。
2011/02/20(日) 00:27:41.73ID:yeS7euVC
通りすがりです
>>71
>WSH側から明示的には渡せるけど、
>WSC側から暗黙的に取得することは可能なのかなと思った次第っす。
これいろいろ探したけどダメだったな
>WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
オレもこれやったな
wsh 側のメソッドを wsc 側で再定義して利用したとき気がついた
>>71
>WSH側から明示的には渡せるけど、
>WSC側から暗黙的に取得することは可能なのかなと思った次第っす。
これいろいろ探したけどダメだったな
>WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
オレもこれやったな
wsh 側のメソッドを wsc 側で再定義して利用したとき気がついた
2011/02/20(日) 22:06:10.54ID:w/qV1CAR
classはexecuteglobalできたがwscはだめみたいね
2011/02/20(日) 22:20:30.93ID:+TcATz3w
それってWSC側で、たとえばWSHのJscriptを使ってるときには、WSCの関数の中で勝手にWScriptオブジェクトを使い、
HTAから呼び出す場合は、locationを、エディタのマクロからだとEditorオブジェクトを使えるよう出来るって話でもある?
それが出来たらシンプルになるなぁ。
でも一回は外からオブジェクトを渡さないと無理なんでしょ?
HTAから呼び出す場合は、locationを、エディタのマクロからだとEditorオブジェクトを使えるよう出来るって話でもある?
それが出来たらシンプルになるなぁ。
でも一回は外からオブジェクトを渡さないと無理なんでしょ?
2011/02/20(日) 22:59:44.10ID:W5fSZz0V
>>69
もうちょっと教えてくれない? こういう処理でも問題ないのかな?
oshl=new ActiveXObject('WScript.Shell');
n=60;
s = "合計 "+ ((33.48 + n)-0) + " 秒です。 小数がだらだら続く・・・orz";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(13) -0) + " 秒です。.toFixed(13);トレビア〜ン!";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(14) -0) + " 秒です。.toFixed(14);・・・orz";
oshl.popup(s);
13桁にしとくと問題ないみたいだが。14桁だとまた出てくる。この境目に重大な謎が潜んでるですかね?
とりあえず((33.48 + n).toFixed(13) -0) って感じに書き換えて動かしていきます。ありがとう。
もうちょっと教えてくれない? こういう処理でも問題ないのかな?
oshl=new ActiveXObject('WScript.Shell');
n=60;
s = "合計 "+ ((33.48 + n)-0) + " 秒です。 小数がだらだら続く・・・orz";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(13) -0) + " 秒です。.toFixed(13);トレビア〜ン!";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(14) -0) + " 秒です。.toFixed(14);・・・orz";
oshl.popup(s);
13桁にしとくと問題ないみたいだが。14桁だとまた出てくる。この境目に重大な謎が潜んでるですかね?
とりあえず((33.48 + n).toFixed(13) -0) って感じに書き換えて動かしていきます。ありがとう。
2011/02/20(日) 23:27:24.33ID:e7HEvFyX
人間の考える小数とは違うんよ。
「浮動小数点数」ってのを知っとくといいよ。
「浮動小数点数」ってのを知っとくといいよ。
2011/02/21(月) 00:12:12.32ID:Tq0Q360t
>>76 いまぐぐってます。ありがとう。
とりあえず計算のあとには、 .toFixed(13)-0 をつけることにします。
とりあえず計算のあとには、 .toFixed(13)-0 をつけることにします。
2011/02/21(月) 01:39:52.68ID:We8Hkeyt
>>74
現状、既定のメソッドを定義して
new ActiveXObject('foo.bar')(this)
という一行で済ましているよ。
とりあえず呼び出し側のグローバルさえ渡せば
WSC内である程度自由にできるから。
呼び出し側とWSCの連係で厄介なのは
グローバルオブジェクトの交換はできても
両者のスコープは完全に独立しているってこと
関数をどちらのコンテキストで実行するかで
スコープチェーンが異なってくるんだよね。
arguments.callerとか使うとハマるwww
現状、既定のメソッドを定義して
new ActiveXObject('foo.bar')(this)
という一行で済ましているよ。
とりあえず呼び出し側のグローバルさえ渡せば
WSC内である程度自由にできるから。
呼び出し側とWSCの連係で厄介なのは
グローバルオブジェクトの交換はできても
両者のスコープは完全に独立しているってこと
関数をどちらのコンテキストで実行するかで
スコープチェーンが異なってくるんだよね。
arguments.callerとか使うとハマるwww
2011/02/23(水) 01:28:34.67ID:YNUK4o1U
@set @s=1;/* & (@title batjs:%~nx0) & (@"cscript.exe" //nologo //e:jscript "%~f0" %*) & (@goto :eof) & @end */;g=GetObject("script:"+"C:\\g.wsc").init(this);
g.popup("cscriptでwscを使うバッチを1行でまとめてみた。");
/* g.wscの中身
<?xml version="1.0" encoding="shift_jis" ?>
<component><?component error="true" debug="true"?><public>
<method name="popup"/>
<method name="init"/>
</public><implements type="Behavior" id="Behavior"/>
<script language="JScript"><![CDATA[
var oshl=new ActiveXObject('WScript.Shell');
function popup(smes,nsec){return oshl.popup(smes,nsec);};
function init(othis){
if(typeof(othis.WScript)=='object'){WScript=othis.WScript;
}else if(typeof(othis.location)=='object'){location=othis.location;
};return this;
};
]]></script></component>
*/
g.popup("cscriptでwscを使うバッチを1行でまとめてみた。");
/* g.wscの中身
<?xml version="1.0" encoding="shift_jis" ?>
<component><?component error="true" debug="true"?><public>
<method name="popup"/>
<method name="init"/>
</public><implements type="Behavior" id="Behavior"/>
<script language="JScript"><![CDATA[
var oshl=new ActiveXObject('WScript.Shell');
function popup(smes,nsec){return oshl.popup(smes,nsec);};
function init(othis){
if(typeof(othis.WScript)=='object'){WScript=othis.WScript;
}else if(typeof(othis.location)=='object'){location=othis.location;
};return this;
};
]]></script></component>
*/
2011/02/23(水) 01:48:39.04ID:8LTNmD8F
大したことではないけど
popup メソッドのディスパッチIDを0にしておけば、
メソッド名も省略して呼び出せるよ。
これはJScriptではなくCOMコンポーネントの規約。
popup メソッドのディスパッチIDを0にしておけば、
メソッド名も省略して呼び出せるよ。
これはJScriptではなくCOMコンポーネントの規約。
2011/02/23(水) 02:42:23.12ID:uWPO9giD
wscのほうで、 <method name="init" dispid="0"/>
にしておけば、スクリプトのほうで
g=GetObject("script:"+"C:\\g.wsc")(this);
でいいってことなんだ。
それが >>78 の
new ActiveXObject('foo.bar')(this)
の話なわけだ。
やっと理解できたw
やっぱり晒して添削を受けてみるもんだね。ありがとう。
さっきぐぐったら英語の記事で、dispid=0 in .WSC does not work in Vista がうんたらかんたらと出てきたがワケワカメ・・・
にしておけば、スクリプトのほうで
g=GetObject("script:"+"C:\\g.wsc")(this);
でいいってことなんだ。
それが >>78 の
new ActiveXObject('foo.bar')(this)
の話なわけだ。
やっと理解できたw
やっぱり晒して添削を受けてみるもんだね。ありがとう。
さっきぐぐったら英語の記事で、dispid=0 in .WSC does not work in Vista がうんたらかんたらと出てきたがワケワカメ・・・
2011/03/03(木) 17:58:00.79ID:yGt/TIu+
三陸産カットワカメ・・・
2011/03/03(木) 22:08:51.13ID:EjH1JmdG
おまえはどこのワカメじゃ!
2011/03/03(木) 22:56:09.53ID:3EDIrNbf
素人の質問ですみません。以下の記述で
〜〜〜
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
FilePATH = "C:\WINDOWS\system32\drivers\etc\hosts"
set PNTR_fullPATH = objFSO.GetAbsolutePathName( FilePath )
〜〜〜
オブジェクトがありません。: '[string: "C:\WINDOWS\system32\"]'
とエラーが返ってくるのですが、いまいち原因が分かりません。
すみませんが教えて下さい。
〜〜〜
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
FilePATH = "C:\WINDOWS\system32\drivers\etc\hosts"
set PNTR_fullPATH = objFSO.GetAbsolutePathName( FilePath )
〜〜〜
オブジェクトがありません。: '[string: "C:\WINDOWS\system32\"]'
とエラーが返ってくるのですが、いまいち原因が分かりません。
すみませんが教えて下さい。
2011/03/03(木) 23:07:48.07ID:1OyzSADG
set要らない
2011/03/04(金) 03:21:31.70ID:wiEZLKWL
あ・・・ありがとうございます!!
2011/03/04(金) 19:46:37.57ID:tFN5KqE3
@echo off
ruby -x "%~0"
goto :exit
#!ruby
puts "hello"
で.batとrubyを混在させることができますが
同様に.vbsファイル中にbatのコードを記述するやり方があったら教えてください。
ruby -x "%~0"
goto :exit
#!ruby
puts "hello"
で.batとrubyを混在させることができますが
同様に.vbsファイル中にbatのコードを記述するやり方があったら教えてください。
2011/03/04(金) 19:50:14.75ID:dFFRxivQ
はぁ?逆じゃね?
2011/03/04(金) 20:16:18.74ID:gkErHLUc
2011/03/04(金) 20:17:01.88ID:bG2qjjj3
100レスもないこのスレを読めばいいよ
2011/03/04(金) 20:30:56.41ID:3PGgX7eE
2011/03/04(金) 22:16:57.68ID:dFFRxivQ
中の概念崩壊?
2011/03/05(土) 00:32:27.66ID:AVPrJyfw
var str = "abc";
typeof str は "string"
str instanceof Object は False
なのに str.constructor はエラーにならず String と出る
constructor プロパティは Object のメンバーのはず。
暗黙的な new String はどこで行われている?
typeof str は "string"
str instanceof Object は False
なのに str.constructor はエラーにならず String と出る
constructor プロパティは Object のメンバーのはず。
暗黙的な new String はどこで行われている?
2011/03/05(土) 00:57:31.81ID:w8aZ0SFU
適当な考えだが、
バリアント型なんで評価時にクラスが決定されるんでないのかね。
var x ="123"; // これだと string
さらに
x++; // こうすると number になる
バリアント型なんで評価時にクラスが決定されるんでないのかね。
var x ="123"; // これだと string
さらに
x++; // こうすると number になる
2011/03/05(土) 07:18:20.64ID:XA/P3Nuj
>>96
ttp://msdn.microsoft.com/ja-jp/library/0y7dd8cx.aspx
> JScript の Object は特殊です。
> オブジェクトは Object コンストラクターで作成された場合にだけ
> Object のインスタンスであると見なされます。
つまり、StringはObjectの派生であるからObjectのメソッドが使えるのだが
incetanceofがObjectの直接のインスタンス以外を
Objectのインスタンスとして認めない、という話
JSではObjectを連想配列(ハッシュ、辞書)のように使うことがあるから
そのための配慮だと思われるが、ややこしいな
ttp://msdn.microsoft.com/ja-jp/library/0y7dd8cx.aspx
> JScript の Object は特殊です。
> オブジェクトは Object コンストラクターで作成された場合にだけ
> Object のインスタンスであると見なされます。
つまり、StringはObjectの派生であるからObjectのメソッドが使えるのだが
incetanceofがObjectの直接のインスタンス以外を
Objectのインスタンスとして認めない、という話
JSではObjectを連想配列(ハッシュ、辞書)のように使うことがあるから
そのための配慮だと思われるが、ややこしいな
2011/03/05(土) 12:00:42.65ID:AVPrJyfw
>>97,98
サンクスです。
仕様ということで頭に入れておけばいいのでしょうけれど
typeof や instanceof を使った条件分岐の際、
あいまいな理解だと予期せぬ動作を引き起こしそうですねw。
サンクスです。
仕様ということで頭に入れておけばいいのでしょうけれど
typeof や instanceof を使った条件分岐の際、
あいまいな理解だと予期せぬ動作を引き起こしそうですねw。
100名無し~3.EXE
2011/03/06(日) 16:57:59.80ID:rO7bjyyi javascriptのプロトタイプの例としてtrim()コマンドってのがあります。
ぐぐるとよく出てきます。
このようなprototypeをwscに登録して、関数やプロパティのように楽して使いたいのですが
よくわからんです。
いまの自分のwscの理解の状態は、関数やプロパティをwscに書いて、
jscriptやhtaのgetobjectから呼ぶことは出来るレベルです。
windows script component に詳しい人がいたらヒントをお願いします。
ぐぐるとよく出てきます。
このようなprototypeをwscに登録して、関数やプロパティのように楽して使いたいのですが
よくわからんです。
いまの自分のwscの理解の状態は、関数やプロパティをwscに書いて、
jscriptやhtaのgetobjectから呼ぶことは出来るレベルです。
windows script component に詳しい人がいたらヒントをお願いします。
101名無し~3.EXE
2011/03/06(日) 20:15:06.19ID:OTYUKE1n >>100
wscは既存のオブジェクトを拡張するための機能ではないよ。
新規にオブジェクトを設計してそれをスクリプトから再利用出来るようにするもの。
君の場合、jsやvbsで拡張用のコードを用意しておいて
それをwsfやhtaから利用するほうが楽なんじゃないかな?
scriptタグを使って読み込めるからね。
質問から察するにそちらのほうが正攻法だと思う。
もちろんWSCを使って呼び出し元のオブジェクトを
無理矢理拡張できないこともないけど。
wscは既存のオブジェクトを拡張するための機能ではないよ。
新規にオブジェクトを設計してそれをスクリプトから再利用出来るようにするもの。
君の場合、jsやvbsで拡張用のコードを用意しておいて
それをwsfやhtaから利用するほうが楽なんじゃないかな?
scriptタグを使って読み込めるからね。
質問から察するにそちらのほうが正攻法だと思う。
もちろんWSCを使って呼び出し元のオブジェクトを
無理矢理拡張できないこともないけど。
102名無し~3.EXE
2011/03/06(日) 22:39:37.78ID:0PSkRQeX WSC prototypeでぐぐって見たら、
ttp://moz-addon.g.hatena.ne.jp/ZIGOROu/?word=*[WSC]
が引っかかりました。wsc経由でも、prototypeが使えるらしい。 やった!w
・・・が細かい記述はなし。
あと、スクリプト内部の外部ファイル化も出来るらしい。試したら・・・出来た!w
<property name="test0"/>
<script language="JScript" src='./test0.js'/>
これ便利だわw
prototypeが出来るか?もうちょっと粘ってみます。
ttp://moz-addon.g.hatena.ne.jp/ZIGOROu/?word=*[WSC]
が引っかかりました。wsc経由でも、prototypeが使えるらしい。 やった!w
・・・が細かい記述はなし。
あと、スクリプト内部の外部ファイル化も出来るらしい。試したら・・・出来た!w
<property name="test0"/>
<script language="JScript" src='./test0.js'/>
これ便利だわw
prototypeが出来るか?もうちょっと粘ってみます。
103名無し~3.EXE
2011/03/06(日) 23:21:41.58ID:OTYUKE1n >>102
ひとつ言っておくけど
wscのグローバルコンテキストと呼び出し元のそれとは異なるからね。
つまりwsc内のStringオブジェクトのプロトタイプを拡張しても
呼び出し元のStringオブジェクトには使えないということ。
まあ試せるだけ試して、また来なさいな。
ひとつ言っておくけど
wscのグローバルコンテキストと呼び出し元のそれとは異なるからね。
つまりwsc内のStringオブジェクトのプロトタイプを拡張しても
呼び出し元のStringオブジェクトには使えないということ。
まあ試せるだけ試して、また来なさいな。
104名無し~3.EXE
2011/03/07(月) 00:34:09.18ID:cQcCMBvw たしかにw WSFかHTAでやったほうがいいね。WSFなら<job>と<script src=....>タグで包めばいいだけだものね。
<job><script src=./test0.js /><script src=./prototype0.js /><script>
s=" Trim WSH ";
oshl=new ActiveXObject('WScript.Shell');
test0.alert3("WSFから読み込んで実行" + "\n" + s +"\n" + s.trim());
test0.表示する2("---"+ s +"---\n" +"---"+ s.をトリム()+"---");
/*
// test0.jsの中身
test0={
alert3 : function(s){oshl.popup(s,3);},
表示する2 : function(s){oshl.popup(s+"\n\n"+s);}
};
// prototype0.jsの中身
trim = function(){return this.replace(/^[ \t ]+/,'').replace(/[ \t ]*$/,'');};
String.prototype.trim = trim; String.prototype.をトリム = trim;
*/
</script></job>
<job><script src=./test0.js /><script src=./prototype0.js /><script>
s=" Trim WSH ";
oshl=new ActiveXObject('WScript.Shell');
test0.alert3("WSFから読み込んで実行" + "\n" + s +"\n" + s.trim());
test0.表示する2("---"+ s +"---\n" +"---"+ s.をトリム()+"---");
/*
// test0.jsの中身
test0={
alert3 : function(s){oshl.popup(s,3);},
表示する2 : function(s){oshl.popup(s+"\n\n"+s);}
};
// prototype0.jsの中身
trim = function(){return this.replace(/^[ \t ]+/,'').replace(/[ \t ]*$/,'');};
String.prototype.trim = trim; String.prototype.をトリム = trim;
*/
</script></job>
105名無し~3.EXE
2011/03/07(月) 03:50:20.20ID:cQcCMBvw 結論を先に言うと、WSCに書いたprototypeのtrimを、WSC側だけでなく、スクリプト本体からも使えるようですw!
スクリプト本体からGetObjectでWSCに送るオブジェクト this にprototypeを付け足せばOKのようです。
で、下記のサンプルのjsファイルと同じフォルダに、別記のthistest.wsc ファイルと
wscに読み込むための test1.js ファイルを置いて試して見て下さい。
trimとコマンドラインの引数を表示するサンプルです。
とりあえず動くようなんでこれで問題ないかな?と思ってるんですけど、どうかな?
スクリプト本体からGetObjectでWSCに送るオブジェクト this にprototypeを付け足せばOKのようです。
で、下記のサンプルのjsファイルと同じフォルダに、別記のthistest.wsc ファイルと
wscに読み込むための test1.js ファイルを置いて試して見て下さい。
trimとコマンドラインの引数を表示するサンプルです。
とりあえず動くようなんでこれで問題ないかな?と思ってるんですけど、どうかな?
106名無し~3.EXE
2011/03/07(月) 03:52:33.62ID:cQcCMBvw main=function(){
s=" test ";
sTrim= "TrimBefore==="+s +"==="+"\n";
sTrim+="TrimAfter ==="+s.trim()+"==="+"\n";
sTrim+="TrimAfter ==="+s.をトリム()+"==="+"\n";
sTrim+="TrimAfter ==="+funsub(s)+"==="+"\n";
oshl.popup("trim()のテスト\n\n"+ s + "\n\n"+ sTrim);
test1.alert3(" --- コマンドラインの引数argcl=\n" + argcl.join("\n"));
test1.表示2( 3333 );
n = ( 999 + 1000 ).を表示(); sss=(" 終了です " + n ).を表示();
oshl.popup("---"+sss+"---");
};
pWscのパス=WScript.Scriptfullname.replace(/^(.+)[\\]([^\\]+)$/,'$1')+"\\thistest.wsc";
GetObject("script:" + pWscのパス)(this);
funsub=function(s){return s.trim();};
main();
/*** thistest.wsc から読み込む test1.js ファイルの中身。 thistest.wscは別記する。
test1={ alert3 : function(s){oshl.popup("==="+ s.trim()+"===",3);},
表示2 : function(s){oshl.popup(s+"\n\n"+s);}
};
***/;
s=" test ";
sTrim= "TrimBefore==="+s +"==="+"\n";
sTrim+="TrimAfter ==="+s.trim()+"==="+"\n";
sTrim+="TrimAfter ==="+s.をトリム()+"==="+"\n";
sTrim+="TrimAfter ==="+funsub(s)+"==="+"\n";
oshl.popup("trim()のテスト\n\n"+ s + "\n\n"+ sTrim);
test1.alert3(" --- コマンドラインの引数argcl=\n" + argcl.join("\n"));
test1.表示2( 3333 );
n = ( 999 + 1000 ).を表示(); sss=(" 終了です " + n ).を表示();
oshl.popup("---"+sss+"---");
};
pWscのパス=WScript.Scriptfullname.replace(/^(.+)[\\]([^\\]+)$/,'$1')+"\\thistest.wsc";
GetObject("script:" + pWscのパス)(this);
funsub=function(s){return s.trim();};
main();
/*** thistest.wsc から読み込む test1.js ファイルの中身。 thistest.wscは別記する。
test1={ alert3 : function(s){oshl.popup("==="+ s.trim()+"===",3);},
表示2 : function(s){oshl.popup(s+"\n\n"+s);}
};
***/;
107名無し~3.EXE
2011/03/07(月) 03:56:57.64ID:cQcCMBvw <?xml version="1.0" encoding="shift_jis" ?><component><?component error="true" debug="true"?><public>
<method name="init" dispid="0"/> <property name="test1"/>
</public><implements type="Behavior" id="Behavior"/>
<script language="JScript" src='./test1.js'/>
<script language="JScript"><![CDATA[
var oshl=new ActiveXObject('WScript.Shell');
var ofso=new ActiveXObject('Scripting.FileSystemObject');
trim = function(){return this.replace(/^[ \t ]+/,'').replace(/[ \t ]*$/,'');};
String.prototype.trim = trim; String.prototype.をトリム = trim;
を表示= function(){oshl.popup(this);return this;};
String.prototype.を表示 = を表示; bWScript=false; blocation=false;
function init(ooo,sopt){
if(typeof(ooo.WScript)=='object'){
bWScript=true; WScript=ooo.WScript; ppScriptfullname=WScript.ScriptFullname;
getArgcl=function(){var aaa=[];for(var iii=0;iii<WScript.Arguments.length;iii++){aaa.push(WScript.Arguments(iii));};return aaa;};
}else if(typeof(ooo.location)=='object'){
blocation=true;location=ooo.location;ppScriptfullname=location.pathname;getArgcl=function(){var aaa=[];return aaa;};
};
ooo.test1=test1; ooo.ppScriptfullname=ppScriptfullname; ooo.argcl=getArgcl(); ooo.oshl=oshl; ooo.ofso=ofso;
ooo.String.prototype.trim = trim; ooo.String.prototype.をトリム = trim;
ooo.String.prototype.を表示 = を表示; ooo.Number.prototype.を表示 = を表示;
return this;
}; ]]></script></component>
<method name="init" dispid="0"/> <property name="test1"/>
</public><implements type="Behavior" id="Behavior"/>
<script language="JScript" src='./test1.js'/>
<script language="JScript"><![CDATA[
var oshl=new ActiveXObject('WScript.Shell');
var ofso=new ActiveXObject('Scripting.FileSystemObject');
trim = function(){return this.replace(/^[ \t ]+/,'').replace(/[ \t ]*$/,'');};
String.prototype.trim = trim; String.prototype.をトリム = trim;
を表示= function(){oshl.popup(this);return this;};
String.prototype.を表示 = を表示; bWScript=false; blocation=false;
function init(ooo,sopt){
if(typeof(ooo.WScript)=='object'){
bWScript=true; WScript=ooo.WScript; ppScriptfullname=WScript.ScriptFullname;
getArgcl=function(){var aaa=[];for(var iii=0;iii<WScript.Arguments.length;iii++){aaa.push(WScript.Arguments(iii));};return aaa;};
}else if(typeof(ooo.location)=='object'){
blocation=true;location=ooo.location;ppScriptfullname=location.pathname;getArgcl=function(){var aaa=[];return aaa;};
};
ooo.test1=test1; ooo.ppScriptfullname=ppScriptfullname; ooo.argcl=getArgcl(); ooo.oshl=oshl; ooo.ofso=ofso;
ooo.String.prototype.trim = trim; ooo.String.prototype.をトリム = trim;
ooo.String.prototype.を表示 = を表示; ooo.Number.prototype.を表示 = を表示;
return this;
}; ]]></script></component>
108名無し~3.EXE
2011/03/07(月) 19:34:50.38ID:o0m549Gn109名無し~3.EXE
2011/03/08(火) 00:08:48.35ID:hefFAWy/ 昨日いろいろ試していて、>>78 new ActiveXObject('foo.bar')(this)
g=new ... というような戻り値を取らない意味がやっと理解出来ましたw
呼び出し元がWSHの場合は、thisに返すことも出来るってことですね。
>>102 のURLの中の人の解説も、今になると少しは理解できましたw
WSCを掘ってみようと思ったのは、WSHとは役目の違うAutohotkeyなどのスクリプト言語からもJscriptで作った関数を楽に使いたかったからです。
関数を一つ一つScriptControlするかという手もあるけど、ScriptControlからGetObjectで一括で取り込んでしまおう!というわけです。
WSCを経由することのスピードのロスは、自作のツールだから割り切れますんでね。
これで、Bat偽装のJscriptで作ったツールを、prototypeを除いてAutohotkeyやhtaboxコアからもほぼ同じように再利用出来ることがわかってよかったです。
このスレには、WSHやjavascript関係でググると出てくる方たちが何人か常駐してるんだろうねw
>>108 さんをはじめみなさんいろいろ教えてもらってありがとう!
g=new ... というような戻り値を取らない意味がやっと理解出来ましたw
呼び出し元がWSHの場合は、thisに返すことも出来るってことですね。
>>102 のURLの中の人の解説も、今になると少しは理解できましたw
WSCを掘ってみようと思ったのは、WSHとは役目の違うAutohotkeyなどのスクリプト言語からもJscriptで作った関数を楽に使いたかったからです。
関数を一つ一つScriptControlするかという手もあるけど、ScriptControlからGetObjectで一括で取り込んでしまおう!というわけです。
WSCを経由することのスピードのロスは、自作のツールだから割り切れますんでね。
これで、Bat偽装のJscriptで作ったツールを、prototypeを除いてAutohotkeyやhtaboxコアからもほぼ同じように再利用出来ることがわかってよかったです。
このスレには、WSHやjavascript関係でググると出てくる方たちが何人か常駐してるんだろうねw
>>108 さんをはじめみなさんいろいろ教えてもらってありがとう!
110名無し~3.EXE
2011/03/09(水) 05:55:35.07ID:Mqnv57Gr JScriptでcatchブロックの下にあるfinallyブロックを使い、
ソースコードを定期的かつ自動的に実行したいのですが
どのように記述しするべきなのでしょうか?
ちなみにfinallyブロックはこのように記述されていて、
IEブラウザが勝手に閉じてくれます
finally{
ie.Quit();
}
ソースコードを定期的かつ自動的に実行したいのですが
どのように記述しするべきなのでしょうか?
ちなみにfinallyブロックはこのように記述されていて、
IEブラウザが勝手に閉じてくれます
finally{
ie.Quit();
}
111名無し~3.EXE
2011/03/09(水) 09:22:51.55ID:yiJYnNja try〜catch〜finally はそういう用途で使うもんじゃないんでないの
112名無し~3.EXE
2011/03/09(水) 22:12:50.52ID:LlSweAWG WSHでクリップボードを使おうと思って次のようなコードを書きました。
値の取得はできるのですが、値の設定がうまくいかないんです。
xxxは表示されず、それ以前にクリップボードに入れた値が表示されます。
どうすれば値の設定ができるようになりますか?
var cb = new ActiveXObject("htmlfile").parentWindow.clipboardData;
cb.setData("text", "xxx");
new ActiveXObject("WScript.Shell").popup(cb.getData("text"));
値の取得はできるのですが、値の設定がうまくいかないんです。
xxxは表示されず、それ以前にクリップボードに入れた値が表示されます。
どうすれば値の設定ができるようになりますか?
var cb = new ActiveXObject("htmlfile").parentWindow.clipboardData;
cb.setData("text", "xxx");
new ActiveXObject("WScript.Shell").popup(cb.getData("text"));
113名無し~3.EXE
2011/03/10(木) 01:52:14.41ID:cSFmRFjD インターネットオプション セキュリティ インターネット 低
114名無し~3.EXE
2011/03/10(木) 05:07:35.87ID:OzXGAxB6115名無し~3.EXE
2011/03/10(木) 05:14:36.60ID:OzXGAxB6 ただこんな話もあるようですが・・・
ttp://d.hatena.ne.jp/Fio/20050321
データ実行防止
DynaCallを使って、WSHでクリップボードを直接操作したりすることをテストしているのですが、ほんのわずかのテキストだったらいいのですが、ちょっと数が多くなるとてきめんにデータ実行防止の画面が出てきてWSHを落とされます。
これはXPのSP2以降の機能のようですが、ウィルスでないWSHスクリプトをウィルスといっしょにすなーー
ttp://d.hatena.ne.jp/Fio/20050321
データ実行防止
DynaCallを使って、WSHでクリップボードを直接操作したりすることをテストしているのですが、ほんのわずかのテキストだったらいいのですが、ちょっと数が多くなるとてきめんにデータ実行防止の画面が出てきてWSHを落とされます。
これはXPのSP2以降の機能のようですが、ウィルスでないWSHスクリプトをウィルスといっしょにすなーー
116名無し~3.EXE
2011/03/10(木) 05:29:08.75ID:hGam45QR >>113
about:blankを信頼済みに追加して「スクリプトによる貼り付け処理の許可」を有効にしています。
ここを無効にするとクリップボードの読み取りも不可になるのでちゃんと反映されていると思うんですが。
WSHから呼び出したときabout:blankであることは以下のコードで確認しました。
var win = new ActiveXObject("htmlfile").parentWindow;
new ActiveXObject("WScript.Shell").popup(win.location);
IEのバージョン依存とかもあるんですかね。自分の環境はIE8です。
>>113 さんの環境では値の設定もできてますか?
>>114
参照先を見てみました。今の自分にはちょっと難しそうなのでこれから勉強してみます。
about:blankを信頼済みに追加して「スクリプトによる貼り付け処理の許可」を有効にしています。
ここを無効にするとクリップボードの読み取りも不可になるのでちゃんと反映されていると思うんですが。
WSHから呼び出したときabout:blankであることは以下のコードで確認しました。
var win = new ActiveXObject("htmlfile").parentWindow;
new ActiveXObject("WScript.Shell").popup(win.location);
IEのバージョン依存とかもあるんですかね。自分の環境はIE8です。
>>113 さんの環境では値の設定もできてますか?
>>114
参照先を見てみました。今の自分にはちょっと難しそうなのでこれから勉強してみます。
117名無し~3.EXE
2011/03/10(木) 05:55:38.56ID:/U/Q8ZHj GetObjectだとコンピュータゾーンになるらしいけど
ただ、どっちにしてもsetDataで設定できないみたいね
InternetExplorer.Applicationとかは
ただ、どっちにしてもsetDataで設定できないみたいね
InternetExplorer.Applicationとかは
118名無し~3.EXE
2011/03/10(木) 07:37:59.38ID:TVU14U2L about:blank の新規窓作ってスクリプトでコンテンツ作成するサイトもあるよ
120名無し~3.EXE
2011/03/10(木) 21:23:25.37ID:cSFmRFjD alert()はできてもprompt()はできないのと一緒
parentWindowは実際にosのwindowを持ってないからだめ
parentWindowは実際にosのwindowを持ってないからだめ
121名無し~3.EXE
2011/03/11(金) 00:20:10.33ID:V8ey7rJ7 >>112
WSH は元々クリップボードを扱うことを想定していないから、
OLE の初期化という処理をアプリケーション側で行っていないんだよね。
だからクリップボードに値を設定することができない。
HTA のように OLE の初期化を行っているスクリプトホストであれば
>>112 のコードは正しく実行される。
じゃあ WSH では不可能なのかというと、API を直接呼び出して
WSH 上で OLE の初期化をさせてしまうという強引な方法もある。
コードの理解には DynaCall や Win32API の知識が必要になるけど、
DynaCall を登録後、以下の三行をオマジナイとして
>>112 のコードの前に追加してみてください。
WSH でもクリップボードに値を設定できるはずだよ。
var dynwrap = new ActiveXObject('DynamicWrapper');
dynwrap.register('ole32','OleInitialize','f=s','i=l','r=l');
dynwrap.OleInitialize(0);
>>114
SfcMini だとこんな感じかな。
var API = new ActiveXObject('SfcMini.DynaCall');
API.LoadLibrariesW('ole32');
API.OleInitialize(0);
ちなみに OleInitialize の戻り値は WSH では 0 だけど HTA だと 1 になる。
これは HTA が既に OLE 初期化済みですよというエラーコード。
つまり 1 が返るスクリプトホストであれば OleInitialize は不要ってこと。
OleInitialize が何をしているかについてはかなり専門的な話になるので省略。
ネットで詳細な解説を見つけるのは難しいかも。興味がある人は以下の本を読むとよろし。
http://www.amazon.co.jp/dp/4756102379
WSH は元々クリップボードを扱うことを想定していないから、
OLE の初期化という処理をアプリケーション側で行っていないんだよね。
だからクリップボードに値を設定することができない。
HTA のように OLE の初期化を行っているスクリプトホストであれば
>>112 のコードは正しく実行される。
じゃあ WSH では不可能なのかというと、API を直接呼び出して
WSH 上で OLE の初期化をさせてしまうという強引な方法もある。
コードの理解には DynaCall や Win32API の知識が必要になるけど、
DynaCall を登録後、以下の三行をオマジナイとして
>>112 のコードの前に追加してみてください。
WSH でもクリップボードに値を設定できるはずだよ。
var dynwrap = new ActiveXObject('DynamicWrapper');
dynwrap.register('ole32','OleInitialize','f=s','i=l','r=l');
dynwrap.OleInitialize(0);
>>114
SfcMini だとこんな感じかな。
var API = new ActiveXObject('SfcMini.DynaCall');
API.LoadLibrariesW('ole32');
API.OleInitialize(0);
ちなみに OleInitialize の戻り値は WSH では 0 だけど HTA だと 1 になる。
これは HTA が既に OLE 初期化済みですよというエラーコード。
つまり 1 が返るスクリプトホストであれば OleInitialize は不要ってこと。
OleInitialize が何をしているかについてはかなり専門的な話になるので省略。
ネットで詳細な解説を見つけるのは難しいかも。興味がある人は以下の本を読むとよろし。
http://www.amazon.co.jp/dp/4756102379
122名無し~3.EXE
2011/03/11(金) 01:28:02.40ID:u15/Db+W 割り込みスマン。
出来たわ。そういう手もあるのか。
出来たわ。そういう手もあるのか。
123名無し~3.EXE
2011/03/12(土) 15:38:51.55ID:r5dmqnIa メルトダウンか・・・
124名無し~3.EXE
2011/03/12(土) 17:51:36.66ID:r5dmqnIa お〜い、おまいら生きてるか?
125名無し~3.EXE
2011/03/29(火) 15:01:07.19ID:LTJJZQ9e UTF-8のtarget.csv、Shift-JISのmaster.txtがある
master.txtにはtarget.csvで置換したい文字列が入っている
target.csv
1,2,3,fuga,5
1,piyo,4,5,5
...
master.csv
hoge
fuga
piyo
...
概要
master.csvの1レコード目の値を取得(変数keyとする)
keyでtarget.csvの1行目を検索する。
HITするならnullに置換。(要は削除したい)
HITしないなら2行目。
target.csv内でループ
master.csv内でループ
問題点
文字コードが違う為、print、write、ODAの使用ができない。
(ODAは文字コード関係ないって聞いた事があったのに…)
これではソースコード内で置換できても、出力ができない上に
文字列を取得する際も文字化けしてしまっている為、処理ができない。
JAVAなんかだと文字コード変換する関数があるけど
JSCRIPTではやっぱ無理?
master.txtにはtarget.csvで置換したい文字列が入っている
target.csv
1,2,3,fuga,5
1,piyo,4,5,5
...
master.csv
hoge
fuga
piyo
...
概要
master.csvの1レコード目の値を取得(変数keyとする)
keyでtarget.csvの1行目を検索する。
HITするならnullに置換。(要は削除したい)
HITしないなら2行目。
target.csv内でループ
master.csv内でループ
問題点
文字コードが違う為、print、write、ODAの使用ができない。
(ODAは文字コード関係ないって聞いた事があったのに…)
これではソースコード内で置換できても、出力ができない上に
文字列を取得する際も文字化けしてしまっている為、処理ができない。
JAVAなんかだと文字コード変換する関数があるけど
JSCRIPTではやっぱ無理?
126名無し~3.EXE
2011/03/29(火) 15:16:03.05ID:C2y6smjb FSOかADODB.Stream使えばいいんじゃね?
128名無し~3.EXE
2011/03/29(火) 17:11:32.48ID:C4uw/B/3 それはばけるでなくばかなんだろw
131名無し~3.EXE
2011/04/04(月) 21:15:15.89ID:yLz3Zj6h wshに渡した引数のダブルクォートが消えないようにするにはどうしたらいいでしょうか。
用途はだいなファイラーの補助スクリプトです。
マクロで変換後スクリプトには"a" "b"...のように渡るのですが、これがa b...になってしまいます。
渡す文字列に半角空白が含まれている場合に不都合です。
用途はだいなファイラーの補助スクリプトです。
マクロで変換後スクリプトには"a" "b"...のように渡るのですが、これがa b...になってしまいます。
渡す文字列に半角空白が含まれている場合に不都合です。
133名無し~3.EXE
2011/04/05(火) 10:02:45.94ID:Pf/rrN9p 個人寄付ランキング
100億 孫正義(ソフトバンク)
10億 柳井正(ユニクロ) 三木谷浩史(楽天)
6億 ブリトニー・スピアーズ(米・歌手)
5億 似鳥昭雄(ニトリ)
2億 久米宏(アナウンサー) 中居正宏(SMAP4億、内2億)
1.2億 レディー・ガガ(米・歌手)
1億 イチロー(マリナーズ)
8000万 サンドラ・ブロック(米・俳優)
7500万 ぺヨンジュン(韓・俳優)
5000万 安室奈美恵(歌手)
3500万 浜崎あゆみ(歌手)
3200万 ジャッキー・チェン ←New
100万 堀江貴文 (ホリエモン)
33万 蛯原友里(タレント)
6万9千 内田裕也(ロック)
体で支払い 江頭2:50(タレント)
折り鶴 アブネスチャン
100億 孫正義(ソフトバンク)
10億 柳井正(ユニクロ) 三木谷浩史(楽天)
6億 ブリトニー・スピアーズ(米・歌手)
5億 似鳥昭雄(ニトリ)
2億 久米宏(アナウンサー) 中居正宏(SMAP4億、内2億)
1.2億 レディー・ガガ(米・歌手)
1億 イチロー(マリナーズ)
8000万 サンドラ・ブロック(米・俳優)
7500万 ぺヨンジュン(韓・俳優)
5000万 安室奈美恵(歌手)
3500万 浜崎あゆみ(歌手)
3200万 ジャッキー・チェン ←New
100万 堀江貴文 (ホリエモン)
33万 蛯原友里(タレント)
6万9千 内田裕也(ロック)
体で支払い 江頭2:50(タレント)
折り鶴 アブネスチャン
134名無し~3.EXE
2011/04/05(火) 17:59:30.38ID:fuIR9JzL135131
2011/04/05(火) 23:27:40.19ID:bVidqRdy 回答ありがとう。またいろいろ調べて試してくる
136名無し~3.EXE
2011/04/16(土) 11:27:42.13ID:MufQ4JVW ダイアログを表示させずにファイルをごみ箱へ移動するスクリプトがw2kで正常に動きません(XPだと動く)
エクスプローラでこのスクリプトにファイルをD&Dすると、ファイルの移動先が"C:\Documents and Settings\ユーザー"へ
他のファイラ(X-Finder)だと、そのファイラの実行ファイルの有るフォルダに移動します
2000で動かす方法は無いですか
var fso=new ActiveXObject("Scripting.FileSystemObject");
var args = WScript.Arguments;
var Shell=new ActiveXObject('Shell.Application');
var Folder=Shell.NameSpace(fso.GetAbsolutePathName(fso.GetParentFolderName(args(0))));
var FolderItem=Folder.Items().Item(fso.GetFileName(args(0)));
Shell.NameSpace(10).MoveHere(FolderItem);
エクスプローラでこのスクリプトにファイルをD&Dすると、ファイルの移動先が"C:\Documents and Settings\ユーザー"へ
他のファイラ(X-Finder)だと、そのファイラの実行ファイルの有るフォルダに移動します
2000で動かす方法は無いですか
var fso=new ActiveXObject("Scripting.FileSystemObject");
var args = WScript.Arguments;
var Shell=new ActiveXObject('Shell.Application');
var Folder=Shell.NameSpace(fso.GetAbsolutePathName(fso.GetParentFolderName(args(0))));
var FolderItem=Folder.Items().Item(fso.GetFileName(args(0)));
Shell.NameSpace(10).MoveHere(FolderItem);
ゴミ箱のプロパティに、確認しないようにするチェック欄あるけど、2000だとそれないの?
138名無し~3.EXE
2011/04/16(土) 19:39:45.68ID:0UUwM/iL Shell.NameSpace("::{645FF040-5081-101B-9F08-00AA002F954E}")
139136
2011/04/16(土) 22:37:16.64ID:MufQ4JVW140名無し~3.EXE
2011/04/16(土) 23:14:45.38ID:CtNIy87X カレントディレクトリ変えるとか
141名無し~3.EXE
2011/04/16(土) 23:21:20.32ID:0UUwM/iL 非同期だから待ち合わせしないとあかんみたいよ
参考ソース
ttp://www.vector.co.jp/soft/winnt/util/se427319.html
参考ソース
ttp://www.vector.co.jp/soft/winnt/util/se427319.html
142136
2011/04/17(日) 00:02:04.93ID:uhTjQ+VV >>141
136はvector(Remove.CMD)のソースをテスト用に改変したものです。Remove.CMDも2000では動きません
非同期回避のループ文が有るとファイルが本来と違う場所に移動した後でエラーを吐きます
またD&D操作でなく、スクリプト内で削除するファイルを決め打ちにするとファイルは移動もしなくなります
2000のwshバージョンを5.7に上げても効果ありませんでした
136はvector(Remove.CMD)のソースをテスト用に改変したものです。Remove.CMDも2000では動きません
非同期回避のループ文が有るとファイルが本来と違う場所に移動した後でエラーを吐きます
またD&D操作でなく、スクリプト内で削除するファイルを決め打ちにするとファイルは移動もしなくなります
2000のwshバージョンを5.7に上げても効果ありませんでした
143名無し~3.EXE
2011/04/17(日) 00:35:04.26ID:4japXLT8 copyhereは?
144名無し~3.EXE
2011/04/17(日) 01:54:12.61ID:4japXLT8 ttp://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list39.shtml
の
管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 22日 22時 45分 04秒
に既出やね
の
管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 22日 22時 45分 04秒
に既出やね
145名無し~3.EXE
2011/04/17(日) 09:13:00.95ID:hP33oYWG Shell Automation Service は
shell32.dll に実装されているけど
単にこれが古いというオチじゃないかな
まあW2K版shell32.dllのバグという見方もできるが。
強引にAPIのSHFileOperationでも使う?w
shell32.dll に実装されているけど
単にこれが古いというオチじゃないかな
まあW2K版shell32.dllのバグという見方もできるが。
強引にAPIのSHFileOperationでも使う?w
146名無し~3.EXE
2011/04/17(日) 09:19:07.96ID:hP33oYWG そうそう、久しぶりにMiTeC覗いたら
OLEViewerのバージョンが上がってたよ
といってもiviewers.dllは提供されていないから
基本的な性能は変わっていないんだけどw
他にも色々と有用なツールがあるから
興味がある人は覗いてみては?
http://www.mitec.cz/
OLEViewerのバージョンが上がってたよ
といってもiviewers.dllは提供されていないから
基本的な性能は変わっていないんだけどw
他にも色々と有用なツールがあるから
興味がある人は覗いてみては?
http://www.mitec.cz/
147名無し~3.EXE
2011/04/23(土) 02:18:54.08ID:4NAn1xc8 WSHでUSBポートの監視、制御ってできますか?
できるのであればAPIの宣言方法を教えて下さい
できるのであればAPIの宣言方法を教えて下さい
148名無し~3.EXE
2011/04/23(土) 08:31:31.29ID:i7wvdnoN 覚えた当時文字列処理系の関数が多かったからvbsにしたんだけど
世間じゃjsが流行ってんな〜
IEのjsエンジン高速化されまくってるみたいだけど
wshでもjsのが高速だったりするの?
世間じゃjsが流行ってんな〜
IEのjsエンジン高速化されまくってるみたいだけど
wshでもjsのが高速だったりするの?
149名無し~3.EXE
2011/04/23(土) 09:26:59.69ID:PDrnfeB9 >147
接続や切断ってことかい?
とりあえずRegisterDeviceNotification あたりから調べてみ。
ただ頭からケツまでAPIでゴリ押しする気なら
言語の選択を考え直したほうがいい。
C++とかで書く以上に面倒になると思うぜ。
接続や切断ってことかい?
とりあえずRegisterDeviceNotification あたりから調べてみ。
ただ頭からケツまでAPIでゴリ押しする気なら
言語の選択を考え直したほうがいい。
C++とかで書く以上に面倒になると思うぜ。
151名無し~3.EXE
2011/04/23(土) 10:58:21.98ID:PDrnfeB9 >148
オレは関数型言語がキライという理由かな
だからphpも好きじゃない
あくまで書き方に限った話だがw
オレは関数型言語がキライという理由かな
だからphpも好きじゃない
あくまで書き方に限った話だがw
152名無し~3.EXE
2011/04/23(土) 11:36:59.05ID:4NAn1xc8154名無し~3.EXE
2011/04/24(日) 07:05:08.61ID:dtEm5GAz web の cache の property を知りたくて調べて行くうちに
ADSI というのにたどりついたんですが、
この方向は、正しいのでしょうか?
何か、2000のころの技術だったりするみたいですが、
これで作ってXPやVista、Win7で動くものが出来上がるのでしょうか?
ADSI というのにたどりついたんですが、
この方向は、正しいのでしょうか?
何か、2000のころの技術だったりするみたいですが、
これで作ってXPやVista、Win7で動くものが出来上がるのでしょうか?
155154
2011/04/24(日) 17:22:51.00ID:dtEm5GAz156名無し~3.EXE
2011/05/06(金) 18:17:10.29ID:nbD2ZVvS 何か原始的なスクリプトですいませんが、これは Vista や Win7 で動くものなのでしょうか?
XP や 2000 上では試したつもりです。
Option Explicit
const Win2k="5.0",WinXP="5.1",WinVista="6.0",Win7="6.1"
dim ver: ver=get_os_version()
if ver=Win2k then
msgbox "Windows 2000"
elseif ver=WinXP then
msgbox "XP"
elseif ver=WinVista then
msgbox "Vista"
elseif ver=Win7 then
msgbox "Windows7"
end if
続く
XP や 2000 上では試したつもりです。
Option Explicit
const Win2k="5.0",WinXP="5.1",WinVista="6.0",Win7="6.1"
dim ver: ver=get_os_version()
if ver=Win2k then
msgbox "Windows 2000"
elseif ver=WinXP then
msgbox "XP"
elseif ver=WinVista then
msgbox "Vista"
elseif ver=Win7 then
msgbox "Windows7"
end if
続く
157名無し~3.EXE
2011/05/06(金) 18:17:39.53ID:nbD2ZVvS 続き
function get_os_version()
Dim wshell: Set wshell = CreateObject("WScript.Shell")
dim objExec: Set objExec = wshell.Exec("%comspec% /c ver")
dim str: str = objExec.StdOut.ReadAll
str=right(str,len(str)-6)
Dim regEx: Set regEx = New RegExp
regEx.IgnoreCase = True: regEx.Global = False: regEx.Pattern = ".*Version *"
str = regEx.Replace(str,""): str = left(str,3)
get_os_version = str
end function
function get_os_version()
Dim wshell: Set wshell = CreateObject("WScript.Shell")
dim objExec: Set objExec = wshell.Exec("%comspec% /c ver")
dim str: str = objExec.StdOut.ReadAll
str=right(str,len(str)-6)
Dim regEx: Set regEx = New RegExp
regEx.IgnoreCase = True: regEx.Global = False: regEx.Pattern = ".*Version *"
str = regEx.Replace(str,""): str = left(str,3)
get_os_version = str
end function
158名無し~3.EXE
2011/05/08(日) 17:07:59.03ID:Dob9Sr1E 64bitOSを想定しないのならそれでオケ。64bitかサーバーOSを想定するのならダメ。
WMIのWin32_OperatingSystemクラスを使うべきじゃないか?
WMIのWin32_OperatingSystemクラスを使うべきじゃないか?
160名無し~3.EXE
2011/05/08(日) 21:55:17.51ID:rPyeiUAT161名無し~3.EXE
2011/05/11(水) 18:58:17.23ID:WU/TO40v 画面の右下に出るリマインダーをWSHで実装できないですか?
流石にVBSからのAPIでは対応してないですかね
流石にVBSからのAPIでは対応してないですかね
162名無し~3.EXE
2011/05/12(木) 00:58:45.25ID:cqVKMmVu APIってのがWin32APIではなく
COMなども含めた総合的なAPIのことなら
VBSからAPI(COM)使って実現できるよ
COMなども含めた総合的なAPIのことなら
VBSからAPI(COM)使って実現できるよ
164名無し~3.EXE
2011/05/25(水) 19:43:11.61ID:45W+js0P ラジオボタンで選択できるインターフェースをできればvbsから関数的に呼び出して使用したい。なんかいい方法はないですか?
元々のvbsのソースが膨大なのでHTA化は避けたいです
元々のvbsのソースが膨大なのでHTA化は避けたいです
165名無し~3.EXE
2011/05/25(水) 20:04:38.42ID:Q0zeNMv6 ScriptFormとかのGUI作れるCOM使うとか
外部にラジオボタン選択インターフェイスだけのHTA作ってVBSから呼ぶとか
ScriptFormはだいぶ前に公式は死んでたけど、他の所から落とせたから
今でも探せばどっかにあるんじゃないかな?
外部にラジオボタン選択インターフェイスだけのHTA作ってVBSから呼ぶとか
ScriptFormはだいぶ前に公式は死んでたけど、他の所から落とせたから
今でも探せばどっかにあるんじゃないかな?
166名無し~3.EXE
2011/05/25(水) 22:24:06.22ID:nzVZlxBu hta で vbs だけは使うまい、ておもたわ。
167名無し~3.EXE
2011/05/26(木) 00:25:27.39ID:TXX3L4YD HTAを呼び出して選択した結果を受け取るのってどうやるの?
なんか参考になるサイトとかあったら教えていただけませんでしょうか
なんか参考になるサイトとかあったら教えていただけませんでしょうか
168名無し~3.EXE
2011/05/26(木) 01:39:18.55ID:T9mvRx0z そこまでするならpowershell使うわ
169名無し~3.EXE
2011/05/26(木) 19:24:49.18ID:5BJmGOz1 ドライブに挿入された音楽CDの
CDシリアル番号を取得することってできる?
cdaファイルをパースするのはナシの方向で。
というのもCDがマルチセッションだと
cdaファイルにパス名でアクセス出来ないので。
CDシリアル番号を取得することってできる?
cdaファイルをパースするのはナシの方向で。
というのもCDがマルチセッションだと
cdaファイルにパス名でアクセス出来ないので。
170169
2011/05/27(金) 21:25:55.55ID:jtI0zCu/ 難しく考えすぎてたorz
171名無し~3.EXE
2011/05/29(日) 16:53:43.65ID:xcYhyO0n >>167
お手軽なのは、連絡用ファイルを設定して、HTA側から結果をカキコ。
WSH側は.Sleep → Loop 辺りでテキト〜に待ち合わせ。
神ブログ:ttp://scripting.cocolog-nifty.com/blog/2007/07/hta_2d73.html
をパクって、CreateHTAObject()を作ってみたこともあったが、
アイ〜ン立ち上げて、またHTA≒アイ〜ン立ち上げるのは、やっぱ速度でほんのり難が^^
お手軽なのは、連絡用ファイルを設定して、HTA側から結果をカキコ。
WSH側は.Sleep → Loop 辺りでテキト〜に待ち合わせ。
神ブログ:ttp://scripting.cocolog-nifty.com/blog/2007/07/hta_2d73.html
をパクって、CreateHTAObject()を作ってみたこともあったが、
アイ〜ン立ち上げて、またHTA≒アイ〜ン立ち上げるのは、やっぱ速度でほんのり難が^^
172名無し~3.EXE
2011/05/29(日) 18:05:14.02ID:VMqRtOtk173名無し~3.EXE
2011/05/29(日) 18:25:31.32ID:xcYhyO0n >>172
WshShell.Execで窓を表示しない方法も、神ブログに書いてるけど、
お手軽方法で、別に不満なかったから、自分はあまり追求しなかったな。
HTAをオブジェとして使う事が重要なら、ぜひ追求してみるべきだろうね。
WshShell.Execで窓を表示しない方法も、神ブログに書いてるけど、
お手軽方法で、別に不満なかったから、自分はあまり追求しなかったな。
HTAをオブジェとして使う事が重要なら、ぜひ追求してみるべきだろうね。
176名無し~3.EXE
2011/05/29(日) 23:52:39.96ID:8twY3zm1 こういうのじゃダメ?俺の勘違いか?
http://yozda.exblog.jp/9679436/
http://yozda.exblog.jp/12246492/
JScriptでも同様のがあるけど。
http://yozda.exblog.jp/9679436/
http://yozda.exblog.jp/12246492/
JScriptでも同様のがあるけど。
177名無し~3.EXE
2011/05/30(月) 01:44:11.04ID:JGc46t5+ 勘違いというか、HTA化を避けたいと言ってる奴に
IE使えってのはあり得ない話だと思うのだが
IE使えってのはあり得ない話だと思うのだが
178名無し~3.EXE
2011/05/30(月) 02:19:12.01ID:dEax9gcE そうかvbs(wsh)からIEコンポも使っちゃいけないのか。
それはスマン。
俺はただvbsをhtaに全面書き換えるのがイヤなだけだと思ってた。
それはスマン。
俺はただvbsをhtaに全面書き換えるのがイヤなだけだと思ってた。
179名無し~3.EXE
2011/05/30(月) 08:18:11.77ID:JGc46t5+ vbsをhtaにするのに、全面書き換えなんて必要ないよ
前後をタグで囲んで拡張子変えるだけで、vbs部分の書き換えなんてしなくて良い
前後をタグで囲んで拡張子変えるだけで、vbs部分の書き換えなんてしなくて良い
180名無し~3.EXE
2011/05/30(月) 15:43:23.73ID:hwhJdEtq あほは放置で
181167
2011/05/30(月) 22:59:05.05ID:GG049trQ >>171-179
皆様ありがとうございます。もう見放されたかと思ってましたw
HTAから標準出力を使いたかったのですが自力ではできなかったので、vb.netで挑戦しようかと考えていました。
これからレスと参考リンクを読んでいろいろやってみます。
皆様ありがとうございます。もう見放されたかと思ってましたw
HTAから標準出力を使いたかったのですが自力ではできなかったので、vb.netで挑戦しようかと考えていました。
これからレスと参考リンクを読んでいろいろやってみます。
182名無し~3.EXE
2011/05/31(火) 16:40:25.93ID:K7148uoi ぐぐってたら、javascriptとQTを使えるスクリプトエンジンが出てたよ。Qtjsって奴。WinでもLinuxでもMacでも動くそうだ。
ttp://www.vector.co.jp/vpack/browse/person/an054784.html ttp://qt.loftz.net/
XPで試したら素直に動いたわ。日本語使うならUTF-8で保存。
Titaniumもあるし、Htaboxcoreもあるし、javascriptの世界は広がりますね。
// sample.qtjs
var _window=QWidget();
_window.setWindowTitle("test window");
_window.setGeometry(100,100,220,100);
var _edit=QTextEdit(_window);
_edit.setGeometry(100,30,90,50);
var _b1=QPushButton("button 1",_window);
var _b2=QPushButton("button 2",_window);
_b1.move(10,30);
_b2.move(10,60);
_b1.connect("clicked",_edit,function(){@setText("button 111")});
_b2.connect("clicked",_edit,function(){@setText("button 222")});
var _label=QLabel("button text",_window);
_label.move(10,10);
_window.show();
sys.exec();
ttp://www.vector.co.jp/vpack/browse/person/an054784.html ttp://qt.loftz.net/
XPで試したら素直に動いたわ。日本語使うならUTF-8で保存。
Titaniumもあるし、Htaboxcoreもあるし、javascriptの世界は広がりますね。
// sample.qtjs
var _window=QWidget();
_window.setWindowTitle("test window");
_window.setGeometry(100,100,220,100);
var _edit=QTextEdit(_window);
_edit.setGeometry(100,30,90,50);
var _b1=QPushButton("button 1",_window);
var _b2=QPushButton("button 2",_window);
_b1.move(10,30);
_b2.move(10,60);
_b1.connect("clicked",_edit,function(){@setText("button 111")});
_b2.connect("clicked",_edit,function(){@setText("button 222")});
var _label=QLabel("button text",_window);
_label.move(10,10);
_window.show();
sys.exec();
183名無し~3.EXE
2011/05/31(火) 18:58:03.11ID:CXpwkTbm184名無し~3.EXE
2011/05/31(火) 22:27:42.25ID:9cCA8ild >>182
処理が比較的早く、簡単にGUIツールが作成できるのはいいが、
結局、クライアント(実行するPC)にもQtjs.exeがないとダメって事じゃん
これは微妙かも。あくまで自分のPCでGUI使ってなんかツール作りたい時は便利かもだけど、
オレオレツールって自分が理解してればいいからわざわざGUIにしなくてもって思うわ
あと、ショートカットリンクから実行しても動かない。
これじゃ使えないわ。cmdショートカットなら動くんだろうけど
[Window Title]
X:\Qtjs\qtjs_win_20110529_rev37_qt4_7_2_gcc\qtjs.exe
[Content]
X:\Qtjs\qtjs_win_20110529_rev37_qt4_7_2_gcc\qtjs.exe は有効な Win32 アプリケーションではありません。
処理が比較的早く、簡単にGUIツールが作成できるのはいいが、
結局、クライアント(実行するPC)にもQtjs.exeがないとダメって事じゃん
これは微妙かも。あくまで自分のPCでGUI使ってなんかツール作りたい時は便利かもだけど、
オレオレツールって自分が理解してればいいからわざわざGUIにしなくてもって思うわ
あと、ショートカットリンクから実行しても動かない。
これじゃ使えないわ。cmdショートカットなら動くんだろうけど
[Window Title]
X:\Qtjs\qtjs_win_20110529_rev37_qt4_7_2_gcc\qtjs.exe
[Content]
X:\Qtjs\qtjs_win_20110529_rev37_qt4_7_2_gcc\qtjs.exe は有効な Win32 アプリケーションではありません。
185184
2011/05/31(火) 23:29:37.09ID:9cCA8ild 悪い、変なエラーが出てて気になって再起動したら
Blue Screen Of DEATH食らった
Windows7はBlue Screen Of DEATHにならないって聞いてたけど
あれは嘘なんだなw
(まぁ青画面になっても死なないようにはなってるみたいだけど)
復旧せずに通常起動後に実行したら普通にショートカットからでも起動した
QtjsはC++利用だからマウス操作の自動化処理もJavaScriptで書けるって事なのかな?
何か従来のWSHより全然汎用的でビビったわ
慣れれば間違いなくWSHよりQtjsのがいいね
Blue Screen Of DEATH食らった
Windows7はBlue Screen Of DEATHにならないって聞いてたけど
あれは嘘なんだなw
(まぁ青画面になっても死なないようにはなってるみたいだけど)
復旧せずに通常起動後に実行したら普通にショートカットからでも起動した
QtjsはC++利用だからマウス操作の自動化処理もJavaScriptで書けるって事なのかな?
何か従来のWSHより全然汎用的でビビったわ
慣れれば間違いなくWSHよりQtjsのがいいね
186名無し~3.EXE
2011/06/01(水) 01:29:18.93ID:5Nq11jQ6 // <job id='qtjs'><resource id='qtjs'><![CDATA[;;;
// sample.wsf としてUTF-8で保存。これを起動すると、最初の起動はWSHで実行して、下のパスのQtjs.exeで再実行する形になる。関連付けしてなくても動く。
var label = QLabel("Hello, world!"+"\n\n"+"ポポポポ〜ん!");
label.show();
sys.exec();
//
// ]]></resource><script>
/* ここからはjscript。関連付け無しでも実行できるようにする処理。var pqtjsexeでQtjs.exeのパスを決め、そのexeでスクリプトを実行する。*/;
if(typeof(WScript)=='object'){
//var pqtjsexe="V:\\Script_Qtjs_Win\\Qtjs.exe";/ * パスを決めうちの場合 * /;
var oshl=new ActiveXObject("WScript.Shell");
var ofso=new ActiveXObject("Scripting.FileSystemObject");
var pdirscript = ofso.GetFile(WScript.ScriptFullname).ParentFolder;
var pqtjsexe=pdirscript + "\\Qtjs.exe";/ * 同じフォルダにqtjs.exeの環境がある場合 * /;
oshl.run("\""+pqtjsexe+"\""+ " " + "\""+ WScript.ScriptFullName+"\"",1,false);
};
//</script></job>
// sample.wsf としてUTF-8で保存。これを起動すると、最初の起動はWSHで実行して、下のパスのQtjs.exeで再実行する形になる。関連付けしてなくても動く。
var label = QLabel("Hello, world!"+"\n\n"+"ポポポポ〜ん!");
label.show();
sys.exec();
//
// ]]></resource><script>
/* ここからはjscript。関連付け無しでも実行できるようにする処理。var pqtjsexeでQtjs.exeのパスを決め、そのexeでスクリプトを実行する。*/;
if(typeof(WScript)=='object'){
//var pqtjsexe="V:\\Script_Qtjs_Win\\Qtjs.exe";/ * パスを決めうちの場合 * /;
var oshl=new ActiveXObject("WScript.Shell");
var ofso=new ActiveXObject("Scripting.FileSystemObject");
var pdirscript = ofso.GetFile(WScript.ScriptFullname).ParentFolder;
var pqtjsexe=pdirscript + "\\Qtjs.exe";/ * 同じフォルダにqtjs.exeの環境がある場合 * /;
oshl.run("\""+pqtjsexe+"\""+ " " + "\""+ WScript.ScriptFullName+"\"",1,false);
};
//</script></job>
187名無し~3.EXE
2011/06/01(水) 01:41:57.48ID:5Nq11jQ6 上の奴は、拡張子Qtjsを関連付けしてる場合は、ファイル名の拡張子を.qtjsで保存すればそのまま動くよ。
スクリプトの最後のほうを変えればWSHから引数も引き継げると思う。
for(var arg=WScript.Arguments,iii=0,sadd='';iii<arg.length;iii++){sadd+=" " + "\""+ arg(iii)+"\"";};
oshl.run("\""+pqtjsexe+"\""+ " " + "\""+ WScript.ScriptFullName+"\""+" "+sadd,1,false);
スクリプトの最後のほうを変えればWSHから引数も引き継げると思う。
for(var arg=WScript.Arguments,iii=0,sadd='';iii<arg.length;iii++){sadd+=" " + "\""+ arg(iii)+"\"";};
oshl.run("\""+pqtjsexe+"\""+ " " + "\""+ WScript.ScriptFullName+"\""+" "+sadd,1,false);
189名無し~3.EXE
2011/06/01(水) 18:34:22.79ID:unjL6vtH >>187
拡張子設定すりゃいいだけか!thx
最近出だばっかみたいだけど、これからに期待だわ
いい加減スレチだけど、過疎気味だからいいかw
オレオレツールがGUIでサクッと作れて簡単なコーディングで色々出来るのがいい
拡張子設定すりゃいいだけか!thx
最近出だばっかみたいだけど、これからに期待だわ
いい加減スレチだけど、過疎気味だからいいかw
オレオレツールがGUIでサクッと作れて簡単なコーディングで色々出来るのがいい
190名無し~3.EXE
2011/06/02(木) 19:48:10.79ID:CWksyqWH ActiveXからCODのMessage使ってメール送信してるんですが
受信したメールを転送できなくさせるプロパティや別の方法ありませんか?
ご教示を…
受信したメールを転送できなくさせるプロパティや別の方法ありませんか?
ご教示を…
191名無し~3.EXE
2011/06/02(木) 22:31:31.17ID:CWjjGc48 もうちっと背景を晒せ
なぜメールを送りたいのか 相手は人間なのか
相手はどんなツールで転送するのか 相手が転送したら何がまずいのか
なぜメールを送りたいのか 相手は人間なのか
相手はどんなツールで転送するのか 相手が転送したら何がまずいのか
192190
2011/06/02(木) 22:58:43.37ID:ls1CRCom >>191
>なぜメールを送りたいのか
システム上で使用する為
>相手は人間なのか
受信者は人間
>相手はどんなツールで転送するのか
超マイナーなメーラ
>相手が転送したら何がまずいのか
セキュリティ上の問題
本文コピペすりゃ意味ないんだけどねw
簡単に概略を説明を付け足す
VB系言語で使用しており、現に正常に機能している。
VB内でActiveXのCODオブジェクトを使用し、Message関数でメールをSMPT送信している。
この部分に機能を追加すると言う意味です。
欲しい機能は、受信者がそのメールを転送できなくする事。
メール送信時にMessage関数のプロパティとかで付加できないかなぁと淡い期待をいだいている。
そもそもメールが転送できなくなる機能がメールプロトコルに存在した事すら今日知った。
メールのオプションで「重要」とか「受信者がメール開いたら送信者へ受信確認を行う」とかの設定あるでしょ?
あんな感じで「転送不可」にする設定があるらしい。
それをWSHやらのWindows Scriptでちょちょいとハックしてやりたい。
>なぜメールを送りたいのか
システム上で使用する為
>相手は人間なのか
受信者は人間
>相手はどんなツールで転送するのか
超マイナーなメーラ
>相手が転送したら何がまずいのか
セキュリティ上の問題
本文コピペすりゃ意味ないんだけどねw
簡単に概略を説明を付け足す
VB系言語で使用しており、現に正常に機能している。
VB内でActiveXのCODオブジェクトを使用し、Message関数でメールをSMPT送信している。
この部分に機能を追加すると言う意味です。
欲しい機能は、受信者がそのメールを転送できなくする事。
メール送信時にMessage関数のプロパティとかで付加できないかなぁと淡い期待をいだいている。
そもそもメールが転送できなくなる機能がメールプロトコルに存在した事すら今日知った。
メールのオプションで「重要」とか「受信者がメール開いたら送信者へ受信確認を行う」とかの設定あるでしょ?
あんな感じで「転送不可」にする設定があるらしい。
それをWSHやらのWindows Scriptでちょちょいとハックしてやりたい。
193190
2011/06/03(金) 21:55:17.68ID:0Ff8pwrr 解決した
Message.Sensitivityでできる
ただSMTP送信ではムリだったので諦めてVBのSendで結局やる事になりそうだわ
Message.Sensitivityでできる
ただSMTP送信ではムリだったので諦めてVBのSendで結局やる事になりそうだわ
194名無し~3.EXE
2011/06/03(金) 22:44:08.40ID:71Rc4YUZ Sensitivityって、ほとんどOutllookでしかサポートされてないのとちゃう?
195190
2011/06/04(土) 11:53:30.64ID:tAuxhA3v196名無し~3.EXE
2011/06/08(水) 20:27:12.99ID:u8KGLz+m basp21のdllでメールの送受信するスクリプト書いてます。
sslの処理は、melonにお願いしてpop3で受信してます。
メールの受信でほかにもっと便利なActiveXのDLLはあるんでしょうか?
sslの処理は、melonにお願いしてpop3で受信してます。
メールの受信でほかにもっと便利なActiveXのDLLはあるんでしょうか?
197名無し~3.EXE
2011/06/11(土) 18:57:59.05ID:yFQjK4iS いくらでもあるけど、何を以て便利と感じるかは人それぞれ
なので、いろいろ使って自分が一番便利だと思うのを使えば良い
なので、いろいろ使って自分が一番便利だと思うのを使えば良い
198名無し~3.EXE
2011/06/11(土) 19:15:07.83ID:JhcRxHh+ IE9を入れるとmshta.exeがバージョンアップし
sfcminiのCallBackが利かなくなるんだが
誰が解決策を見つけた人がいたら教えて。
何らかのセキュリティ制限に掛かっていると思うんだが。
sfcminiのCallBackが利かなくなるんだが
誰が解決策を見つけた人がいたら教えて。
何らかのセキュリティ制限に掛かっていると思うんだが。
199名無し~3.EXE
2011/06/11(土) 22:03:58.47ID:gmA/rwoU wsc
200名無し~3.EXE
2011/06/12(日) 08:19:26.03ID:eLluRoVu >199
UIはどうするの?
UIはどうするの?
202名無し~3.EXE
2011/06/13(月) 16:37:29.33ID:cAcxG153 まじかす
204名無し~3.EXE
2011/06/16(木) 23:37:06.02ID:vZlUxwoj 関数が使えるから関数型言語ってw
そんなアホなこと言う奴まだいたんだw
そんなアホなこと言う奴まだいたんだw
206名無し~3.EXE
2011/07/05(火) 16:49:08.59ID:Vww4Gcrx JScriptを使い始めたんですが
関数の引数に使用できるオブジェクトの一覧みたいなのないですか?
ある関数Aでオブジェクト作って、それを引数にして別の関数Bに投げて、
戻り値をAでまた処理する〜みたいなことをやってるんですが
オブジェクトによって引数にできるものとできないものがあるみたいで…
試行錯誤してるうちに、ArrayオブジェクトとStringオブジェクトは使えるけど
FileSystemObject オブジェクトからGetFolderメソッドで取得したフォルダオブジェクトは使えない〜みたいな経験則は分かってきたんですが
時間がかかりすぎるんで一括で知りたいんです
でもういうドキュメントが見つからなくて……
ご存知でしたら教えくてください
関数の引数に使用できるオブジェクトの一覧みたいなのないですか?
ある関数Aでオブジェクト作って、それを引数にして別の関数Bに投げて、
戻り値をAでまた処理する〜みたいなことをやってるんですが
オブジェクトによって引数にできるものとできないものがあるみたいで…
試行錯誤してるうちに、ArrayオブジェクトとStringオブジェクトは使えるけど
FileSystemObject オブジェクトからGetFolderメソッドで取得したフォルダオブジェクトは使えない〜みたいな経験則は分かってきたんですが
時間がかかりすぎるんで一括で知りたいんです
でもういうドキュメントが見つからなくて……
ご存知でしたら教えくてください
207名無し~3.EXE
2011/07/05(火) 20:26:18.16ID:JPwGM5pz どんなオブジェクトでも関数の引数に使用できるが?
使えない〜って〜のがわからん
使えない〜って〜のがわからん
208名無し~3.EXE
2011/07/05(火) 20:50:55.33ID:y3KcID81 Default Property のことだな。
そんなモン使うな。
そんなモン使うな。
209名無し~3.EXE
2011/07/05(火) 21:01:29.56ID:JPwGM5pz Default Propertyがあるとオブジェクトそのものが渡せんてこと?
ならDefault Propertyがあるオブジェクトの一覧がほしいってこと?
ならDefault Propertyがあるオブジェクトの一覧がほしいってこと?
210206
2011/07/06(水) 12:23:31.80ID:skFqsTsw211名無し~3.EXE
2011/08/03(水) 21:36:10.58ID:ps1zRwLo 色々弄繰り回してたら、wshで出来ないことを探す方が難しいかもしれないと思い始めている自分がいる...
212名無し~3.EXE
2011/08/03(水) 22:08:50.93ID:2N1IXc+j wshでできることよりできないことのほうが多いが?
213名無し~3.EXE
2011/08/03(水) 22:35:57.40ID:xtJBY1d+ バイナリ扱えないし
214名無し~3.EXE
2011/08/03(水) 23:30:51.81ID:ps1zRwLo215名無し~3.EXE
2011/08/04(木) 02:39:21.16ID:5aLayNA2 バイナリくらい扱えないでwsh使ってるような顔するんじゃねーよ
216名無し~3.EXE
2011/08/04(木) 06:22:11.50ID:boF8mYqi ADO.Streamでバイナリ扱えるが
217名無し~3.EXE
2011/08/04(木) 06:43:49.56ID:7pIgG5eb どちらも正しい
WSHでは何も出来ない、バイナリも扱えない
出来るのはちょっとした計算と文字列操作、そしてそれをメッセージボックスやコンソールに表示する程度
でもWSHにはActiveXという強力なAPIがある
これを使えばほぼ何でも出来る
COMの自作が出来るようになれば、「出来ないことの方が多い」なんてことは無くなる
但し、COMの自作が出来る奴が、WSHに拘る必要は無いと思うけどね
WSHでは何も出来ない、バイナリも扱えない
出来るのはちょっとした計算と文字列操作、そしてそれをメッセージボックスやコンソールに表示する程度
でもWSHにはActiveXという強力なAPIがある
これを使えばほぼ何でも出来る
COMの自作が出来るようになれば、「出来ないことの方が多い」なんてことは無くなる
但し、COMの自作が出来る奴が、WSHに拘る必要は無いと思うけどね
218名無し~3.EXE
2011/08/04(木) 08:08:20.71ID:yS1szih7219名無し~3.EXE
2011/08/04(木) 08:31:53.61ID:jHSdlNb+ ファイルを開く/保存ダイアログをXP限定じゃなく標準で使えるようにしてほしい
220名無し~3.EXE
2011/08/04(木) 09:37:20.28ID:umshcNeO222名無し~3.EXE
2011/08/04(木) 14:41:11.77ID:QAGbLHD2 http://gallery.technet.microsoft.com/scriptcenter/5481e36a-8073-40ae-92cd-fbef1e6df99a/
>UserAccounts.CommonDialog オブジェクトは、セキュリティ上の問題から Windows Vista で廃止されました。
>UserAccounts.CommonDialog オブジェクトは、セキュリティ上の問題から Windows Vista で廃止されました。
223名無し~3.EXE
2011/08/04(木) 17:48:38.95ID:5aLayNA2224名無し~3.EXE
2011/08/04(木) 18:32:13.05ID:5aLayNA2 officeが入ってればcommon dialog ocxが使えるんじゃなかった?
225名無し~3.EXE
2011/08/09(火) 10:28:34.52ID:TjrYeXBk Windows2000+WSH5.6で使える「ファイルを開く」ダイアログ
ttp://scripting.cocolog-nifty.com/blog/2007/02/windows2000wsh5_ee23.html
ttp://scripting.cocolog-nifty.com/blog/2007/02/windows2000wsh5_ee23.html
226名無し~3.EXE
2011/08/26(金) 09:24:51.23ID:XPcNXwzs t
227名無し~3.EXE
2011/08/26(金) 15:20:07.29ID:LvLtNN8d Shiftキー押してるかどうかで挙動を変えたいんだけどどうすればいいの?
229名無し~3.EXE
2011/08/26(金) 20:12:32.27ID:C1/Pylbq htaとかのキーイベント内での判定なら
event.shiftKey
で取れると思うけど、
コンソールのプログラムでのやり方は分からない
event.shiftKey
で取れると思うけど、
コンソールのプログラムでのやり方は分からない
230名無し~3.EXE
2011/08/26(金) 22:49:44.40ID:hYZBT1ST Windows7のタスクバーからワンクリックでごみ箱を削除するために以下
Empty.CMD 1.05 (ごみ箱を空にするバッチファイルとVBScript)
http://www.vector.co.jp/soft/win95/util/se313491.html
※bat版とvbs版それぞれに確認ダイアログの有無違いで2種の計4種、機能は同じ
を試してみたのですが、XP機では問題なく動作するものがWin7では動作しません
削除の確認は必要でbat窓は不要なためvbs版を使いたいのですが
Win7で正常に動作させるためには何か修正が必要なのでしょうか?
「wsh ごみ箱 空」等のキーワードで複数ggってみたのですが原因らしいものが掴めません
ggった中でYahoo知恵遅れでは上記ファイルがWin7で正常に動作したという書き込みも見たのですが
手元のXP機とWin7機の確認ではWin7機だけどうしても動作してくれません
XPと7でのWSH互換性などといった問題は特に無いようなのですが
手ほどきお願いします
Empty.CMD 1.05 (ごみ箱を空にするバッチファイルとVBScript)
http://www.vector.co.jp/soft/win95/util/se313491.html
※bat版とvbs版それぞれに確認ダイアログの有無違いで2種の計4種、機能は同じ
を試してみたのですが、XP機では問題なく動作するものがWin7では動作しません
削除の確認は必要でbat窓は不要なためvbs版を使いたいのですが
Win7で正常に動作させるためには何か修正が必要なのでしょうか?
「wsh ごみ箱 空」等のキーワードで複数ggってみたのですが原因らしいものが掴めません
ggった中でYahoo知恵遅れでは上記ファイルがWin7で正常に動作したという書き込みも見たのですが
手元のXP機とWin7機の確認ではWin7機だけどうしても動作してくれません
XPと7でのWSH互換性などといった問題は特に無いようなのですが
手ほどきお願いします
231名無し~3.EXE
2011/08/26(金) 22:56:56.11ID:hYZBT1ST 環境で書き忘れましたがXPも7も32bitです
そして書ききれなかった上記ファイルの「削除前に確認ダイアログを表示するvbs」のソースです
' EmptyF.VBS V1.05 (C) yoshioka.teruo@nifty.com 2007-12-14
' EmptyF.VBS empties RecylcleBin.
' Usage: EmptyF.VBS
Option Explicit
Const ssfBITBUCKET=10
Dim fso
Dim Shell
Dim Folder
Dim FolderItem
Dim sFolder
そして書ききれなかった上記ファイルの「削除前に確認ダイアログを表示するvbs」のソースです
' EmptyF.VBS V1.05 (C) yoshioka.teruo@nifty.com 2007-12-14
' EmptyF.VBS empties RecylcleBin.
' Usage: EmptyF.VBS
Option Explicit
Const ssfBITBUCKET=10
Dim fso
Dim Shell
Dim Folder
Dim FolderItem
Dim sFolder
232名無し~3.EXE
2011/08/26(金) 22:57:52.01ID:hYZBT1ST Set fso=CreateObject("Scripting.FileSystemObject")
Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace(ssfBITBUCKET)
For Each FolderItem In Folder.Items()
If fso.FileExists(FolderItem.Path) Then
fso.DeleteFile FolderItem.Path,True
ElseIf fso.FolderExists(FolderItem.Path) Then
fso.DeleteFolder FolderItem.Path,True
End If
Next
If Folder.Items().Count=0 Then
Set sFolder=Shell.NameSpace(WScript.ScriptFullName & "\..")
Folder.MoveHere sFolder.Items().Item(WScript.ScriptName)
Do While Not sFolder.Items().Item(WScript.ScriptName) Is Nothing
WScript.Sleep 100
Loop
sFolder.MoveHere Folder.Items().Item(0)
End If
-----------
ここまで
Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace(ssfBITBUCKET)
For Each FolderItem In Folder.Items()
If fso.FileExists(FolderItem.Path) Then
fso.DeleteFile FolderItem.Path,True
ElseIf fso.FolderExists(FolderItem.Path) Then
fso.DeleteFolder FolderItem.Path,True
End If
Next
If Folder.Items().Count=0 Then
Set sFolder=Shell.NameSpace(WScript.ScriptFullName & "\..")
Folder.MoveHere sFolder.Items().Item(WScript.ScriptName)
Do While Not sFolder.Items().Item(WScript.ScriptName) Is Nothing
WScript.Sleep 100
Loop
sFolder.MoveHere Folder.Items().Item(0)
End If
-----------
ここまで
233名無し~3.EXE
2011/08/27(土) 00:21:15.25ID:yzI0rKlM Set sFolder=Shell.NameSpace(WScript.ScriptFullName & "\..")
が駄目なんだろ
Set sFolder=Shell.NameSpace(fso.getparentfoldername(WScript.ScriptFullName))
にしろ
が駄目なんだろ
Set sFolder=Shell.NameSpace(fso.getparentfoldername(WScript.ScriptFullName))
にしろ
235名無し~3.EXE
2011/08/27(土) 00:31:50.43ID:Gxo9AMAs >>233
せっかく教えてもらったのに確認ダイアログが出るコードはこちらでした orz
-----------------------------------------------------------
Option Explicit
Dim Folder
Set Folder=CreateObject("Shell.Application").NameSpace(10)
If Folder.Items().Count=0 Then
WScript.Echo "ごみ箱は空です。"
Else
Folder.Self.InvokeVerb "ごみ箱を空にする(&B)"
End If
------------------------------------------------------------
申し訳ないですが↑のどこが悪いのか教えてください
せっかく教えてもらったのに確認ダイアログが出るコードはこちらでした orz
-----------------------------------------------------------
Option Explicit
Dim Folder
Set Folder=CreateObject("Shell.Application").NameSpace(10)
If Folder.Items().Count=0 Then
WScript.Echo "ごみ箱は空です。"
Else
Folder.Self.InvokeVerb "ごみ箱を空にする(&B)"
End If
------------------------------------------------------------
申し訳ないですが↑のどこが悪いのか教えてください
236名無し~3.EXE
2011/08/27(土) 01:48:01.94ID:2AZeqjI/ >>235
Windows 7 だと、InvokeVerb がうまく動かなくて、DoIt() を使うといいらしい
という情報があって、ちょっと試してみたんだけど、
-----------------------------------------------------------
Dim Folder
Set Folder=CreateObject("Shell.Application").NameSpace(10)
If Folder.Items().Count=0 Then
WScript.Echo "ごみ箱は空です。"
Else
Folder.Self.Verbs().Item(2).DoIt() '2は3番目のメニュー項目(ゴミ箱を空にする)を表す
End If
------------------------------------------------------------
VBScript的には正しいみたいで、Win7でも、インタプリタ上からは動くんだけど、
.vbsファイルにして、cscript/wscript経由で起動すると DoIt() が反応しない
セキュリティ設定とかの問題かもしれんが、これ以上調べられなかった
Windows 7 だと、InvokeVerb がうまく動かなくて、DoIt() を使うといいらしい
という情報があって、ちょっと試してみたんだけど、
-----------------------------------------------------------
Dim Folder
Set Folder=CreateObject("Shell.Application").NameSpace(10)
If Folder.Items().Count=0 Then
WScript.Echo "ごみ箱は空です。"
Else
Folder.Self.Verbs().Item(2).DoIt() '2は3番目のメニュー項目(ゴミ箱を空にする)を表す
End If
------------------------------------------------------------
VBScript的には正しいみたいで、Win7でも、インタプリタ上からは動くんだけど、
.vbsファイルにして、cscript/wscript経由で起動すると DoIt() が反応しない
セキュリティ設定とかの問題かもしれんが、これ以上調べられなかった
237名無し~3.EXE
2011/08/27(土) 02:26:41.74ID:Gxo9AMAs >>236
ありがとうございます
自身でもわからないながら色々ggってみてはいますが
Folder.Self.InvokeVerb "ごみ箱を空にする(&B)" をとりあえずWScript.Echo "入ってますが何か?"に置き換えて
ここまではOKで、削除でコケてるということまでは理解できました
言われるようにVista以降のUAC絡みの問題なのかもしれませんが
自身でももう少し調べてみます
もし他にわかる方いらっしゃいましたら宜しくお願いします
ありがとうございます
自身でもわからないながら色々ggってみてはいますが
Folder.Self.InvokeVerb "ごみ箱を空にする(&B)" をとりあえずWScript.Echo "入ってますが何か?"に置き換えて
ここまではOKで、削除でコケてるということまでは理解できました
言われるようにVista以降のUAC絡みの問題なのかもしれませんが
自身でももう少し調べてみます
もし他にわかる方いらっしゃいましたら宜しくお願いします
238名無し~3.EXE
2011/08/27(土) 04:09:37.51ID:yzI0rKlM doitに変えて
最後に
msgbox "waiting"
と入れれ
最後に
msgbox "waiting"
と入れれ
239名無し~3.EXE
2011/08/27(土) 04:16:54.04ID:yzI0rKlM invokeverb "empty"
に変えてもいいが、待つのは必要だな
に変えてもいいが、待つのは必要だな
240名無し~3.EXE
2011/08/27(土) 12:35:55.97ID:Gxo9AMAs241236
2011/08/27(土) 13:47:03.43ID:2AZeqjI/ >>238
非同期の問題だったとは気がつかなかった
いくつかパターンを試してみたけど、以下だと同期で処理されるみたい(Win7 x64 SP1で確認)
同期と非同期の基準が分からん
---------------------------
Dim items
Set items = CreateObject("Shell.Application").NameSpace(10).Items()
If items.Count > 0 Then
For Each verb in items.Verbs
If verb.Name = "削除(&D)" Then
verb.Doit()
End If
Next
End If
---------------------------
非同期の問題だったとは気がつかなかった
いくつかパターンを試してみたけど、以下だと同期で処理されるみたい(Win7 x64 SP1で確認)
同期と非同期の基準が分からん
---------------------------
Dim items
Set items = CreateObject("Shell.Application").NameSpace(10).Items()
If items.Count > 0 Then
For Each verb in items.Verbs
If verb.Name = "削除(&D)" Then
verb.Doit()
End If
Next
End If
---------------------------
242名無し~3.EXE
2011/08/27(土) 14:19:33.04ID:Gxo9AMAs243名無し~3.EXE
2011/08/27(土) 20:28:52.69ID:ptTGLG6K "削除(&D)" て"ゴミ箱を空にする" と違うけどええの?
244名無し~3.EXE
2011/08/27(土) 20:59:32.17ID:Bo3iCK5G245名無し~3.EXE
2011/08/27(土) 21:04:34.76ID:ptTGLG6K そいいう手があったんね
246名無し~3.EXE
2011/08/27(土) 21:05:58.03ID:rMZXHF9P248名無し~3.EXE
2011/08/27(土) 21:10:18.99ID:ptTGLG6K なら
Dim items
Set items = CreateObject("Shell.Application").NameSpace(10).Items()
If items.Count > 0 Then
items.invokeverbex "delete"
End If
でもいいな
Dim items
Set items = CreateObject("Shell.Application").NameSpace(10).Items()
If items.Count > 0 Then
items.invokeverbex "delete"
End If
でもいいな
249名無し~3.EXE
2011/08/27(土) 22:49:41.89ID:41W0E71M250名無し~3.EXE
2011/08/27(土) 23:49:46.71ID:ptTGLG6K たぶん、dllの中を探せばあると思う
251名無し~3.EXE
2011/08/28(日) 00:03:46.43ID:rMZXHF9P252名無し~3.EXE
2011/08/28(日) 01:37:04.39ID:F83k7zR/253名無し~3.EXE
2011/08/28(日) 01:54:42.96ID:eQoxoyne >>252
丁寧な解説ありがとう
つまりコンテキストメニュー内をループで"削除(D)"のインデックスを探すわけですね
変数Itemsはごみ箱内のオブジェクト数をカウントするためのものと勘違いしてました
とても勉強になりました
丁寧な解説ありがとう
つまりコンテキストメニュー内をループで"削除(D)"のインデックスを探すわけですね
変数Itemsはごみ箱内のオブジェクト数をカウントするためのものと勘違いしてました
とても勉強になりました
254名無し~3.EXE
2011/09/25(日) 19:39:06.42ID:MDcIqEtA BSAP21使用のクリックすればメールを飛ばす.jsスクリプトファイルがあるのですが、
Windows7の64bitで動作させるとbasp21のオブジェクトが作成できないと出ます
クリックして動作するようになるにはどうればいいでしょうか
おたすけお願いします
環境変数に以下の二行を追加しましたが、クリックしても同エラーが出ました
cscript c:\windows\SysWOW64\cscript.exe
wscript c:\windows\SysWOW64\wscript.exe
Windows7の64bitで動作させるとbasp21のオブジェクトが作成できないと出ます
クリックして動作するようになるにはどうればいいでしょうか
おたすけお願いします
環境変数に以下の二行を追加しましたが、クリックしても同エラーが出ました
cscript c:\windows\SysWOW64\cscript.exe
wscript c:\windows\SysWOW64\wscript.exe
255名無し~3.EXE
2011/09/25(日) 20:13:28.39ID:wOWFeO1g >環境変数に以下の二行を追加しましたが、
この場合、環境変数が何の関係がある?
関連付けを変えろボケ
この場合、環境変数が何の関係がある?
関連付けを変えろボケ
256名無し~3.EXE
2011/09/25(日) 21:11:57.26ID:MDcIqEtA ありがとうございます
関連付けをどうすればいいか詳しく教えてください
BASP21を利用していないwshスクリプト(.jsファイル)はダブルクリックしただけで動きます
もちとんBASP21はインストール済みです
環境変数を変えたのは以下サイトを見て
32bit版のCscript.exe / WScript.exeを利用していないからだと思ったからです
http://blog.goo.ne.jp/cestaff/e/9a080184a3e6008e54e49e958e87503d
関連付けをどうすればいいか詳しく教えてください
BASP21を利用していないwshスクリプト(.jsファイル)はダブルクリックしただけで動きます
もちとんBASP21はインストール済みです
環境変数を変えたのは以下サイトを見て
32bit版のCscript.exe / WScript.exeを利用していないからだと思ったからです
http://blog.goo.ne.jp/cestaff/e/9a080184a3e6008e54e49e958e87503d
257名無し~3.EXE
2011/09/25(日) 22:11:30.83ID:mHEOumJu >256
メールを送るだけならCDO.Messageでいいはずだぜ
他にもたとえば圧縮するならコマンドラインの7zipっていう手もあるはず
その用途だけのために関連づけを変えるのは
ちょっと他のスクリプトにも影響が出そうで怖いな
メールを送るだけならCDO.Messageでいいはずだぜ
他にもたとえば圧縮するならコマンドラインの7zipっていう手もあるはず
その用途だけのために関連づけを変えるのは
ちょっと他のスクリプトにも影響が出そうで怖いな
258名無し~3.EXE
2011/09/25(日) 22:59:17.89ID:wOWFeO1g HKEY_CLASSESROOT\jsfile\shell\open\command
それだけならショートカット作れば?
それだけならショートカット作れば?
259名無し~3.EXE
2011/09/26(月) 00:25:36.97ID:CKbYoUCB WSHスクリプトを64/32bitが違っていたら起動し直す。
http://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
http://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
260254
2011/09/26(月) 22:39:54.33ID:ne+0rpvW いろいろアドバイスありがとうございます
デスクトップに置いていた.jsスクリプトファイルのショートカットをクリックしたときに
上記オブジェクトが作成できないのエラーが出ていたのですが、
.jsファイル本体をクリックした場合はエラーが出ませんでした
理由は分からないですが解決はできました。ありがとうございました。
デスクトップに置いていた.jsスクリプトファイルのショートカットをクリックしたときに
上記オブジェクトが作成できないのエラーが出ていたのですが、
.jsファイル本体をクリックした場合はエラーが出ませんでした
理由は分からないですが解決はできました。ありがとうございました。
261名無し~3.EXE
2011/09/28(水) 20:08:19.82ID:JsWr2nBy 結局64/32bitは無関係?
262名無し~3.EXE
2011/09/29(木) 03:51:42.39ID:+/G6sFao dosのバッチより利点は?
263名無し~3.EXE
2011/09/29(木) 04:21:47.02ID:SjfKo8B0 dosのバッチでないこと
265名無し~3.EXE
2011/09/29(木) 20:15:14.33ID:Ft7GX4v2 バッチよりははるかにまともな構文とライブラリ
特に文字列処理、日付処理が充実している
COMが使える
ただWSHはシェルスクリプト特有の省文字表記が少ないからちょっと面倒だ
その意味でバッチの直系はPowerShellだな
特に文字列処理、日付処理が充実している
COMが使える
ただWSHはシェルスクリプト特有の省文字表記が少ないからちょっと面倒だ
その意味でバッチの直系はPowerShellだな
266名無し~3.EXE
2011/10/05(水) 00:46:47.20ID:dNokulIT msgboxをだしてok押されるまで
beep音でも間欠音鳴らすには
どう書けばいいのでしょうか?
beep音でも間欠音鳴らすには
どう書けばいいのでしょうか?
267名無し~3.EXE
2011/10/05(水) 01:12:36.60ID:VhrEzm6o WSHは便利だけど時間のかかる作業やらせた時にどの辺まで
進んでるかっていうのが見られないのがな…
その点バッチは全部出るからバグ取りもやりやすい。
進んでるかっていうのが見られないのがな…
その点バッチは全部出るからバグ取りもやりやすい。
268名無し~3.EXE
2011/10/05(水) 02:10:38.59ID:pRvu6KFp269名無し~3.EXE
2011/10/05(水) 12:35:17.08ID:VhrEzm6o270名無し~3.EXE
2011/10/05(水) 12:42:32.02ID:gkeR/6Og 最近メッセージ表示は
nircmd trayballoonか
%log%ファイルに書きこんで別窓にtail -f %log%
してそっちに表示させるようにしてるな。
ちょっとした進捗はバッチだとtitleで表示させると見やすくかつ邪魔にならない。
nircmd trayballoonか
%log%ファイルに書きこんで別窓にtail -f %log%
してそっちに表示させるようにしてるな。
ちょっとした進捗はバッチだとtitleで表示させると見やすくかつ邪魔にならない。
271名無し~3.EXE
2011/10/05(水) 15:20:29.09ID:LjSl6eYH >>266
かなり強引でお粗末だけど
Set objShell=CreateObject("Wscript.Shell")
Do While True
objShell.Run "cmd /c @echo " & chr(7), 0, true
If objShell.Popup("やらないか?",3,"確認") = 1 Then Exit Do ' 引数2で間欠時間調整/秒
loop
かなり強引でお粗末だけど
Set objShell=CreateObject("Wscript.Shell")
Do While True
objShell.Run "cmd /c @echo " & chr(7), 0, true
If objShell.Popup("やらないか?",3,"確認") = 1 Then Exit Do ' 引数2で間欠時間調整/秒
loop
272名無し~3.EXE
2011/10/05(水) 16:30:17.85ID:pRvu6KFp createobject htmlfile
<sound src=hoge.wav>
みたいな
<sound src=hoge.wav>
みたいな
273名無し~3.EXE
2011/10/06(木) 02:09:00.06ID:+bYLm4WF >>269
だよね
取捨選択の余地も無く、表示内容の自由度もなく
他人(MS)が決めた表示形式で、不要なものまで全部出るバッチなんかより
任意のもののみ自由な形で表示できるcscriptの方が余程優れてるよね
まあバッチもecho offして任意のもののみechoすれば同じだし
俺は何もかも表示されるのはウザいから、大抵そうしてるけどな
プログラムに置いて、何処かに表示したい内容が有れば表示させる処理を書くなんてのは
当たり前のことで別に煩わしくも無いし
だよね
取捨選択の余地も無く、表示内容の自由度もなく
他人(MS)が決めた表示形式で、不要なものまで全部出るバッチなんかより
任意のもののみ自由な形で表示できるcscriptの方が余程優れてるよね
まあバッチもecho offして任意のもののみechoすれば同じだし
俺は何もかも表示されるのはウザいから、大抵そうしてるけどな
プログラムに置いて、何処かに表示したい内容が有れば表示させる処理を書くなんてのは
当たり前のことで別に煩わしくも無いし
274名無し~3.EXE
2011/10/06(木) 12:41:20.91ID:2Fx0Iqck いや、逆なんだが…
全部出したい時にWSHじゃ困るって話。
なんかバグ抱えてる時はいちいちechoさせて調べるより
ハラワタ全部さらけ出すバッチの方がわかりやすい時がある。
WSHも良く使うけどね。バッチの方が良いと思う場面もたまにあるってだけさ。
全部出したい時にWSHじゃ困るって話。
なんかバグ抱えてる時はいちいちechoさせて調べるより
ハラワタ全部さらけ出すバッチの方がわかりやすい時がある。
WSHも良く使うけどね。バッチの方が良いと思う場面もたまにあるってだけさ。
275名無し~3.EXE
2011/10/06(木) 12:48:49.57ID:BXZ/lA8o batは想定外の命令文に展開されちゃうことがあるけどwshはいらないだろ〜
276名無し~3.EXE
2011/10/06(木) 17:52:01.83ID:NNKGlArA くだらん
277名無し~3.EXE
2011/10/06(木) 19:41:29.32ID:/2WMJRNk sfcminiって7の64bitでも動く?
なんか特殊なことしないとダメとかある?
なんか特殊なことしないとダメとかある?
278名無し~3.EXE
2011/10/06(木) 21:37:18.56ID:+bYLm4WF279名無し~3.EXE
2011/10/07(金) 00:32:16.52ID:gKBmiUzh >>278
スクリプトデバッガについてkwsk
まさかコレのこと? (今どこからダウンロードできるんだ?)
http://monjyu.biz/monjyu/bord/wsh1/msg/107.html
スクリプトデバッガについてkwsk
まさかコレのこと? (今どこからダウンロードできるんだ?)
http://monjyu.biz/monjyu/bord/wsh1/msg/107.html
280名無し~3.EXE
2011/10/07(金) 00:57:29.83ID:4808XmJb282名無し~3.EXE
2011/10/07(金) 18:56:55.85ID:VbuBh+Zz obsoleteだな
283名無し~3.EXE
2011/10/08(土) 11:55:17.92ID:AZqaPYDW WinXPだって10年前のものだよな
未だに超現役だけど
未だに超現役だけど
284名無し~3.EXE
2011/10/08(土) 18:48:39.09ID:Ql472fAY 現役を超えると退役だろ
285名無し~3.EXE
2011/10/08(土) 23:20:26.63ID:x/W81UVV >>271
Popupの文字を引数で複数行書くにはどうすれば・・
Popupの文字を引数で複数行書くにはどうすれば・・
286名無し~3.EXE
2011/10/09(日) 00:07:46.78ID:5XjDZK8i "a" & vbcrlf & "b"
288名無し~3.EXE
2011/10/13(木) 21:44:53.18ID:FaXjE+LJ aaahoga
289名無し~3.EXE
2011/10/13(木) 21:56:41.61ID:Th80tkLY popup([
'hoge',
'hoge',
'hoge'
].join('\n'))
'hoge',
'hoge',
'hoge'
].join('\n'))
291名無し~3.EXE
2011/10/14(金) 20:19:58.86ID:McHE53oa 定番だけど?
292名無し~3.EXE
2011/10/14(金) 21:26:33.25ID:QJV1RGnu 定番だよね
俺はVBSだからJoin(Array(,,,),vbLf)だけど、やってることは全く同じだし
俺はVBSだからJoin(Array(,,,),vbLf)だけど、やってることは全く同じだし
294名無し~3.EXE
2011/10/15(土) 04:20:43.43ID:TjatCbGb 性能的に問題が出るときは.NETのStringBuilderを使うのもいいかもね
Set sb=CreateObject("System.Text.StringBuilder")
sb.Append_3 "hoge" & vbCrLf
sb.Append_3 "hoge" & vbCrLf
MsgBox sb.ToString()
Set sb=CreateObject("System.Text.StringBuilder")
sb.Append_3 "hoge" & vbCrLf
sb.Append_3 "hoge" & vbCrLf
MsgBox sb.ToString()
295名無し~3.EXE
2011/10/15(土) 05:53:27.91ID:dyoDLIIr 負けず嫌いが多いな
296名無し~3.EXE
2011/10/15(土) 08:34:01.93ID:RKuV4VZ6 負けって・・・勝ち負けだったの?
というか、誰が何と勝負してるの?
というか、誰が何と勝負してるの?
298名無し~3.EXE
2011/10/15(土) 15:22:57.34ID:FcLWV6Nd wshって.netのクラスまで呼び出せるのかよ
すげぇ〜
すげぇ〜
299名無し~3.EXE
2011/10/15(土) 15:46:59.12ID:nNRFiouT COMのクラスを提供してるものだけだろ
すごかねえ
すごかねえ
300名無し~3.EXE
2011/10/16(日) 10:25:51.52ID:EibUK6Vk 何でwmiスレなくなってしまったん?
スクリーン輝度変更するスクリプトくれくれトンカツ
スクリーン輝度変更するスクリプトくれくれトンカツ
301名無し~3.EXE
2011/10/16(日) 13:36:45.24ID:kG4wA+4k http://msdn.microsoft.com/en-us/library/aa394549(v=VS.85).aspx
303名無し~3.EXE
2011/10/22(土) 21:15:14.53ID:pAk7XCDQ javascriptからきて、WHSにたどりついた自分はJscriptで勉強中なんだけど、
参考資料少なすぎ。なんで、こんなにJscriptしいたげられてるんでしょ。
javascriptを中心にアドビ系のスクリプトもこなせるし、WSHでこまごまとした
雑務もこなせて、おまけにホームページもこなせる。いいと思うんだけどなあ。
ま、ちょっとした便利な部分だけVBScriptで書いて、残りはJscriptで書くとか
抜け道はいろいろあるんだけど。
参考資料少なすぎ。なんで、こんなにJscriptしいたげられてるんでしょ。
javascriptを中心にアドビ系のスクリプトもこなせるし、WSHでこまごまとした
雑務もこなせて、おまけにホームページもこなせる。いいと思うんだけどなあ。
ま、ちょっとした便利な部分だけVBScriptで書いて、残りはJscriptで書くとか
抜け道はいろいろあるんだけど。
304名無し~3.EXE
2011/10/22(土) 21:39:32.30ID:YVgfBuVq javascriptで書けばいいんじゃね
305名無し~3.EXE
2011/10/23(日) 03:24:55.19ID:5OnGmYpi306名無し~3.EXE
2011/10/23(日) 15:29:49.81ID:FdJcwIUR わざわざ古いのダウンロードせんでも、新しいのがネットで見れるだろ
307名無し~3.EXE
2011/10/23(日) 17:46:07.37ID:dWRveOmB わざわざレスポンスの遅いネットで見ずとも、ローカルのchmでスムーズに見れるだろ
ネットがいくら速くなっても、こういうのに必要なのは速さより早さだし
速さでもメモリ上に読み込まれたchmの読み出し速度と比べたら、光回線ですら千〜万倍遅いし
いくらネットの方が新しいって言ったって、WSHに限れば99.9%以上変化無しだし
ネットがいくら速くなっても、こういうのに必要なのは速さより早さだし
速さでもメモリ上に読み込まれたchmの読み出し速度と比べたら、光回線ですら千〜万倍遅いし
いくらネットの方が新しいって言ったって、WSHに限れば99.9%以上変化無しだし
308名無し~3.EXE
2011/10/23(日) 18:51:07.66ID:7jE02IgD scd56jp.exeの5.6はほぼWSH最終バージョンだしね
309名無し~3.EXE
2011/10/24(月) 16:41:55.48ID:RmOMuIOm なんか載ってない記事があったけど忘れた
311名無し~3.EXE
2011/11/02(水) 18:40:54.37ID:hqgrRrtl 関連付けを変えるのか?
312名無し~3.EXE
2011/11/02(水) 21:38:39.62ID:yCP1kMg5 そこは好きにしたらいいんじゃない?
俺はスクリプト先頭で WScript.FullName をチェックして
c:\windows\syswow64\wscript.exe じゃなかったら,Run で
起動しなおしてるけど
俺はスクリプト先頭で WScript.FullName をチェックして
c:\windows\syswow64\wscript.exe じゃなかったら,Run で
起動しなおしてるけど
313名無し~3.EXE
2011/11/04(金) 10:55:10.52ID:tDqmD/cU WSHスクリプトを64/32bitが違っていたら起動し直す。
ttp://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
ttp://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
314名無し~3.EXE
2011/11/16(水) 17:57:01.26ID:3+bIFKJZ JScriptでファイルの更新日時の比較をしたくて調べてたんですが
http://msdn.microsoft.com/ja-jp/library/ee722142.aspxに
>>ミリ秒ベースの日付比較は、いずれかの Date オブジェクトに
>>午前 0 時以外の時刻が格納されている場合には正しく機能しません。
とありました。ただ実際にスクリプトを組んで動かしてみて
同日のファイル同士やコピーしたファイル同士など色々試してみたんですが
特に不具合は起きませんでした。
上のページにも、「正しく機能しません」とあるだけで具体的な説明がなくて・・・
どういう場合に正しく機能しないのでしょうか?
http://msdn.microsoft.com/ja-jp/library/ee722142.aspxに
>>ミリ秒ベースの日付比較は、いずれかの Date オブジェクトに
>>午前 0 時以外の時刻が格納されている場合には正しく機能しません。
とありました。ただ実際にスクリプトを組んで動かしてみて
同日のファイル同士やコピーしたファイル同士など色々試してみたんですが
特に不具合は起きませんでした。
上のページにも、「正しく機能しません」とあるだけで具体的な説明がなくて・・・
どういう場合に正しく機能しないのでしょうか?
315名無し~3.EXE
2011/11/16(水) 18:17:44.31ID:6E+WOUs3 同じ日の異なる時間で等しいとなるのか?
316名無し~3.EXE
2011/11/16(水) 20:41:14.89ID:wNGKk1F/ >>314
多分単純に
var date1 : Date = new Date('11/16/2011 00:00:00');
var date2 : Date = new Date('11/16/2011 12:00:00');
date1.getTime() == date2.getTime(); // false
ってことだと思う。
getTime()は日付比較ではなくて日時比較ですよ、と言いたいのではないかと。
多分単純に
var date1 : Date = new Date('11/16/2011 00:00:00');
var date2 : Date = new Date('11/16/2011 12:00:00');
date1.getTime() == date2.getTime(); // false
ってことだと思う。
getTime()は日付比較ではなくて日時比較ですよ、と言いたいのではないかと。
317名無し~3.EXE
2011/11/16(水) 20:41:34.70ID:2KwtPpsL >>314
Dateオブジェクトは日付+時刻を扱うので、
2つのDateオブジェクトで 「(時刻を除いた)日付のみの比較」 を行いたい場合、
比較対象の両者の時刻を 0 にしておく必要がある
というだけでは?
不具合の説明ではなく、プログラミングの初心者に対する単なるアドバイスとしての説明に思える
Dateオブジェクトは日付+時刻を扱うので、
2つのDateオブジェクトで 「(時刻を除いた)日付のみの比較」 を行いたい場合、
比較対象の両者の時刻を 0 にしておく必要がある
というだけでは?
不具合の説明ではなく、プログラミングの初心者に対する単なるアドバイスとしての説明に思える
318名無し~3.EXE
2011/11/16(水) 22:05:11.67ID:Hn7HAISL もうひとつ。ファイルの更新日時を比較するんだろ?
ネットワークドライブの場合、保存先のファイルシステムの制限で
1秒ぐらいズレることがあるのはしょうがない。
datediff("s", date1, date2)が2以下なら同じとみなしていくしかないか?
ネットワークドライブの場合、保存先のファイルシステムの制限で
1秒ぐらいズレることがあるのはしょうがない。
datediff("s", date1, date2)が2以下なら同じとみなしていくしかないか?
319名無し~3.EXE
2011/11/17(木) 20:14:35.85ID:6WgVP9XE >>315-318
よく読み返してみたら日時じゃなくて「日付比較は〜」ってしっかり書いてありましたね
いつも日付+時間のセットで使っているのでうっかりしました。
ネットワークドライブの方でズレるというのは初めて知りました。
こちらは別に注意してみます
ありがとうございました。
よく読み返してみたら日時じゃなくて「日付比較は〜」ってしっかり書いてありましたね
いつも日付+時間のセットで使っているのでうっかりしました。
ネットワークドライブの方でズレるというのは初めて知りました。
こちらは別に注意してみます
ありがとうございました。
320名無し~3.EXE
2011/11/23(水) 06:34:21.16ID:nwtiGPYP 電波テロ装置の戦争(始)
魂は幾何学、コピー出来る公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下とする公安(慶應卒T)の仕事だ発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索
魂は幾何学、コピー出来る公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下とする公安(慶應卒T)の仕事だ発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索

WindowsXP Pro SP3 + WSH 5.7
test.js に、フルパスが258Byte以上のファイルをD&Dすると、
WScript.Arguments(i) がバラバラになってしまいます。(日本語は2Byteとして計算)
何とかこれを、バラバラにせずに処理する方法はないでしょうか?
よろしくお願いします。

WMIService.ExecQueryでwscript.exeを検索して、CommandLineを見てみても、
"が外されてバラバラになっています。
また、Argumentsでも、WMIでもフルパスが長いと後ろの方が切れてしまうようです。
324名無し~3.EXE
2011/12/02(金) 17:02:35.97ID:lQcqRQ8c それってだれの制限なの?
325名無し~3.EXE
2011/12/02(金) 17:13:12.44ID:lQcqRQ8c ファイル名を指定して実行にドロップしたらどうなる?
それで駄目ならドラッグ&ドロップできんてことだろ?
それで駄目ならドラッグ&ドロップできんてことだろ?
326名無し~3.EXE
2011/12/02(金) 17:37:52.90ID:lQcqRQ8c ショートパス名使えば?
327321
2011/12/02(金) 19:28:41.17ID:2Ca29Y9K うーん・・・ とりあえず作っているスクリプト晒します
WSHの仕様なのかなぁ?
D&Dされたショートカットファイルや実行ファイルをDropMyRightsで実行するWSH
http://www1.axfc.net/uploader/Sc/so/297301.zip
WSHの仕様なのかなぁ?
D&Dされたショートカットファイルや実行ファイルをDropMyRightsで実行するWSH
http://www1.axfc.net/uploader/Sc/so/297301.zip
328名無し~3.EXE
2011/12/03(土) 01:45:13.33ID:luRL2aN8 windowsのファイルパス名の最大長は256 Bytes(MAX_PATH=256)
でもAPIでのバッファ長は260 Bytesだから、ファイル移動とかで
256-259Bytesになることはある。
ただし、256Bytesを超えるファイルパスは削除とかできなくなるのは有名。
CMD.exeもこの制限を免れることはできない。
でもAPIでのバッファ長は260 Bytesだから、ファイル移動とかで
256-259Bytesになることはある。
ただし、256Bytesを超えるファイルパスは削除とかできなくなるのは有名。
CMD.exeもこの制限を免れることはできない。
329321
2011/12/03(土) 04:09:16.88ID:adpHRkP6 >>328 おぉ ありがとうございます。
ついでなので検証結果メモ。(WindowsXP Professional SP3 + NTFS 3.1(5.1))
フルパスに半角スペースを含まない(=D&D時、引数が「"」で囲まれない)場合
・フルパスが259Byte以下ならD&D正常 開く・移動・削除可能
・フルパスが260Byte以上ならD&D異常 開く・移動・削除不能
フルパスに半角スペースを含む(=D&D時、引数が「"」で囲まれる)場合
・フルパスが257Byte以下ならD&D正常 開く・移動・削除可能
・フルパスが258〜259ByteならD&D異常 開く・移動・削除可能
・フルパスが260Byte以上ならD&D異常 開く・移動・削除不能
ついでなので検証結果メモ。(WindowsXP Professional SP3 + NTFS 3.1(5.1))
フルパスに半角スペースを含まない(=D&D時、引数が「"」で囲まれない)場合
・フルパスが259Byte以下ならD&D正常 開く・移動・削除可能
・フルパスが260Byte以上ならD&D異常 開く・移動・削除不能
フルパスに半角スペースを含む(=D&D時、引数が「"」で囲まれる)場合
・フルパスが257Byte以下ならD&D正常 開く・移動・削除可能
・フルパスが258〜259ByteならD&D異常 開く・移動・削除可能
・フルパスが260Byte以上ならD&D異常 開く・移動・削除不能
330321
2011/12/03(土) 04:25:57.01ID:adpHRkP6 あれ 日本語を含む場合、開く・移動・削除は300Byte以上でもできた
331名無し~3.EXE
2011/12/03(土) 05:00:45.99ID:luRL2aN8 Bytesじゃなくて文字数だったかもしれん。
あと、WIN32APIのMAX_APTHは260だった。(MAX_FNAMEが256)
ただしNTFSの制限は確か32767だったと思うので、64bit Windows(WIN64API)はまた別かも知れん。
まあC++言語とか使う人じゃなかったら意味ないdefine値だが。
あと、WIN32APIのMAX_APTHは260だった。(MAX_FNAMEが256)
ただしNTFSの制限は確か32767だったと思うので、64bit Windows(WIN64API)はまた別かも知れん。
まあC++言語とか使う人じゃなかったら意味ないdefine値だが。
332名無し~3.EXE
2011/12/03(土) 05:44:57.72ID:luRL2aN8 あっ、NTFSのMFTはは内部Unicode(UTF-16)だった。(なのでwindowsでの取り扱いも同様)
なので260はUnicodeでのカウントであり、Bytesにすると520Bytesだね。
あと、32767はNTFSのパス名の制限であり(とはいえwindowsでは扱えない)
ファイル名、フォルダ名は255文字までなのでお間違えなく。
なので260はUnicodeでのカウントであり、Bytesにすると520Bytesだね。
あと、32767はNTFSのパス名の制限であり(とはいえwindowsでは扱えない)
ファイル名、フォルダ名は255文字までなのでお間違えなく。
333名無し~3.EXE
2011/12/03(土) 05:54:52.63ID:luRL2aN8 ただMAX_PATHが260だとしても、windowsの内部でどうAPIが使われているのか
不明なので正確な制限はexplorerその他の作りにもよるので
使うものを自分で調べるしかないのかも。
不明なので正確な制限はexplorerその他の作りにもよるので
使うものを自分で調べるしかないのかも。
334名無し~3.EXE
2011/12/03(土) 10:49:09.39ID:/gF/+gk+335名無し~3.EXE
2011/12/03(土) 16:23:13.02ID:iXL/IjpI subst使えば?
336名無し~3.EXE
2011/12/03(土) 22:24:14.94ID:7jSx8jTM OLEのドラッグ&ドロップ用インターフェイスを実装できれば
MAX_PATHからは解放されるんだけどね。
MAX_PATHからは解放されるんだけどね。
337名無し~3.EXE
2011/12/04(日) 03:54:45.77ID:/eM36+ib338名無し~3.EXE
2011/12/04(日) 14:12:41.55ID:Z/kxLnYq この制限をほぼ 32,000 ワイド文字へ拡張するには
339名無し~3.EXE
2011/12/05(月) 00:06:11.19ID:ka3P5M2Z340名無し~3.EXE
2011/12/05(月) 14:17:39.48ID:dd+MJMfN wshのドロップハンドラはバグってるからな
代わりに使えるまともなドロップハンドラがほしいな
代わりに使えるまともなドロップハンドラがほしいな
341321
2011/12/05(月) 18:31:33.54ID:heCA4j0r 「wscript.exe "〜.js"」へのショートカットファイルに、D&Dすると問題ないようです。
ちなみに、D&Dしたファイルは
「C:\Documents and Settings\root\My Documents\MSDN\DropMyRights\引数の最後で権限を指
定 N=NormalUser(制限付きユーザーアカウント相当), C=ConstrainedUser(アクセストー
クンのSIDを制限した更に制限されたアカウント ファイルの入出力もできない), U=Untrus
tedUser(殆ど動かない) 省略するとNになる.txt」
です。(改行含まず)
ちなみに、D&Dしたファイルは
「C:\Documents and Settings\root\My Documents\MSDN\DropMyRights\引数の最後で権限を指
定 N=NormalUser(制限付きユーザーアカウント相当), C=ConstrainedUser(アクセストー
クンのSIDを制限した更に制限されたアカウント ファイルの入出力もできない), U=Untrus
tedUser(殆ど動かない) 省略するとNになる.txt」
です。(改行含まず)
342名無し~3.EXE
2011/12/05(月) 19:14:42.85ID:dd+MJMfN exeなんかのドロップハンドラだな
wshの関連付けを変えてみ
たしか別の問題であかんかったはず
wshの関連付けを変えてみ
たしか別の問題であかんかったはず
343名無し~3.EXE
2012/01/04(水) 11:05:50.23ID:kJQWcUz6 C:\Documents and Settings\user\Desktop\foo.js
をダブルクリックで開こうとするとファイルパスのスペースのせい?で
「"C:\Documents" にファイル拡張子がありません。」
と言われます。
C:\Documents and Settings\user\Desktop上で開きたいのですがどうすればいいですか?
foo.jsの中身は
WScript.Echo("Hello World!");
です。
初歩的なことだと思いますがよろしくお願いします。
をダブルクリックで開こうとするとファイルパスのスペースのせい?で
「"C:\Documents" にファイル拡張子がありません。」
と言われます。
C:\Documents and Settings\user\Desktop上で開きたいのですがどうすればいいですか?
foo.jsの中身は
WScript.Echo("Hello World!");
です。
初歩的なことだと思いますがよろしくお願いします。
344名無し~3.EXE
2012/01/04(水) 11:39:01.18ID:A8nCGYOV WSHの問題じゃない
関連付けを直せ
関連付けを直せ
345343
2012/01/04(水) 12:21:16.45ID:kJQWcUz6 エラーメッセージのダイアログのタイトルは「Windows Script Host」です。
このファイルの種類を開くプログラムは「Microsoft (R) Windows Based Script Host」です。
どのプログラムに関連付ければいいんですか?
このファイルの種類を開くプログラムは「Microsoft (R) Windows Based Script Host」です。
どのプログラムに関連付ければいいんですか?
346名無し~3.EXE
2012/01/04(水) 12:24:18.98ID:kJQWcUz6 意味がわかりました。できました。すみません。ありがとうございます。
348名無し~3.EXE
2012/01/05(木) 00:43:38.49ID:kA+20YZo 無用
351名無し~3.EXE
2012/01/06(金) 14:35:24.12ID:lUwPCu4g ほら、ゴミだ
352名無し~3.EXE
2012/01/06(金) 18:49:36.10ID:V81QeaC/ 最初から一貫して>>344のレスを受けてできたと書いてあるだけで
自己解決したなんて一言も書いてないし実際に自己解決でもないよねこれ
回答レスに対してできたとレスがある。それで完結してるわけだし。
ただ煽りたいだけなんだろうけど曲解した上に執拗すぎる
自己解決したなんて一言も書いてないし実際に自己解決でもないよねこれ
回答レスに対してできたとレスがある。それで完結してるわけだし。
ただ煽りたいだけなんだろうけど曲解した上に執拗すぎる
353名無し~3.EXE
2012/01/06(金) 22:20:49.38ID:g4d1YN+d 347からここまでリソースのゴミ
354名無し~3.EXE
2012/01/07(土) 14:02:14.20ID:qrwUWLRj 神経質なクソムシを放し飼いにしている池沼夫婦が一番のゴミ
355名無し~3.EXE
2012/01/07(土) 16:40:13.96ID:Pb1/yGKx ゴミの話はすれ違いなので他所でやってくれ
356名無し~3.EXE
2012/01/08(日) 20:24:39.99ID:r0HEJAQF コントロールパネルの拡張子cplファイルをスクリプトで実行したいのですが、どう記述すればいいのでしょうか?
system32上の実体パスを直接Runしてみましたが「アプリケーションに関連付けられていません」と叱られてしまいました
windows7 64bitです
system32上の実体パスを直接Runしてみましたが「アプリケーションに関連付けられていません」と叱られてしまいました
windows7 64bitです
357名無し~3.EXE
2012/01/08(日) 21:02:45.17ID:r0HEJAQF 自己解決しました
control をつけたら動作しました
control をつけたら動作しました
358名無し~3.EXE
2012/01/09(月) 00:04:04.69ID:WH9VO6X0 すれ違い wshと関係ない
359名無し~3.EXE
2012/01/13(金) 05:45:26.13ID:5NsYFn/s360名無し~3.EXE
2012/01/14(土) 09:52:01.68ID:OtXvzrxF すみません。主戦場適当なJavaScriptをWebに埋め込むくらいだから詳細不明で教えてくれくれ。
単純な自分だけのバックアップスクリプト作ろうと思ってるんだけど、可能だよね?
・特定のフォルダを常駐監視
・特定フォルダにファイル、フォルダが入ってきたらサーバーにコピー
・できればそれをメールで通知
ざっと調べたところではできそうな気がしてるけど、できないことってあるんだろうか。
Javascriptでローカルのファイルの書き換えとかが面倒、みたいな。
単純な自分だけのバックアップスクリプト作ろうと思ってるんだけど、可能だよね?
・特定のフォルダを常駐監視
・特定フォルダにファイル、フォルダが入ってきたらサーバーにコピー
・できればそれをメールで通知
ざっと調べたところではできそうな気がしてるけど、できないことってあるんだろうか。
Javascriptでローカルのファイルの書き換えとかが面倒、みたいな。
361名無し~3.EXE
2012/01/14(土) 11:50:29.59ID:Jw8FcaTN 全部出来るよ
FSOとかCDO.Messageとかの超基礎的なCOM使うだけで簡単に
FSOとかCDO.Messageとかの超基礎的なCOM使うだけで簡単に
362名無し~3.EXE
2012/01/14(土) 14:27:14.48ID:OtXvzrxF >>361
だよね。なんかこんなことに何十万か金を払うとか言ってるばかがいるから
自分でやろうかと思ってるけど、やるとまたそのシステムのメンテとかやらされる
んだろうなあ。俺にその金をよこせ、と言いたい。
ありがとうございます。頑張ってみます。
だよね。なんかこんなことに何十万か金を払うとか言ってるばかがいるから
自分でやろうかと思ってるけど、やるとまたそのシステムのメンテとかやらされる
んだろうなあ。俺にその金をよこせ、と言いたい。
ありがとうございます。頑張ってみます。
364名無し~3.EXE
2012/01/14(土) 22:28:00.85ID:JL/SQUeV >>俺にその金をよこせ、と言いたい。
いや、やるんなら言いましょうよ。
いや、やるんなら言いましょうよ。
365名無し~3.EXE
2012/01/15(日) 03:38:24.31ID:afBXVuo9 http://gallery.technet.microsoft.com/scriptcenter/9726505e-b186-4f23-b7c3-a5d61c1efff1/
Hey, Scripting Guy! フォルダに追加された新しいファイルを自動的に開く方法はありますか
Hey, Scripting Guy! フォルダに追加された新しいファイルを自動的に開く方法はありますか
366名無し~3.EXE
2012/01/15(日) 12:34:50.35ID:5P5Cq6cB JScriptはちょっとできるんだけど、文献少ないんだよね。
今まで作ったもの、練習にVBで作ってみよう!
今まで作ったもの、練習にVBで作ってみよう!
367名無し~3.EXE
2012/01/22(日) 22:29:15.70ID:sK/e/Fcd InternetExplorer.Applicationを利用する際にページの読み込みが完了したかどうかを
busyやdocument.readyStateで判断するサンプルを見かけますが、ページの読み込みが
完了した後にJavaScriptを実行しページに変更があっても上記のプロパティには変化が
ないのですが、JavaScriptによる変更が反映されたかどうか確認するには
どうしたらいいのでしょうか?
現在は特定のidを持ったタグ(Element)が追加されるのをwhileでまっているのですが
他に方法があるのなら知りたいです。よろしくお願いします。
busyやdocument.readyStateで判断するサンプルを見かけますが、ページの読み込みが
完了した後にJavaScriptを実行しページに変更があっても上記のプロパティには変化が
ないのですが、JavaScriptによる変更が反映されたかどうか確認するには
どうしたらいいのでしょうか?
現在は特定のidを持ったタグ(Element)が追加されるのをwhileでまっているのですが
他に方法があるのなら知りたいです。よろしくお願いします。
368名無し~3.EXE
2012/01/22(日) 22:48:32.13ID:sK/e/Fcd すみません忘れていました
IEのバージョンは8.0.6001.18702、cscript.exeのバージョンは5.7です
古いIEでは動かなくても構いません。8で判断する方法をご存知の方がいましたら教えてください。
IEのバージョンは8.0.6001.18702、cscript.exeのバージョンは5.7です
古いIEでは動かなくても構いません。8で判断する方法をご存知の方がいましたら教えてください。
369名無し~3.EXE
2012/01/23(月) 16:53:36.65ID:VjSvZeh4 最小再現コードを示せ
370名無し~3.EXE
2012/01/23(月) 17:33:00.93ID:VjSvZeh4 待つようなものじゃないけどな
371名無し~3.EXE
2012/01/23(月) 20:02:10.36ID:EDFegH9J 既に操作は可能になってるわけだしね
372名無し~3.EXE
2012/01/24(火) 06:13:43.62ID:mqHHZ9IF Perlで直接取りに行くってのは?
373367
2012/01/24(火) 15:31:05.50ID:4k51VPeE すみませんbusyプロパティは変化していました。setTimeout()で指定した秒数 > WScript.Sleep()で
指定した秒数になっていたので関数が呼び出される前にbusyプロパティを見ていたif文を
抜けていました。ごめんなさい
一応以下が気になっていた処理です。 busyが変化しないならIsScriptRunnigのようなプロパティやメソッドが
存在するのかもと思いお尋ねしました。
[操作するページ]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<script type="text/javascript">
function insert_element(){
// innerHTMLの書き換えまでのウエイト。このfor文自体に意味はないです。
for (var i = 0; i < 800; i++)
{
for (var j = 0; j < 10000; j++) { }
}
var parent_element = document.getElementById('main');
parent_element.innerHTML = '<p id="new_element">new</p>';
}
</script>
</head>
<body><div id="main"><p> </p></div></body></html>
指定した秒数になっていたので関数が呼び出される前にbusyプロパティを見ていたif文を
抜けていました。ごめんなさい
一応以下が気になっていた処理です。 busyが変化しないならIsScriptRunnigのようなプロパティやメソッドが
存在するのかもと思いお尋ねしました。
[操作するページ]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<script type="text/javascript">
function insert_element(){
// innerHTMLの書き換えまでのウエイト。このfor文自体に意味はないです。
for (var i = 0; i < 800; i++)
{
for (var j = 0; j < 10000; j++) { }
}
var parent_element = document.getElementById('main');
parent_element.innerHTML = '<p id="new_element">new</p>';
}
</script>
</head>
<body><div id="main"><p> </p></div></body></html>
374367
2012/01/24(火) 15:32:29.04ID:4k51VPeE <?xml version="1.0" encoding="UTF-8"?>
<job>
<script language="jscript">
<![CDATA[
var objIE = WScript.CreateObject("InternetExplorer.Application");
// このURLは私の環境でのもの
objIE.Navigate("http://localhost/test/wsh_test.html");
objIE.Visible = true;
while(objIE.busy || objIE.document.readyState != "complete"){ WScript.Sleep(1000); };
// ページの読み込みが完了したのでページ内のJavaScriptの関数を呼び出す
objIE.document.Script.setTimeout("javascript:insert_element();", 100);
// 関数の呼び出しを待つ
WScript.Sleep(100);
WScript.Echo("関数を呼び出しました");
// 関数が呼び出されただけでは下のプロパティには変化がない。
while(objIE.busy || objIE.document.readyState != "complete"){
WScript.Echo("wait...");
WScript.Sleep(1000);
};
// insert_element()の処理内容がページに反映されていないので取得できない
var target = objIE.document.getElementById("new_element");
if (!target)
WScript.Echo('idがnew_elemntのタグは存在しません');
<job>
<script language="jscript">
<![CDATA[
var objIE = WScript.CreateObject("InternetExplorer.Application");
// このURLは私の環境でのもの
objIE.Navigate("http://localhost/test/wsh_test.html");
objIE.Visible = true;
while(objIE.busy || objIE.document.readyState != "complete"){ WScript.Sleep(1000); };
// ページの読み込みが完了したのでページ内のJavaScriptの関数を呼び出す
objIE.document.Script.setTimeout("javascript:insert_element();", 100);
// 関数の呼び出しを待つ
WScript.Sleep(100);
WScript.Echo("関数を呼び出しました");
// 関数が呼び出されただけでは下のプロパティには変化がない。
while(objIE.busy || objIE.document.readyState != "complete"){
WScript.Echo("wait...");
WScript.Sleep(1000);
};
// insert_element()の処理内容がページに反映されていないので取得できない
var target = objIE.document.getElementById("new_element");
if (!target)
WScript.Echo('idがnew_elemntのタグは存在しません');
375367
2012/01/24(火) 15:34:29.39ID:4k51VPeE [操作するコード続き]
// -----------------------------------------------------------
// ここからが別の方法があるのか知りたかった待機処理
while(true)
{
WScript.Sleep(1000);
var target = objIE.document.getElementById("new_element");
if (target && target.innerText.match(/new/i))
{
WScript.Echo('タグが見つかりました');
break;
}
}
// -----------------------------------------------------------
// ここでtargetに対する操作
objIE.Quit();
]]>
</script>
</job>
// -----------------------------------------------------------
// ここからが別の方法があるのか知りたかった待機処理
while(true)
{
WScript.Sleep(1000);
var target = objIE.document.getElementById("new_element");
if (target && target.innerText.match(/new/i))
{
WScript.Echo('タグが見つかりました');
break;
}
}
// -----------------------------------------------------------
// ここでtargetに対する操作
objIE.Quit();
]]>
</script>
</job>
376名無し~3.EXE
2012/01/24(火) 16:57:00.47ID:DUAeQj0m なんかアホみたいな気がする
377名無し~3.EXE
2012/01/24(火) 17:34:10.43ID:DUAeQj0m 最適な助言は、アホなことはやめる
378名無し~3.EXE
2012/01/24(火) 19:19:37.85ID:DUAeQj0m なんでsettimeout使うんだ?
// 24時間つけっ放しの電気ポットの消費電力は、冷蔵庫と同等なので
// 朝使う直前に加熱するようにタイマーをセットすれば
// 節電を実現しつつ、朝熱いコーヒーが飲めれる。
// 朝使う直前に加熱するようにタイマーをセットすれば
// 節電を実現しつつ、朝熱いコーヒーが飲めれる。
// タイガーのポットには6,9時間タイマーが憑いているが
// タイマーの刻時が完了する1時間前に加熱が始まることを考慮して
// パソコンを夜に人生だらだらと使っている人が
// 6,9時間タイマーをいつセットすればいいかを表示するフログラム。
// タイマーの刻時が完了する1時間前に加熱が始まることを考慮して
// パソコンを夜に人生だらだらと使っている人が
// 6,9時間タイマーをいつセットすればいいかを表示するフログラム。
using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
public class Test : Form {
[STAThread]
using System.Text;
using System.Drawing;
using System.Windows.Forms;
public class Test : Form {
[STAThread]
static void Main() {
DateTime dtNow = DateTime.Now;
int hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min < 1*60+40 ) {
MessageBox.Show("ポットのタイマーの6時間セット予定");
System.Threading.Thread.Sleep(60000*(100-hour_min));
MessageBox.Show("ポットのタイマーの6時間セット"); }
DateTime dtNow = DateTime.Now;
int hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min < 1*60+40 ) {
MessageBox.Show("ポットのタイマーの6時間セット予定");
System.Threading.Thread.Sleep(60000*(100-hour_min));
MessageBox.Show("ポットのタイマーの6時間セット"); }
dtNow = DateTime.Now;
hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min < 22*60+40 ) {
MessageBox.Show("ポットのタイマーの9時間セット予定");
System.Threading.Thread.Sleep(60000*(22*60+40-hour_min));
MessageBox.Show("ポットのタイマーの9時間セット"); }
hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min < 22*60+40 ) {
MessageBox.Show("ポットのタイマーの9時間セット予定");
System.Threading.Thread.Sleep(60000*(22*60+40-hour_min));
MessageBox.Show("ポットのタイマーの9時間セット"); }
dtNow = DateTime.Now;
hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min > 22*60+40-1 ) {
MessageBox.Show("ポットのタイマーの6時間セット予定");
System.Threading.Thread.Sleep(60000*(24*60-hour_min+1*60+40));
MessageBox.Show("ポットのタイマーの6時間セット");
} } }
hour_min = dtNow.Hour*60 + dtNow.Minute;
if ( hour_min > 22*60+40-1 ) {
MessageBox.Show("ポットのタイマーの6時間セット予定");
System.Threading.Thread.Sleep(60000*(24*60-hour_min+1*60+40));
MessageBox.Show("ポットのタイマーの6時間セット");
} } }
// C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:winexe PM1040AM0140pot.cs
// レベルが低いと2ちゃん人生つらいよ。
// レベルが低いと2ちゃん人生つらいよ。
386名無し~3.EXE
2012/01/27(金) 21:44:15.43ID:nmbloNhm なにこのスレチガイ
387名無し~3.EXE
2012/01/27(金) 21:51:27.40ID:v/z+KYfY お兄さん”キ”が抜けてますよ
388名無し~3.EXE
2012/01/28(土) 01:04:31.95ID:FTMxJQ6Q settimeoutを使わずに読み込んだページのjavascrptの関数を呼ぶ方法ってあるんですか?
アホなことはやめます。それ知りたいです。
アホなことはやめます。それ知りたいです。
389名無し~3.EXE
2012/01/28(土) 01:08:49.49ID:FTMxJQ6Q 何故呼び出した関数を待つ必要があるのか伝わらなかったようなので敢えて書きましたが
読み出す方のページも編集できるならこんなことしてませんよ
読み出す方のページも編集できるならこんなことしてませんよ
390名無し~3.EXE
2012/01/28(土) 02:49:02.27ID:rYMqbgzQ やっぱりあほだったw
なぜできないと思うんだ?やってみれば?
なぜできないと思うんだ?やってみれば?
391名無し~3.EXE
2012/01/28(土) 22:27:47.27ID:KJ9P9ebl 今までは、xmlの処理の仕方は、url に適当な物が入っているとして
Set objxml = CreateObject("MSXML2.XMLHTTP")
'Set objxml = CreateObject("Microsoft.XMLHTTP")
objxml.Open "GET", url, False
objxml.Send
として、objxml.responseText を実際には正規表現で処理していました
これを以下のようにして
'Set xDoc = CreateObject("MSXML.DOMDocument")
Set xDoc = CreateObject("MSXML2.DOMDocument")
xDoc.async = False
If xDoc.Load(url) Then
Else
'エラー処理
end if
にして後は、標準的なxml処理を勉強して書き換えようと思っています。
この方法が標準的な物かどうか良く分かりませんが、MSや他のサイトで実際の例が多いので
しかし、今までは処理の過程で変なことになったとき(例えば日付のデータが半年以上前)
そういう風な情報と共に objxm.responseText をmsgboxで出力していました。
新しいやり方で.responseText に対応する物はどうやって得られるのでしょうか?
自分なりに検索して見ましたが、よく分かりません
Set objxml = CreateObject("MSXML2.XMLHTTP")
'Set objxml = CreateObject("Microsoft.XMLHTTP")
objxml.Open "GET", url, False
objxml.Send
として、objxml.responseText を実際には正規表現で処理していました
これを以下のようにして
'Set xDoc = CreateObject("MSXML.DOMDocument")
Set xDoc = CreateObject("MSXML2.DOMDocument")
xDoc.async = False
If xDoc.Load(url) Then
Else
'エラー処理
end if
にして後は、標準的なxml処理を勉強して書き換えようと思っています。
この方法が標準的な物かどうか良く分かりませんが、MSや他のサイトで実際の例が多いので
しかし、今までは処理の過程で変なことになったとき(例えば日付のデータが半年以上前)
そういう風な情報と共に objxm.responseText をmsgboxで出力していました。
新しいやり方で.responseText に対応する物はどうやって得られるのでしょうか?
自分なりに検索して見ましたが、よく分かりません
既出だったら申し訳ない
Windows 8って(特にDPインスコした方)VBScript動く?
Windows 8って(特にDPインスコした方)VBScript動く?
394名無し~3.EXE
2012/02/03(金) 20:33:57.24ID:kUR9WePX WSHはメジャー更新が無くなって10年以上経つんだよ
そろそろ切っても、全然「早い」うちに入らないし、
今までも10年未満で切ってきたものは腐るほどあるし
そろそろ切っても、全然「早い」うちに入らないし、
今までも10年未満で切ってきたものは腐るほどあるし
395名無し~3.EXE
2012/02/08(水) 21:51:18.29ID:VU86cqPY すみません。どなたか叡智をご披露ください。
Win7でWSH使ってますが、cscript.exeで使っているスクリプトをちょっと改変して
ファイルをドラッグアンドドロップして作動する作りにしようといろいろ苦闘してみましたが、
どうもできず、ならばいっそドラッグアンドドロップでcscript.exeから作動するように
設定したいのですが、どうやらバグで自分でレジストリを書き換えろ、とGoogle様は
おっしゃいます。
http://support.microsoft.com/kb/981847/ja
いじるのはやぶさかではありませんが、見るといろいろいじるみたいで、若干
不安。なにか特徴的にほかに重大な影響与えたりするんですかね、、、。
テストマシンではないので、不安定なのは避けたいかなあと思っておりまして、、、、、、。
Win7でWSH使ってますが、cscript.exeで使っているスクリプトをちょっと改変して
ファイルをドラッグアンドドロップして作動する作りにしようといろいろ苦闘してみましたが、
どうもできず、ならばいっそドラッグアンドドロップでcscript.exeから作動するように
設定したいのですが、どうやらバグで自分でレジストリを書き換えろ、とGoogle様は
おっしゃいます。
http://support.microsoft.com/kb/981847/ja
いじるのはやぶさかではありませんが、見るといろいろいじるみたいで、若干
不安。なにか特徴的にほかに重大な影響与えたりするんですかね、、、。
テストマシンではないので、不安定なのは避けたいかなあと思っておりまして、、、、、、。
396名無し~3.EXE
2012/02/08(水) 22:00:55.19ID:7syHCDa/ batでも書けばいいんじゃない?
397名無し~3.EXE
2012/02/08(水) 22:35:18.33ID:VU86cqPY >>396
素人仕事でbatも書いてはいるんですが、すでにWSHで完成してるものを
わざわざまた1からというのもどうかと思い、、、、。目の前にあるこのVBS
をそのまま流用できないかと思っているわけでして。
しかも、batはbatで例の全角スペース問題があるのでまたいろいろ面倒で
もうVBSでいかせてくれ、という気分なのです。
なんでこうどれも中途半端なんですかね? M$さん。
素人仕事でbatも書いてはいるんですが、すでにWSHで完成してるものを
わざわざまた1からというのもどうかと思い、、、、。目の前にあるこのVBS
をそのまま流用できないかと思っているわけでして。
しかも、batはbatで例の全角スペース問題があるのでまたいろいろ面倒で
もうVBSでいかせてくれ、という気分なのです。
なんでこうどれも中途半端なんですかね? M$さん。
398名無し~3.EXE
2012/02/08(水) 22:40:59.86ID:3/Fw/xJz つvbs2cmd
399名無し~3.EXE
2012/02/08(水) 22:51:52.84ID:fq1ZqKmm >>395
何をどう苦闘してどんな結果になったから「どうもできず」という判断に至ったのかサッパリわからんわけだが……
if WScript.FullName <> "cscript.exe" then
Run "cscript.exe //nologo " & WScript.ScriptFullName & 引数
end if
みたいなことをすればいいんじゃね?
何をどう苦闘してどんな結果になったから「どうもできず」という判断に至ったのかサッパリわからんわけだが……
if WScript.FullName <> "cscript.exe" then
Run "cscript.exe //nologo " & WScript.ScriptFullName & 引数
end if
みたいなことをすればいいんじゃね?
400名無し~3.EXE
2012/02/08(水) 22:59:50.78ID:3/Fw/xJz CScript.exe強制実行でぐぐれだな
401名無し~3.EXE
2012/02/08(水) 23:09:36.25ID:VU86cqPY いろいろありがとうございます。ちょっとアタマが痛いので、本日は失礼します。
書いてあることを参考にまたいろいろいじってみます。
ありがとうございます。あー頭が痛い。もう仕事やだorz
書いてあることを参考にまたいろいろいじってみます。
ありがとうございます。あー頭が痛い。もう仕事やだorz
402名無し~3.EXE
2012/02/11(土) 13:31:40.94ID:vThnfM65403395
2012/03/03(土) 09:39:45.03ID:+PGrtVhN >>402
久しぶりに来たら止まってるので激遅レスしますが、そのちょっとした変更が
重大な破滅を及ぼしませんですか、ってことですよ。
だってたった3文字の言葉で世界が滅びちゃうんですよ。ムスカさんだって
「目が目があぁぁぁ」とかなっちゃうんですよ。慎重にやらないと。この1ヶ月
まるでプライベートの記憶がないですが、ちょっといじってみましょうかな。ははは。
久しぶりに来たら止まってるので激遅レスしますが、そのちょっとした変更が
重大な破滅を及ぼしませんですか、ってことですよ。
だってたった3文字の言葉で世界が滅びちゃうんですよ。ムスカさんだって
「目が目があぁぁぁ」とかなっちゃうんですよ。慎重にやらないと。この1ヶ月
まるでプライベートの記憶がないですが、ちょっといじってみましょうかな。ははは。
404名無し~3.EXE
2012/03/03(土) 11:47:14.80ID:0qp0Fq4r 負け惜しみバカ、現るw
405名無し~3.EXE
2012/03/03(土) 20:03:21.83ID:rn03T2Wq バカ、現るw
406名無し~3.EXE
2012/03/06(火) 01:05:47.20ID:lps1eYvQ MTP(Media Transfer Protocol)/PTPデバイスのフォルダやファイルにアクセスするには
どうやればいいの?
どうやればいいの?
407名無し~3.EXE
2012/03/07(水) 21:28:47.39ID:d6vbgj1/ バカ、現るw
408名無し~3.EXE
2012/03/10(土) 12:29:12.01ID:VK6AVYkG お前こそバカw
409名無し~3.EXE
2012/03/11(日) 01:47:40.05ID:CnuvY2td 「馬鹿」って言うと「馬鹿」って言う...
410名無し~3.EXE
2012/03/11(日) 02:10:51.13ID:9MbQzsVW こだまでしょうか、いいえWScript.Echoです
411上殿
2012/03/14(水) 21:53:48.17ID:9hRXbLfc 問題解決授業進行
>>1
誰も使ってない、終了。
誰も使ってない、終了。
413名無し~3.EXE
2012/04/08(日) 18:37:59.27ID:6qr8+IAw いろいろ使ってるよ、継続。
414名無し~3.EXE
2012/04/08(日) 18:44:50.12ID:YEOnBHjJ sfcmini入れとくと暇な時にJScriptで色々なことができる。
開発環境はどこにでも入れられるわけじゃないからな。
開発環境はどこにでも入れられるわけじゃないからな。
415名無し~3.EXE
2012/04/08(日) 23:24:08.93ID:6qr8+IAw そういうとこでは逆にexcel.applicationが使えるだろ
416名無し~3.EXE
2012/05/14(月) 17:42:05.47ID:pkrFa5M6 JavaScriptでブラウザの自動操作した後に、完了画面を取りたいのですが、
スクリーンショットは調べたら無理そうとのこと。(VBA使えば可)
どのようにするのが1番いいでしょうか?
名前をつけて保存とか?
スクリーンショットは調べたら無理そうとのこと。(VBA使えば可)
どのようにするのが1番いいでしょうか?
名前をつけて保存とか?
417名無し~3.EXE
2012/05/14(月) 18:44:30.40ID:yob5yN8B WebBrowser.DrawToBitmap
418名無し~3.EXE
2012/05/20(日) 22:42:56.19ID:IBtJUAZy WSH(・∀・)スレッド! Part 4
なくなった?
なくなった?
419名無し~3.EXE
2012/05/21(月) 00:30:50.92ID:gwPcaf05 Win8ってJSでしょ
JSからならWSH使うんじゃんあいの?
JSからならWSH使うんじゃんあいの?
420名無し~3.EXE
2012/05/22(火) 00:05:41.79ID:wtcQQlP5 Win8ってPSでしょ
PSからならWSH使わないんじぁあいの?
PSからならWSH使わないんじぁあいの?
422名無し~3.EXE
2012/05/24(木) 18:19:27.60ID:recfJsFn >1
久しぶりに、
アドミ権限がなくMS-WORDが導入されている環境で
rtfファイルをMS-WORD以外のソフトでオープンさせるのに
wshを使いますた。
久しぶりに、
アドミ権限がなくMS-WORDが導入されている環境で
rtfファイルをMS-WORD以外のソフトでオープンさせるのに
wshを使いますた。
423名無し~3.EXE
2012/06/12(火) 09:26:35.34ID:o4hq7irX サイバー戦争勃発 ? アメリカ・イスラエルの新作マルウェア
「Flame」の脅威とスクリプト言語「Lua」の概要
http://blog.livedoor.jp/hardthink/archives/51940478.html
同じスクリプト言語同士
スクリプト言語「Lua」についても語ろうぜ。
「Flame」の脅威とスクリプト言語「Lua」の概要
http://blog.livedoor.jp/hardthink/archives/51940478.html
同じスクリプト言語同士
スクリプト言語「Lua」についても語ろうぜ。
425名無し~3.EXE
2012/06/26(火) 16:06:57.77ID:TSwv9Fho 外部コマンドの標準出力を処理したい。
以下のようにやってみたが、ファイルができる前に開こうとしてエラーになる。
WshShell.Run "%comspec% /c aaa.exe > " & outFileName
Set FSO = CreateObject("Scripting.FileSystemObject")
Set outFile = FSO.OpenTextFile(outFileName,1)
以下のようにやってみたが、ファイルができる前に開こうとしてエラーになる。
WshShell.Run "%comspec% /c aaa.exe > " & outFileName
Set FSO = CreateObject("Scripting.FileSystemObject")
Set outFile = FSO.OpenTextFile(outFileName,1)
426425
2012/06/26(火) 16:09:58.26ID:TSwv9Fho コマンド実行が同期でできていないのが問題に思えるが、
調べた限りではWshShell.Runは同期実行のはず。
リダイレクトでファイル作成の部分だけ、非同期で行われているのでしょうか。
コマンドの実行時間は時によって変わるので、一定時間待つ、
という対応もできないのですが、
ファイル出力が完了してから次の処理を行うには
どうすればよいのでしょうか。
調べた限りではWshShell.Runは同期実行のはず。
リダイレクトでファイル作成の部分だけ、非同期で行われているのでしょうか。
コマンドの実行時間は時によって変わるので、一定時間待つ、
という対応もできないのですが、
ファイル出力が完了してから次の処理を行うには
どうすればよいのでしょうか。
427名無し~3.EXE
2012/06/26(火) 19:02:36.09ID:HXu8BJ81 うそこけ ちゃんとしらべろ ばーか
428名無し~3.EXE
2012/07/11(水) 20:36:30.84ID:HukfSy7A これ便利だった。サンクス。
↓
COMコンポーネント Hyon.RunObject
Running Object Serverオブジェクトを公開するコンポーネント
http://hyon.s5.xrea.com/prog/index.html
↓
COMコンポーネント Hyon.RunObject
Running Object Serverオブジェクトを公開するコンポーネント
http://hyon.s5.xrea.com/prog/index.html
429名無し~3.EXE
2012/07/14(土) 10:22:33.22ID:YFMsQVo1430名無し~3.EXE
2012/07/24(火) 07:02:35.40ID:dZFU48S0 shell.applicationの
431名無し~3.EXE
2012/07/24(火) 07:07:48.13ID:dZFU48S0助けてください。
FTPサーバからパソコンにファイルをダウンロードするスクリプトを書いたのですが
Set Sh = CreateObject("shell.application")
Set savedir = Sh.namespace("c:\test")
savedir.CopyHere "ftp://ftpserver/hoge.pdf"
WinXPで動作するけどWinVista以降で動作しません。
WinVista以降で動作させるにはどうしたらよいでしょうか。
432名無し~3.EXE
2012/07/24(火) 22:14:23.02ID:mCLsCJjn c:\testを作ってないとか管理者モードじゃないとか?
433名無し~3.EXE
2012/07/25(水) 18:20:03.29ID:GYUYU0zk >WinXPで動作するけどWinVista以降で動作しません。
こういうときはまず最初にUACを疑うべき
こういうときはまず最初にUACを疑うべき
434名無し~3.EXE
2012/07/26(木) 23:25:55.89ID:3VLZYKNv そういうときは
msgbox "waiting..."
msgbox "waiting..."
435名無し~3.EXE
2012/08/01(水) 16:55:04.84ID:rKc6mq28 A.exeからプロセスの環境変数でB.vbsにパスワードなどの文字列を渡すときに、
ツールなどを使って、その値を途中で抜くことは出来るもんなんでしょうか?
B.vbs自体は改変できないものとして。
ツールなどを使って、その値を途中で抜くことは出来るもんなんでしょうか?
B.vbs自体は改変できないものとして。
436名無し~3.EXE
2012/08/01(水) 20:06:17.37ID:z/eWl0Ae B.vbsをC.vbsにリネーム。
B.vbsをゼロから作り、「環境変数を抜いてWScript.Shell.RunでC.vbsを呼ぶ」処理を作る。
しかしそもそもがあまり安定した設計じゃないなこれ。
B.vbsでダミーの環境変数をセットすることもできちゃう。
B.vbsをゼロから作り、「環境変数を抜いてWScript.Shell.RunでC.vbsを呼ぶ」処理を作る。
しかしそもそもがあまり安定した設計じゃないなこれ。
B.vbsでダミーの環境変数をセットすることもできちゃう。
437名無し~3.EXE
2012/08/02(木) 21:36:34.40ID:F4xK+iAB ありがとうございます。
最悪、そのPCが盗まれた場合か、そのスクリプトや連動するアプリだけが盗まれて別のPCで動かした場合に、
IDとパスワードが抽出出来ることだけは避ける仕様にしといたほうがいいかなと考えてます。
最悪、そのPCが盗まれた場合か、そのスクリプトや連動するアプリだけが盗まれて別のPCで動かした場合に、
IDとパスワードが抽出出来ることだけは避ける仕様にしといたほうがいいかなと考えてます。
438名無し~3.EXE
2012/08/02(木) 22:58:54.98ID:OmQOAXNM スクリプト使ってる限り無理だろ
439名無し~3.EXE
2012/08/04(土) 21:01:55.73ID:zJdYkzbx 環境変数は他のプロセスから見えるだろ
440435
2012/08/05(日) 14:15:36.76ID:DJAkb7Zf >>439
A.exeで設定したプロセスの環境変数の値は、別のexeやスクリプトから見えるんですか?
A.exeから起動したB.vbsからなら、継承されたプロセスの環境変数の値が見えるのは理解できるんだけど。
他のexeやスクリプトから、どうやったら覗けるんでしょうか?
A.exeで設定したプロセスの環境変数の値は、別のexeやスクリプトから見えるんですか?
A.exeから起動したB.vbsからなら、継承されたプロセスの環境変数の値が見えるのは理解できるんだけど。
他のexeやスクリプトから、どうやったら覗けるんでしょうか?
441名無し~3.EXE
2012/08/05(日) 14:33:59.31ID:XWepDnrU 不正行為にも流用できる方法なので
知りたければ他人を不正幇助のリスクに巻込まずに自分で調べましょう
知りたければ他人を不正幇助のリスクに巻込まずに自分で調べましょう
442名無し~3.EXE
2012/08/07(火) 19:09:10.65ID:1JXfprE0 ttp://technet.microsoft.com/ja-jp/sysinternals/bb896653.aspx
443名無し~3.EXE
2012/08/10(金) 00:51:43.02ID:mFDwaUT+ すみません、お尋ねしたいのですが
eventquery.vbsでタスクスケジューラのログ(microsoft-windows-taskscheduler/operational)の内容を
表示させることって出来るのでしょうか?
家のPCがWinXP-Homeなので試すことが出来ず、ググってもよくわかりませんでした・・・
eventquery.vbsでタスクスケジューラのログ(microsoft-windows-taskscheduler/operational)の内容を
表示させることって出来るのでしょうか?
家のPCがWinXP-Homeなので試すことが出来ず、ググってもよくわかりませんでした・・・
444名無し~3.EXE
2012/08/10(金) 00:53:14.69ID:mFDwaUT+ 間違えました。
× eventquery ⇒ ○ eventquery.vbs
× eventquery ⇒ ○ eventquery.vbs
445名無し~3.EXE
2012/08/10(金) 00:57:15.43ID:mFDwaUT+ あれ?拡張子「.vbs」を付けたのになぜか消えますね。
2chの仕様なのかな?
もう1度書きます。
× eventquery ⇒ ○ eventquery.vbs
2chの仕様なのかな?
もう1度書きます。
× eventquery ⇒ ○ eventquery.vbs
446名無し~3.EXE
2012/08/10(金) 06:13:09.86ID:FUQ1JoYr VBScriptは昔のノートン先生が結構誤反応をすることが多かったの。
Loveletterウィルスと間違えてDATを消してしまうし
それを逆手にとった荒らしも多かった。
ファイル名やソースを張るときには「対策」されて変換されてしまう。
Loveletterウィルスと間違えてDATを消してしまうし
それを逆手にとった荒らしも多かった。
ファイル名やソースを張るときには「対策」されて変換されてしまう。
447名無し~3.EXE
2012/08/11(土) 05:00:33.23ID:ufIe32gS 443,444ともに拡張子までちゃんと見えてるけど?
448名無し~3.EXE
2012/08/11(土) 13:22:01.76ID:H+ocVX4U 自分でreplacestr設定したの忘れてるだけじゃね?
449445
2012/08/11(土) 13:52:06.92ID:TBiUViGB おっしゃる通りギコナビのオプションで「セキュリティ対策ソフトの誤反応対策」というチェックを外したら
拡張子まで表示されるようになりました。
お騒がせしました・・・
拡張子まで表示されるようになりました。
お騒がせしました・・・
450名無し~3.EXE
2012/08/27(月) 15:12:23.47ID:h8v7q1oD 以下のサイトを参考させてもらってJscriptで数値文字参照を
元の文字に変換するスクリプトを書こうとしてるのがお手上げです
http://stonedsoul.org/post/280172145
http://ushi.donburi.net/archives/2008/05/2008052701.html
どなたかサンプルください・・・
元の文字に変換するスクリプトを書こうとしてるのがお手上げです
http://stonedsoul.org/post/280172145
http://ushi.donburi.net/archives/2008/05/2008052701.html
どなたかサンプルください・・・
451名無し~3.EXE
2012/08/27(月) 15:55:20.37ID:JY+Friag innerHTMLに書いてinnerTextを読めばよかんべ
452名無し~3.EXE
2012/08/27(月) 21:25:12.48ID:h8v7q1oD ありがとうございます。以下参考にしてできました。
http://blog.tojiru.net/article/211339637.html
a = "キタ━━━(゚∀゚)━━━!! ";
var IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = false
IE.Navigate("");
WScript.Sleep(1000);
WScript.echo(unescapeHTML(a));
IE.Quit();
function unescapeHTML(str) {
var div = IE.Document.createElement("div");
div.innerHTML = str.replace(/</g,"<")
.replace(/>/g,">")
.replace(/ /g, " ")
.replace(/\r/g, " ")
.replace(/\n/g, " ");
return div.textContent || div.innerText;
}
http://blog.tojiru.net/article/211339637.html
a = "キタ━━━(゚∀゚)━━━!! ";
var IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = false
IE.Navigate("");
WScript.Sleep(1000);
WScript.echo(unescapeHTML(a));
IE.Quit();
function unescapeHTML(str) {
var div = IE.Document.createElement("div");
div.innerHTML = str.replace(/</g,"<")
.replace(/>/g,">")
.replace(/ /g, " ")
.replace(/\r/g, " ")
.replace(/\n/g, " ");
return div.textContent || div.innerText;
}
453名無し~3.EXE
2012/08/27(月) 21:26:16.80ID:h8v7q1oD 戻っちゃってますけどaには数値文字参照が入っているということで・・・
454名無し~3.EXE
2012/09/09(日) 09:54:48.26ID:ZAXEJnUU 質問があるのですがどなたかお願いします。
ノートパッドにごにょごにょしようと、下記コードにて子ウィンドウのハンドル取得しようとしてるんですが、
2つ目のハンドルがNULLで返ってきます。子ウィンドウ「Edit」のハンドルはどのようにすれば取得できますでしょうか。
hWND(0) = CreateObject("Excel.Application").ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCJ"",""Notepad"",0)")
hWND(1) = CreateObject("Excel.Application").ExecuteExcel4Macro("CALL(""user32"",""FindWindowExA"",""JJJCJ"",hWND(0),0,""Edit"",0)")
ノートパッドにごにょごにょしようと、下記コードにて子ウィンドウのハンドル取得しようとしてるんですが、
2つ目のハンドルがNULLで返ってきます。子ウィンドウ「Edit」のハンドルはどのようにすれば取得できますでしょうか。
hWND(0) = CreateObject("Excel.Application").ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCJ"",""Notepad"",0)")
hWND(1) = CreateObject("Excel.Application").ExecuteExcel4Macro("CALL(""user32"",""FindWindowExA"",""JJJCJ"",hWND(0),0,""Edit"",0)")
455名無し~3.EXE
2012/09/09(日) 10:02:47.09ID:KfYp1+OX Win32APIスレ逝け
456名無し~3.EXE
2012/10/16(火) 12:31:34.82ID:IcBJIXKV457名無し~3.EXE
2012/11/12(月) 03:36:14.90ID:Wei4fOg8 結局wsh使ってない?
既存のスクリプトは使ってるだろうけど、
新規で書いてるのか?って意味ね。
個人的には特に不満がないので新規には書いてない
ってか今となってはよくスクリプト書いてたなって思う
powershellスレも勢いあるわけでもないし、そこまで使われてなさげだし
既存のスクリプトは使ってるだろうけど、
新規で書いてるのか?って意味ね。
個人的には特に不満がないので新規には書いてない
ってか今となってはよくスクリプト書いてたなって思う
powershellスレも勢いあるわけでもないし、そこまで使われてなさげだし
459名無し~3.EXE
2012/11/13(火) 21:25:08.17ID:Hsq6jOef スレ違い
460名無し~3.EXE
2013/01/14(月) 22:58:34.95ID:33jbQnCZ WinXPで、職場の業務用アプリの操作を自動化しようと、WSHのAppActivateとSnedKeysで、自動キー入力を行いました。
キー入力は、Caps Lockはあらかじめオン状態で、↓キーとスペースを数回叩く程度なのですが、
そうするとどう言う訳か、スクリプト実行後にCaps Lockが勝手にオフになってしまいます。
キーボードのCapsLockランプは光ったまま、タスクバーのCAPS表示はOFFになってしまいます。
この状態の時キーボードのCapsLockをオフにすると、タスクバーのCAPS表示はオンになります(つまり逆に認識されてしまう)。
どうしたら、このような挙動を起きないようにできるでしょうか。
AppActivateの後、Sleepを入れても改善しません。
キー入力は、Caps Lockはあらかじめオン状態で、↓キーとスペースを数回叩く程度なのですが、
そうするとどう言う訳か、スクリプト実行後にCaps Lockが勝手にオフになってしまいます。
キーボードのCapsLockランプは光ったまま、タスクバーのCAPS表示はOFFになってしまいます。
この状態の時キーボードのCapsLockをオフにすると、タスクバーのCAPS表示はオンになります(つまり逆に認識されてしまう)。
どうしたら、このような挙動を起きないようにできるでしょうか。
AppActivateの後、Sleepを入れても改善しません。
461名無し~3.EXE
2013/01/15(火) 00:45:34.23ID:KX7NTlZi バグ
修正
修正
462名無し~3.EXE
2013/01/15(火) 06:13:41.71ID:czUw0ZxF SendKeysに任せること自体がそもそも
PCが受け付けずにしくじるリスクがある
つまりCapsLockがなぜONでなければならないのか
業務用アプリの方をなぜ変えられないのかを考えるべき
PCが受け付けずにしくじるリスクがある
つまりCapsLockがなぜONでなければならないのか
業務用アプリの方をなぜ変えられないのかを考えるべき
463名無し~3.EXE
2013/01/15(火) 10:48:15.57ID:P2QJ2Sbx windows側、wsh側のバグでしょうね。一個人にはどうしようもありません。
確かにその業務用アプリの出来が悪いけど、それを直すとかは様々な事情により不可能。
確かにその業務用アプリの出来が悪いけど、それを直すとかは様々な事情により不可能。
464名無し~3.EXE
2013/01/15(火) 11:04:41.83ID:KTYwik2Y 自動化は普通、SendKeysではなくSendMessageでやるものだよな
戻り値でキーなり何かを送った結果を確認せずに次のキーを送るとか
もう馬かと、鹿かと
winやwshのバグより、不適切なもので不適切なことをしようとする
使用者の頭のバグが一番大きいと思う
戻り値でキーなり何かを送った結果を確認せずに次のキーを送るとか
もう馬かと、鹿かと
winやwshのバグより、不適切なもので不適切なことをしようとする
使用者の頭のバグが一番大きいと思う
465名無し~3.EXE
2013/01/17(木) 00:10:40.21ID:ng0cD628 >460
Win7(x64) で試してみただけだけど、regsvr32 からの DLL登録が
許されてる環境なら、とりあえず AutoItX の ControlSendメソッドを
使うと、回避出来るかも知れないですよ。
Win7(x64) で試してみただけだけど、regsvr32 からの DLL登録が
許されてる環境なら、とりあえず AutoItX の ControlSendメソッドを
使うと、回避出来るかも知れないですよ。
466名無し~3.EXE
2013/01/26(土) 21:25:04.36ID:Jk0Gr315 >>465
ありがとうございます。 外部の物をインストールするとかは一切できません。
おかしくなる原因は WScript.Sleepにあるのは分かりました。Sleepを排除したら、正常動作しました。
もう、これ以上のことはしないので、では。
ありがとうございます。 外部の物をインストールするとかは一切できません。
おかしくなる原因は WScript.Sleepにあるのは分かりました。Sleepを排除したら、正常動作しました。
もう、これ以上のことはしないので、では。
467名無し~3.EXE
2013/01/29(火) 00:50:44.24ID:u4i4Qptw wsfのscript要素は、charset属性に対応していない?
MSDNのリファレンスには載ってなかった
外部スクリプトをUTF-8にしたいんだけど、できないってことですかね?
MSDNのリファレンスには載ってなかった
外部スクリプトをUTF-8にしたいんだけど、できないってことですかね?
468名無し~3.EXE
2013/01/30(水) 13:18:59.02ID:QZYr9xY1 >467
ファイル形式を UTF-8 から Shift JIS とかへ変換するだけなら、
「Adodb.Stream」を CreateObject し、文字コードを指定したり
すれば出来るけど (「Adodb.Stream Open Type Charset」
あたりで検索すれば判る筈)、それを「Scripting.Encoder」
オブジェクトに渡して (または少々荒っぽいけど、文字列を
ごっそり eval させるとかして) スクリプトの実行が成功するか
どうかは、やった事ないんで不明。やる気と時間があったら
結果報告ヨロです。
ファイル形式を UTF-8 から Shift JIS とかへ変換するだけなら、
「Adodb.Stream」を CreateObject し、文字コードを指定したり
すれば出来るけど (「Adodb.Stream Open Type Charset」
あたりで検索すれば判る筈)、それを「Scripting.Encoder」
オブジェクトに渡して (または少々荒っぽいけど、文字列を
ごっそり eval させるとかして) スクリプトの実行が成功するか
どうかは、やった事ないんで不明。やる気と時間があったら
結果報告ヨロです。
469468
2013/01/30(水) 13:51:49.53ID:QZYr9xY1 ありゃ間違えてた、恥ずかしい(/ω\;)
×「Scripting.Encoder」
○「ScriptControl」
×「Scripting.Encoder」
○「ScriptControl」
470名無し~3.EXE
2013/01/30(水) 15:21:02.78ID:0wtvxK+Y <?xml version="1.0" encoding="utf-8" ?>
471467
2013/01/31(木) 00:50:43.73ID:CH8AQPWd473467
2013/02/01(金) 00:29:58.22ID:8pnxd3pB >>472
BOM付きだといけました
UTF-8のBOM無しにしたかったので、BOM付きは試してませんでした
できる事は分かったので、あとは自分的にBOMを許容するか考えてみます
みなさん、ありがとうございました
BOM付きだといけました
UTF-8のBOM無しにしたかったので、BOM付きは試してませんでした
できる事は分かったので、あとは自分的にBOMを許容するか考えてみます
みなさん、ありがとうございました
475467
2013/02/02(土) 01:03:00.84ID:JfUKJu1L UTF-8のwsfからUTF-8のjsをインクルードし、
XML宣言のencoding指定の有無と、BOMの有無で、
正常に動作する組み合わせを確認してみました。
長くなったので、コードと結果は分けて投稿します。
結論としては、外部のjsはBOM無しでは動作しませんでした。
>>474
インクルードする外部のjsもBOM無しでいけました?
XML宣言のencoding指定の有無と、BOMの有無で、
正常に動作する組み合わせを確認してみました。
長くなったので、コードと結果は分けて投稿します。
結論としては、外部のjsはBOM無しでは動作しませんでした。
>>474
インクルードする外部のjsもBOM無しでいけました?
476467
2013/02/02(土) 01:08:39.00ID:JfUKJu1L 使用したコードは以下の通りで、encoding無しのケースでは、
XML宣言とCDATAの記述を削除しています。
■ wsf
<?xml version="1.0" encoding="utf-8" ?>
<job>
<script language="JScript" src="bom.js"></script>
<script language="JScript">
<![CDATA[
WScript.Echo('wsf UTF-8 BOM有 マルチバイト文字');
]]>
</script>
</job>
■ js
WScript.Echo('js UTF-8 BOM有 マルチバイト文字');
XML宣言とCDATAの記述を削除しています。
■ wsf
<?xml version="1.0" encoding="utf-8" ?>
<job>
<script language="JScript" src="bom.js"></script>
<script language="JScript">
<![CDATA[
WScript.Echo('wsf UTF-8 BOM有 マルチバイト文字');
]]>
</script>
</job>
■ js
WScript.Echo('js UTF-8 BOM有 マルチバイト文字');
477467
2013/02/02(土) 01:12:15.00ID:JfUKJu1L 結果は以下のようになりました。
encoding:○ wsfBOM:○ jsBOM:○ → ○
encoding:○ wsfBOM:○ jsBOM:× → ×
encoding:○ wsfBOM:× jsBOM:○ → ○
encoding:○ wsfBOM:× jsBOM:× → ×
encoding:× wsfBOM:○ jsBOM:○ → ○
encoding:× wsfBOM:○ jsBOM:× → ×
encoding:× wsfBOM:× jsBOM:○ → ×
encoding:× wsfBOM:× jsBOM:× → ×
encoding:○ wsfBOM:○ jsBOM:○ → ○
encoding:○ wsfBOM:○ jsBOM:× → ×
encoding:○ wsfBOM:× jsBOM:○ → ○
encoding:○ wsfBOM:× jsBOM:× → ×
encoding:× wsfBOM:○ jsBOM:○ → ○
encoding:× wsfBOM:○ jsBOM:× → ×
encoding:× wsfBOM:× jsBOM:○ → ×
encoding:× wsfBOM:× jsBOM:× → ×
478名無し~3.EXE
2013/02/02(土) 18:41:58.44ID:TWIcQj0n vbsだけどいけた
os wshのver違いか
os wshのver違いか
479名無し~3.EXE
2013/02/02(土) 19:14:55.49ID:TWIcQj0n jsでもいけた
osは7
osは7
480名無し~3.EXE
2013/02/04(月) 23:56:39.97ID:a/0/56o4 「Alt+F4」で強制終了みたいな動作をVBScriptやJScriptで実現可能ですか?
実現可能ならばどの関数やオブジェクトからできるのかどうか教えてくれませんか
実現可能ならばどの関数やオブジェクトからできるのかどうか教えてくれませんか
481名無し~3.EXE
2013/02/05(火) 00:01:06.66ID:Bngv/V4c createobject("wscript.shell").sendkeys "%{f4}"
482名無し~3.EXE
2013/02/05(火) 20:42:40.00ID:gKA2Afmk WMIのWin32_Processで特定のプロセスをTerminateProcess()ってのは?
483名無し~3.EXE
2013/02/18(月) 21:18:36.99ID:JujOUcYl Windows XPです
User権限でフォントをインストールするには
コントロールパネルのフォントから
「フォントの追加」で「フォント フォルダにフォントをコピーする」のチェックをはずして追加する
またはコントロールパネルのフォントにフォントファイルを右クリックでドラッグ&ドロップして
「ショートカットをここに作成」をする等といった方法じゃないとインストールできません
(コントロールパネルのフォントのアイコンにはショートカットのマークが付く)
しかしこれだとWindowsを再起動するとインストールされていない状態に戻ってしまいます
User権限でフォントをインストールするには
コントロールパネルのフォントから
「フォントの追加」で「フォント フォルダにフォントをコピーする」のチェックをはずして追加する
またはコントロールパネルのフォントにフォントファイルを右クリックでドラッグ&ドロップして
「ショートカットをここに作成」をする等といった方法じゃないとインストールできません
(コントロールパネルのフォントのアイコンにはショートカットのマークが付く)
しかしこれだとWindowsを再起動するとインストールされていない状態に戻ってしまいます
484続き
2013/02/18(月) 21:27:57.37ID:JujOUcYl そこでWindows起動時に上記の処理を自動でさせようと思い検索してみたところ
//gallery.technet.microsoft.com/scriptcenter/b5acfc13-3c7b-4168-b9c9-792e005304e6
に手順が書いてありました
がうまくいきません
コピーしようとしているからうまくいかないんだ、ショートカットを渡せばいいんだ
と思い
//gallery.technet.microsoft.com/scriptcenter/b5acfc13-3c7b-4168-b9c9-792e005304e6
に手順が書いてありました
がうまくいきません
コピーしようとしているからうまくいかないんだ、ショートカットを渡せばいいんだ
と思い
485続き
2013/02/18(月) 22:45:48.17ID:JujOUcYl var item = WScript.Arguments(0);
var itemName = item.slice(item.lastIndexOf("\\"));
var WshShell = WScript.CreateObject("WScript.Shell");
var strFonts = WshShell.SpecialFolders("Fonts");
var oShellLink = WshShell.CreateShortcut(strFonts + itemName + ".lnk");
oShellLink.TargetPath = item;
oShellLink.Save();
みたいなことをしてみましたがこれもうまくいきませんでした
var itemName = item.slice(item.lastIndexOf("\\"));
var WshShell = WScript.CreateObject("WScript.Shell");
var strFonts = WshShell.SpecialFolders("Fonts");
var oShellLink = WshShell.CreateShortcut(strFonts + itemName + ".lnk");
oShellLink.TargetPath = item;
oShellLink.Save();
みたいなことをしてみましたがこれもうまくいきませんでした
486続き
2013/02/18(月) 22:56:44.13ID:JujOUcYl 上記のページによるとNamespaceメソッド経由でフォントフォルダを取得しないといけないっぽいです
でもそうするとCopyHereかMoveHereしかなくShortcutHereのようなものありません
(そもそもショートカットを渡せばうまくいくのかどうかも定かではありませんが)
別のアプローチはないかと思ってフォントをインストールする際にレジストリやファイルに変化がないか確認してみましたが
Administrator権限での通常のインストールとは違ってレジストリにもファイルにも何も変化が起きていないようで(そんなことあるの?)
違う方法を探すこともできませんでした
でもそうするとCopyHereかMoveHereしかなくShortcutHereのようなものありません
(そもそもショートカットを渡せばうまくいくのかどうかも定かではありませんが)
別のアプローチはないかと思ってフォントをインストールする際にレジストリやファイルに変化がないか確認してみましたが
Administrator権限での通常のインストールとは違ってレジストリにもファイルにも何も変化が起きていないようで(そんなことあるの?)
違う方法を探すこともできませんでした
487続き
2013/02/18(月) 23:00:45.28ID:JujOUcYl User権限でフォントのインストールを自動化させる方法があれば教えてください
外部コンポーネント等なしで自動化できればwshでもcmdでもinfでも構いません
連投すみませんでした
外部コンポーネント等なしで自動化できればwshでもcmdでもinfでも構いません
連投すみませんでした
488名無し~3.EXE
2013/02/18(月) 23:13:28.60ID:Iug60JJu ちゅーかそんなことができたら怖くね?
メイリオをUsersで上書きできたらまずいだろ
よく知らないけどフォントのインストールは
基本はAdministratorなんじゃないの?
メイリオをUsersで上書きできたらまずいだろ
よく知らないけどフォントのインストールは
基本はAdministratorなんじゃないの?
489名無し~3.EXE
2013/02/18(月) 23:38:25.65ID:JujOUcYl >>483のような一時的なフォントのインストールはUser権限でもできます
それをWindows起動時に自動的に処理させたいと思っています
それをWindows起動時に自動的に処理させたいと思っています
490名無し~3.EXE
2013/02/25(月) 06:37:29.56ID:ihmbGfHa コマンドラインスレ落ちたのか……。
ジャンクション機能を使ってマウントしたボリュームの
空き容量を知る手がかりを探しに来たのに,ないとはなあ
ジャンクション機能を使ってマウントしたボリュームの
空き容量を知る手がかりを探しに来たのに,ないとはなあ
491名無し~3.EXE
2013/02/25(月) 12:06:27.21ID:55LTleg1 >>490
Windows板のは無くなったけどム板にある
【.cmd】 バッチファイルスクリプト %9 【.bat】
http://toro.2ch.net/test/read.cgi/tech/1335015478/
Windows板のは無くなったけどム板にある
【.cmd】 バッチファイルスクリプト %9 【.bat】
http://toro.2ch.net/test/read.cgi/tech/1335015478/
492名無し~3.EXE
2013/02/25(月) 12:09:41.57ID:55LTleg1493名無し~3.EXE
2013/02/27(水) 17:38:54.79ID:p9DdIIQk ポップアップダイアログがどうにも最前面に出せないのは不具合なのか仕樣なのか
回避がメンドいな
それともVista以降なら問題ないのだろうか
回避がメンドいな
それともVista以降なら問題ないのだろうか
494名無し~3.EXE
2013/02/27(水) 21:07:30.82ID:eZq8UEbH そいつはもうHTAを使った方が早いんじゃないか?
495名無し~3.EXE
2013/02/27(水) 22:49:28.85ID:/Pjx7wd+ ポップアップダイアログってmsgboxのことかい?
最前面指定があるだろ?
最前面指定があるだろ?
496名無し~3.EXE
2013/03/10(日) 15:06:32.12ID:VQ6tj2fB メッセージボックスならポップアップダイアログとは呼ばんだろ
497名無し~3.EXE
2013/03/10(日) 15:23:14.66ID:EOksbl+N それは君個人のルールだろ
いや俺も呼ばないけどさ
いや俺も呼ばないけどさ
498名無し~3.EXE
2013/03/10(日) 19:05:42.47ID:w0fXATEC wscript.shellのpopupのことじゃろ
499名無し~3.EXE
2013/03/13(水) 14:02:57.97ID:SPxiOnp0 ジャンクション機能を使ってディスク・ボリュームをマウントする − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/985junction/junction.html
この機能でマウントしたボリュームの空き容量を取得する手段ってVBSでは提供されてないんだな。
http://www.atmarkit.co.jp/fwin2k/win2ktips/985junction/junction.html
この機能でマウントしたボリュームの空き容量を取得する手段ってVBSでは提供されてないんだな。
500名無し~3.EXE
2013/03/13(水) 14:26:13.02ID:dIXZUpk6 必要な機能はCOMで賄えってのはVBSというかWSHのスタイルだからな
マウントしたボリュームどころか、普通のドライブの空き容量を取得する手段すら
VBSそのものにはからは提供されていない
WSHのパッケージと同梱なので当たり前に使っているが、FSOだってVBSの機能ではなく
あくまで外部の汎用COMの一つ
マウントしたボリュームどころか、普通のドライブの空き容量を取得する手段すら
VBSそのものにはからは提供されていない
WSHのパッケージと同梱なので当たり前に使っているが、FSOだってVBSの機能ではなく
あくまで外部の汎用COMの一つ
501名無し~3.EXE
2013/03/13(水) 23:34:19.81ID:pGp+xI5T COMって簡単に作られる?
502名無し~3.EXE
2013/03/14(木) 00:53:25.11ID:U60C2gX+ プリンターがオンラインかorオフラインか調べる方法を
あとに学ぶ人のためにカキコした方がいいと思う。
わしゃ知らん。
あとに学ぶ人のためにカキコした方がいいと思う。
わしゃ知らん。
503名無し~3.EXE
2013/03/14(木) 07:13:35.83ID:GZ3PCAcw504名無し~3.EXE
2013/03/14(木) 19:14:07.25ID:kDbcE3ur そういえばMS公式ドキュメントにWSHでCOM作る(not使う)方法を書いてあるセクションがあったな
505名無し~3.EXE
2013/03/15(金) 00:32:47.07ID:5CYiOxYN スクリプト コンポーネント(WSC)だろ
wshのヘルプにも載ってるぞ
確かにスクリプト コンポーネントはCOMだけど、今回のようにwshやVBSなどに無い機能を
COMで補うって用途には全く役に立たない
まあ外部ライブラリ的な物を作るにあたって、普通にvbsやjs作ってwsfのscriptタグのsrc要素で
インクルードするのに対して、いくつか利点も欠点もあるから、俺も適材適所で使ってるけど
別にそんな大層なものじゃないよ
wshのヘルプにも載ってるぞ
確かにスクリプト コンポーネントはCOMだけど、今回のようにwshやVBSなどに無い機能を
COMで補うって用途には全く役に立たない
まあ外部ライブラリ的な物を作るにあたって、普通にvbsやjs作ってwsfのscriptタグのsrc要素で
インクルードするのに対して、いくつか利点も欠点もあるから、俺も適材適所で使ってるけど
別にそんな大層なものじゃないよ
506名無し~3.EXE
2013/03/17(日) 10:57:39.04ID:ud5w/Y1w 若干スレ違い気味ですが、質問させてください。
http://ja.wikipedia.org/wiki/NT_File_System
>Win32サブシステムではファイル名の大文字小文字は区別されず、
>ファイル名の大文字小文字が異なるファイルを上書きした場合は、最後に使われたファイル名のファイルが保存される。
>POSIX・Interixサブシステムではファイル名の大文字小文字は区別され、
>ファイル名の大文字小文字が異なるファイルは上書きされず別のファイルとして保存される。
とのことですが、NTFSは同じフォルダに a.txt と A.txt や、フォルダa と フォルダA を共存出来るのでしょうか?
もし可能であるならば、上記ファイル・フォルダを作成可能なアプリを知りたいです。
また、WSHでNTFSの大文字小文字を区別する方法はありますでしょうか?
よろしくお願いします。
http://ja.wikipedia.org/wiki/NT_File_System
>Win32サブシステムではファイル名の大文字小文字は区別されず、
>ファイル名の大文字小文字が異なるファイルを上書きした場合は、最後に使われたファイル名のファイルが保存される。
>POSIX・Interixサブシステムではファイル名の大文字小文字は区別され、
>ファイル名の大文字小文字が異なるファイルは上書きされず別のファイルとして保存される。
とのことですが、NTFSは同じフォルダに a.txt と A.txt や、フォルダa と フォルダA を共存出来るのでしょうか?
もし可能であるならば、上記ファイル・フォルダを作成可能なアプリを知りたいです。
また、WSHでNTFSの大文字小文字を区別する方法はありますでしょうか?
よろしくお願いします。
507名無し~3.EXE
2013/03/17(日) 11:47:53.68ID:abXVSiyx >>506
NTFS自体の機能では大文字小文字混在可能だが、通常のWindows用アプリを使っている限りそれを識別/操作できない、だからWSHでもできない
大文字小文字混在を操作可能なアプリはUNIX ベース アプリケーション用サブシステム配下で動作するUNIX互換アプリのみ
wikipediaに書いてある通り
NTFS自体の機能では大文字小文字混在可能だが、通常のWindows用アプリを使っている限りそれを識別/操作できない、だからWSHでもできない
大文字小文字混在を操作可能なアプリはUNIX ベース アプリケーション用サブシステム配下で動作するUNIX互換アプリのみ
wikipediaに書いてある通り
508名無し~3.EXE
2013/03/17(日) 19:30:43.42ID:ud5w/Y1w >>507
ありがとうございます。
Subsystem for UNIX-based Applications で a.txt と A.txt を作り、
wsh.Exec("%windir%\posix /u /c /bin/cd $HOME; /bin/ls -a *.txt").StdOut.ReadAll()
的な感じで一応 a.txt と A.txt が取得できましたが、SUAインストールしてないと使えないので微妙ですね…
ありがとうございます。
Subsystem for UNIX-based Applications で a.txt と A.txt を作り、
wsh.Exec("%windir%\posix /u /c /bin/cd $HOME; /bin/ls -a *.txt").StdOut.ReadAll()
的な感じで一応 a.txt と A.txt が取得できましたが、SUAインストールしてないと使えないので微妙ですね…
509名無し~3.EXE
2013/03/26(火) 00:09:28.26ID:844tnKSs 無意味だろ
510名無し~3.EXE
2013/04/18(木) 15:21:21.37ID:md9Cvmf3 そういう試み自体は理解できる
dos仕様のほうが異様
dos仕様のほうが異様
511名無し~3.EXE
2013/04/18(木) 17:39:44.15ID:mpULZw/1512名無し~3.EXE
2013/04/18(木) 22:11:57.75ID:j4Qy4o0Q そもそも大文字小文字があるほうが異様
513名無し~3.EXE
2013/04/19(金) 20:20:18.38ID:eE+a4V23 ひらがな、かたかな、みたいなもんかな
514名無し~3.EXE
2013/05/28(火) 22:37:08.99ID:5jK+KVue Windows7にて入力文字をマスクする
CreateObject("ScriptPW.Password")
が使用できなくなってしまったのですが、
他に入力文字のマスクを実現できる手段はありますでしょうか?
CreateObject("ScriptPW.Password")
が使用できなくなってしまったのですが、
他に入力文字のマスクを実現できる手段はありますでしょうか?
515名無し~3.EXE
2013/05/30(木) 21:27:21.96ID:TL0FuuX3516名無し~3.EXE
2013/06/20(木) 11:43:38.31ID:wI6LNwCX 教えてください
set shell = WScript.CreateObject("WScript.Shell")
do until shell.AppActivate("hoge")
WScript.Sleep(100)
loop
このあと shell.SendKeys で hoge ウィンドウを操作したいのですが
AppActivate しているにも関わらず hoge ウィンドウが前面に来ないことがあってランダムに失敗してしまいます
この時タスクバーの hoge ウィンドウアイコンはオレンジに点滅しています
OS は Windows7 で、コンポーネントというのはよく分かりませんが .vbs をバッチファイルから実行しています
よろしくお願いします
set shell = WScript.CreateObject("WScript.Shell")
do until shell.AppActivate("hoge")
WScript.Sleep(100)
loop
このあと shell.SendKeys で hoge ウィンドウを操作したいのですが
AppActivate しているにも関わらず hoge ウィンドウが前面に来ないことがあってランダムに失敗してしまいます
この時タスクバーの hoge ウィンドウアイコンはオレンジに点滅しています
OS は Windows7 で、コンポーネントというのはよく分かりませんが .vbs をバッチファイルから実行しています
よろしくお願いします
517名無し~3.EXE
2013/06/20(木) 11:45:40.80ID:wI6LNwCX age
518名無し~3.EXE
2013/06/21(金) 13:03:28.18ID:iHsgBUb6519名無し~3.EXE
2013/06/21(金) 16:14:55.34ID:X9D3VMgr ちがう
ttp://support.microsoft.com/kb/886217/ja
ttp://support.microsoft.com/kb/886217/ja
520名無し~3.EXE
2013/06/26(水) 19:19:50.57ID:SuSyk5yt 職場のパソコンでアドミ権限がなく、autoItxが入れられないので、
マウスのカーソル位置を設定する実行ファイルと、
マウスをクリックした座標位置をクリップボードに格納する実行ファイルと
左クリックを自動でおこなう実行プログラムを作って
jscript 内から呼び出してみたら、ちきんと動いた。
しばらくは、wshで遊べそう。
あわよくば、仕事の一部を自動化できればありがたい。
マウスのカーソル位置を設定する実行ファイルと、
マウスをクリックした座標位置をクリップボードに格納する実行ファイルと
左クリックを自動でおこなう実行プログラムを作って
jscript 内から呼び出してみたら、ちきんと動いた。
しばらくは、wshで遊べそう。
あわよくば、仕事の一部を自動化できればありがたい。
521名無し~3.EXE
2013/06/27(木) 16:09:50.54ID:ES1eIR0c >>516
Windows7で動いてたWSHが暫く同じ症状、AppActivate異常になっていた。
原因を調べても判らなかったが、今日のWindows7更新で正常動作に戻った。
きっと同じだと思う。
Windows7で動いてたWSHが暫く同じ症状、AppActivate異常になっていた。
原因を調べても判らなかったが、今日のWindows7更新で正常動作に戻った。
きっと同じだと思う。
523520
2013/07/10(水) NY:AN:NY.ANID:TYMFvckH >522
そんなのがあるんやね。サンクス。
職場の情報課で、今度職場に新しいPCを入れるようだが
自動記録、自動実行するソフトも標準で導入してくれればいいなぁ。
サポートを必要とするソフトは極力導入したくないだろうが。
また、間違っても、wshを削除しないことを希望する。
そんなのがあるんやね。サンクス。
職場の情報課で、今度職場に新しいPCを入れるようだが
自動記録、自動実行するソフトも標準で導入してくれればいいなぁ。
サポートを必要とするソフトは極力導入したくないだろうが。
また、間違っても、wshを削除しないことを希望する。
524名無し~3.EXE
2013/07/10(水) NY:AN:NY.ANID:hHP7uB6k 正しく使えれば便利なんだが、皆が皆、正しく使えるとは限らないからね
また、普段は正しく使える人も、100%バグのない完璧なコートを書ける訳じゃないし
場合によっては1つのバグで億単位の損失を出すこともあり得る
そういうこと考えると、ミスっても故意犯で無い限り全額の損害賠償を請求できない
自社員にはそういうものを使わせず、必要が有れば、バグが有れば損害賠償を請求できる外部に
そういったソフトやシステムを委託した方が良いという考えになる
wshなどを使える者としては、COMや自動化ツールなどの導入も自由開放して
存分に活用できればいいのになぁと思うところだろうが、最悪の事態などのリスクまで考えて
決定されている会社の方針には従うのが会社員の義務であり、社会人のマナーだ
まあ中小企業だと、リスクを考えてではなく、良く解らないけど危なそうだからと禁止してる場合もあるだろうけどね
また、普段は正しく使える人も、100%バグのない完璧なコートを書ける訳じゃないし
場合によっては1つのバグで億単位の損失を出すこともあり得る
そういうこと考えると、ミスっても故意犯で無い限り全額の損害賠償を請求できない
自社員にはそういうものを使わせず、必要が有れば、バグが有れば損害賠償を請求できる外部に
そういったソフトやシステムを委託した方が良いという考えになる
wshなどを使える者としては、COMや自動化ツールなどの導入も自由開放して
存分に活用できればいいのになぁと思うところだろうが、最悪の事態などのリスクまで考えて
決定されている会社の方針には従うのが会社員の義務であり、社会人のマナーだ
まあ中小企業だと、リスクを考えてではなく、良く解らないけど危なそうだからと禁止してる場合もあるだろうけどね
525名無し~3.EXE
2013/07/11(木) NY:AN:NY.ANID:jihHuc56 自動化は便利なんだけど、手作業では絶対しないようなバグを作りこんでて
それに気付くのが遅れたりすると悲惨だからなぁ…
それに気付くのが遅れたりすると悲惨だからなぁ…
526名無し~3.EXE
2013/07/11(木) NY:AN:NY.ANID:WbRYJTo+ 人事異動のとき、
各人の力量の差のあるレベルだと
残業時間が違ってくるレベル程度なら
作成したものを一切引き継がないって手段しか残されていないつうか
実際、そうした。
2chにも、無料サポートいい加減にしろ!みたいなスレが昔はあったが
今もあるのかなぁ?
各人の力量の差のあるレベルだと
残業時間が違ってくるレベル程度なら
作成したものを一切引き継がないって手段しか残されていないつうか
実際、そうした。
2chにも、無料サポートいい加減にしろ!みたいなスレが昔はあったが
今もあるのかなぁ?
528名無し~3.EXE
2013/07/18(木) NY:AN:NY.ANID:xOivBrme 新しく作り替えるならまだしも・・・引き継ぎ拒否って単なる怠惰よな
529名無し~3.EXE
2013/07/21(日) NY:AN:NY.ANID:Jrx+BFrY 手作業業務の自動化スクリプトだぞ?引き継がなくても、効率低下を除けば業務に支障は出ない
スクリプトの運用技術は業務範囲を逸脱してるだろうし、運用技術無しで使うのは只の自殺行為
精々使ってたスクリプトを資料として残しておいて、運用技術を持つ人間だけが引き継ぐ程度で良い。
手作業に戻した時に業務に支障が出るレベルの自動化だった場合は……
事情を説明して自動化を正式に(手製または外注で)実装させるか、後任を増員させるかあたりだろう。
どのみちスクリプトの"運用技術"を引き継ぐ必要はないと思うけどな。
スクリプトの運用技術は業務範囲を逸脱してるだろうし、運用技術無しで使うのは只の自殺行為
精々使ってたスクリプトを資料として残しておいて、運用技術を持つ人間だけが引き継ぐ程度で良い。
手作業に戻した時に業務に支障が出るレベルの自動化だった場合は……
事情を説明して自動化を正式に(手製または外注で)実装させるか、後任を増員させるかあたりだろう。
どのみちスクリプトの"運用技術"を引き継ぐ必要はないと思うけどな。
530名無し~3.EXE
2013/07/22(月) NY:AN:NY.ANID:l9ewS8gV 視野が狭いなぁ
531名無し~3.EXE
2013/07/23(火) NY:AN:NY.ANID:kF+P0JKY とりあえず、日本語は若干改善されたようだ
532名無し~3.EXE
2013/07/24(水) NY:AN:NY.ANID:izHOTRoU いや俺(529)は526じゃ無いぞ?
「業務効率が落ちるだけで支障がないなら自動化は引き継がなくても良い」
って所に賛同してるだけだ。
「業務効率が落ちるだけで支障がないなら自動化は引き継がなくても良い」
って所に賛同してるだけだ。
533名無し~3.EXE
2013/08/21(水) NY:AN:NY.ANID:VKPl2+GN >> http://pc8.2ch.net/test/read.cgi/win/1100489339/659
http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.word.document.printout(v=vs.80).aspx
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.word.documentclass.printout(v=office.11).aspx
このあたりにJscriptでの記法もあるよ。
最後のほうに、(c)2013 Microsoft ってあるから2013年になって公開されたのかも。
http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.word.document.printout(v=vs.80).aspx
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.word.documentclass.printout(v=office.11).aspx
このあたりにJscriptでの記法もあるよ。
最後のほうに、(c)2013 Microsoft ってあるから2013年になって公開されたのかも。
534名無し~3.EXE
2013/09/02(月) 20:50:00.27ID:aaG3wk1j TEST
535名無し~3.EXE
2013/10/10(木) 02:37:19.89ID:0aaCd3NF >>533
659 : 名無し~3.EXE[sage] 投稿日:2005/05/12(木) 19:05:23 ID:xGQFP/QE [1/3回]
こんなレス引っ張ってくるならもっと有用な話題あるだろ・・・
いやこのセンスじゃ無理か
659 : 名無し~3.EXE[sage] 投稿日:2005/05/12(木) 19:05:23 ID:xGQFP/QE [1/3回]
こんなレス引っ張ってくるならもっと有用な話題あるだろ・・・
いやこのセンスじゃ無理か
536名無し~3.EXE
2013/10/20(日) 09:25:34.96ID:QZyrn1nr 作成日を変えたいときどうしてる?
537名無し~3.EXE
2013/10/20(日) 15:26:01.69ID:wi+AEHpw 作成日を変えるコードを書いてる
まあ取得するだけみたいに簡単にはいかないけど
まあ取得するだけみたいに簡単にはいかないけど
538名無し~3.EXE
2013/10/22(火) 17:46:00.90ID:0bj2Br2X powershellで簡単
539名無し~3.EXE
2013/10/28(月) 00:29:22.97ID:ROb/yb9H JScriptでActiveXオブジェクトのプロパティ列挙って不可能ですかね?
forin使っても何も出てこないし
forin使っても何も出てこないし
540名無し~3.EXE
2013/10/28(月) 00:50:43.81ID:0xg2V9sv541名無し~3.EXE
2013/10/28(月) 01:09:12.84ID:ROb/yb9H543名無し~3.EXE
2013/10/28(月) 01:33:05.76ID:ROb/yb9H >>542
ActiveXオブジェクトをシリアライズできるなら、そのちょい弄ってを詳しくおながいします
ActiveXオブジェクトをシリアライズできるなら、そのちょい弄ってを詳しくおながいします
545名無し~3.EXE
2013/11/10(日) 00:27:37.61ID:G8/WXFGb WScript.echo(GetObject("winmgmts:root\\cimv2").execquery("select * from win32_process where name='svchost.exe'").count);
上だと正しく数字が表示されるのに、下だと表示されないのはどこがおかしいのですか
var func = function(){GetObject("winmgmts:root\\cimv2").execquery("select * from win32_process where name='svchost.exe'").count;}
WScript.echo(func());
上だと正しく数字が表示されるのに、下だと表示されないのはどこがおかしいのですか
var func = function(){GetObject("winmgmts:root\\cimv2").execquery("select * from win32_process where name='svchost.exe'").count;}
WScript.echo(func());
548名無し~3.EXE
2013/11/12(火) 00:07:05.72ID:wio6Fajt コンソールの環境変数を書き換えたいのですがどうしたらいいのでしょうか?
環境はWinXP SP3です
あくまで現在の環境変数を書き換えたいのでSYSTEMやUSERは不可です
>type test.js
var ws, env;
ws = WScript.CreateObject("WScript.Shell");
env = ws.Environment('VOLATILE');
WScript.echo("1:" + env.Item("foo"));
env.Item("foo") = "ABC";
WScript.echo("2:" + env.Item("foo"));
>set foo
環境変数 foo が定義されていません
>cscript /nologo test.js
1:
2:ABC
>set foo
環境変数 foo が定義されていません
>cscript /nologo test.js
1:ABC
2:ABC
cscriptからfooは見えるのに、コンソールからfooは見えません・・・
よろしくお願いします
環境はWinXP SP3です
あくまで現在の環境変数を書き換えたいのでSYSTEMやUSERは不可です
>type test.js
var ws, env;
ws = WScript.CreateObject("WScript.Shell");
env = ws.Environment('VOLATILE');
WScript.echo("1:" + env.Item("foo"));
env.Item("foo") = "ABC";
WScript.echo("2:" + env.Item("foo"));
>set foo
環境変数 foo が定義されていません
>cscript /nologo test.js
1:
2:ABC
>set foo
環境変数 foo が定義されていません
>cscript /nologo test.js
1:ABC
2:ABC
cscriptからfooは見えるのに、コンソールからfooは見えません・・・
よろしくお願いします
549名無し~3.EXE
2013/11/12(火) 00:28:01.79ID:+gIKuuPP >>548
環境変数はプロセスごとに保持されていて、継承は子プロセスへの一方通行です。
CScriptから環境変数を引き継いで新たにコマンドプロンプトを起動するか、
コマンドプロンプト側で環境変数を設定しなおす必要があります。
方法としては、
・ファイルに環境変数をファイルとして書き出して、親プロセス側からfor /Fやcallで読む
・標準出力に環境変数をテキストとして書き出して、親プロセス側からパイプで読む
等があります。書き出す形式はsetコマンドの形でも構いませんし、for /Fで読みやすい形式でも構いません。
あとはデバッガ的な方法で外側から環境変数を書き換える事も出来る気がしますが全くオススメできません。
環境変数はプロセスごとに保持されていて、継承は子プロセスへの一方通行です。
CScriptから環境変数を引き継いで新たにコマンドプロンプトを起動するか、
コマンドプロンプト側で環境変数を設定しなおす必要があります。
方法としては、
・ファイルに環境変数をファイルとして書き出して、親プロセス側からfor /Fやcallで読む
・標準出力に環境変数をテキストとして書き出して、親プロセス側からパイプで読む
等があります。書き出す形式はsetコマンドの形でも構いませんし、for /Fで読みやすい形式でも構いません。
あとはデバッガ的な方法で外側から環境変数を書き換える事も出来る気がしますが全くオススメできません。
550548
2013/11/12(火) 00:48:54.08ID:wio6Fajt 即レスthx。あぁ・・・なるほど・・・
>type test.js
var ws, env;
ws = WScript.CreateObject("WScript.Shell");
env = ws.Environment('VOLATILE');
WScript.echo("1:" + env.Item("foo"));
env.Item("foo") = "ABC";
WScript.echo("2:" + env.Item("foo"));
ws.run("cmd.exe", 1, true);
>cscript /nologo test.js
1:
2:ABC
※新コンソール
>set foo
環境変数 foo が定義されていません
>cscript test.js
1:ABC
2:ABC
あれ?cscriptには引き継がれるけどコンソールに引き継がれません
どうなっているんだ・・・
美しくないけどバッチファイルに書き出して後で実行するしかないのか?(´・ω・`)
>type test.js
var ws, env;
ws = WScript.CreateObject("WScript.Shell");
env = ws.Environment('VOLATILE');
WScript.echo("1:" + env.Item("foo"));
env.Item("foo") = "ABC";
WScript.echo("2:" + env.Item("foo"));
ws.run("cmd.exe", 1, true);
>cscript /nologo test.js
1:
2:ABC
※新コンソール
>set foo
環境変数 foo が定義されていません
>cscript test.js
1:ABC
2:ABC
あれ?cscriptには引き継がれるけどコンソールに引き継がれません
どうなっているんだ・・・
美しくないけどバッチファイルに書き出して後で実行するしかないのか?(´・ω・`)
551名無し~3.EXE
2013/11/12(火) 01:33:55.42ID:+gIKuuPP Volatileがcmd.exeでは見えなくてプロセスツリー内のcscriptでは見えるってのはよく分らんけど、
この場合env = ws.Environment('PROCESS');でいいんじゃない?
パイプ例…ファイル作るよりはちょっとマシだが美しくはない。
@if(0)==(0) ECHO OFF
for /f "delims== tokens=1,*" %%j in ('CScript.exe //NoLogo //E:JScript "%~f0"') do set %%j=%%k
echo %foo%
pause
goto :EOF
@end
WScript.Echo('foo=ABC=ABC');
この場合env = ws.Environment('PROCESS');でいいんじゃない?
パイプ例…ファイル作るよりはちょっとマシだが美しくはない。
@if(0)==(0) ECHO OFF
for /f "delims== tokens=1,*" %%j in ('CScript.exe //NoLogo //E:JScript "%~f0"') do set %%j=%%k
echo %foo%
pause
goto :EOF
@end
WScript.Echo('foo=ABC=ABC');
552548
2013/11/17(日) 03:16:29.80ID:/2CP9OZ4 レス遅れてすみません
結局バッチファイル渡しとしました
実運用時(WinPEのシェルの初期化)の起動はcmd.exeからではないので
その場でパイプ渡しは難しいためです
試したこと
1.PROCESSに書き込んで新コンソールを起動する
環境変数は期待通りに繁栄されるけどコンソールが常に2枚以上開くので見た目が
美しくないし誤操作の元。WSHインタプリタがシェルになってしまうのも好ましくない
2.USERに書き込む
普通のWinだとcmd.exeが開いたときに繁栄されるけど、WinPEでは繁栄されない。ボツ
3.バッチファイルを生成しcmd.exe /kで起動
何故かオプションがcmd.exeに渡されない。ボツ
4.バッチファイルを生成しAutoRunで起動
ひとまずこれで期待した結果が得られた。美しくないけど背に腹はかえられない
VOLATILEが期待した動作をしてくれればこんな事をする必要は無いんだけどなぁ・・・
結局バッチファイル渡しとしました
実運用時(WinPEのシェルの初期化)の起動はcmd.exeからではないので
その場でパイプ渡しは難しいためです
試したこと
1.PROCESSに書き込んで新コンソールを起動する
環境変数は期待通りに繁栄されるけどコンソールが常に2枚以上開くので見た目が
美しくないし誤操作の元。WSHインタプリタがシェルになってしまうのも好ましくない
2.USERに書き込む
普通のWinだとcmd.exeが開いたときに繁栄されるけど、WinPEでは繁栄されない。ボツ
3.バッチファイルを生成しcmd.exe /kで起動
何故かオプションがcmd.exeに渡されない。ボツ
4.バッチファイルを生成しAutoRunで起動
ひとまずこれで期待した結果が得られた。美しくないけど背に腹はかえられない
VOLATILEが期待した動作をしてくれればこんな事をする必要は無いんだけどなぁ・・・
553名無し~3.EXE
2013/11/17(日) 03:38:40.35ID:JBZjIjNw >>552
試して動かんのもアレだし動く実装が正義だから完全に蛇足だろうけど
> その場でパイプ渡しは難しいためです
WSHではなくパイプ処理を書いたbatファイルを起動して、そっちからWSHを起動すればよい気がするんだけど駄目なんだろうか?
> コンソールが常に2枚以上開く
起動した後はWSH終了してそっちのコンソール閉じれば……
他にも、cscriptじゃなくてwscriptで起動するって手もあるような。
> WSHインタプリタがシェルになってしまう
コンソールが2枚って事はコンソールは分離してるし親プロセスがWSHなだけでシェルはcmd.exeでは?
とか気になった。
試して動かんのもアレだし動く実装が正義だから完全に蛇足だろうけど
> その場でパイプ渡しは難しいためです
WSHではなくパイプ処理を書いたbatファイルを起動して、そっちからWSHを起動すればよい気がするんだけど駄目なんだろうか?
> コンソールが常に2枚以上開く
起動した後はWSH終了してそっちのコンソール閉じれば……
他にも、cscriptじゃなくてwscriptで起動するって手もあるような。
> WSHインタプリタがシェルになってしまう
コンソールが2枚って事はコンソールは分離してるし親プロセスがWSHなだけでシェルはcmd.exeでは?
とか気になった。
554548
2013/11/17(日) 19:54:04.19ID:TU2KoTQO >>553
レスthx
>WSHではなくパイプ処理を書いたbatファイルを起動して、そっちからWSHを起動すればよい気がするんだけど駄目なんだろうか?
その後、追加でcmd.exeが起動する前の初期化をさせたくなりまして
スクリプトを分けると管理が面倒になるので>>552の4みたいな仕様になりました
>起動した後はWSH終了してそっちのコンソール閉じれば……
>他にも、cscriptじゃなくてwscriptで起動するって手もあるような。
>コンソールが2枚って事はコンソールは分離してるし親プロセスがWSHなだけでシェルはcmd.exeでは?
WinPEの場合、シェルに指定されたプロセスが終了するとWinPEがシャットダウンしてしまいます
例えばWSHインタプリタ→cmd.exeと起動してWSHインタプリタを終了するとcmd.exeが残っていても
OSがシャットダウンします
レスthx
>WSHではなくパイプ処理を書いたbatファイルを起動して、そっちからWSHを起動すればよい気がするんだけど駄目なんだろうか?
その後、追加でcmd.exeが起動する前の初期化をさせたくなりまして
スクリプトを分けると管理が面倒になるので>>552の4みたいな仕様になりました
>起動した後はWSH終了してそっちのコンソール閉じれば……
>他にも、cscriptじゃなくてwscriptで起動するって手もあるような。
>コンソールが2枚って事はコンソールは分離してるし親プロセスがWSHなだけでシェルはcmd.exeでは?
WinPEの場合、シェルに指定されたプロセスが終了するとWinPEがシャットダウンしてしまいます
例えばWSHインタプリタ→cmd.exeと起動してWSHインタプリタを終了するとcmd.exeが残っていても
OSがシャットダウンします
555名無し~3.EXE
2013/11/17(日) 20:21:12.91ID:JBZjIjNw556名無し~3.EXE
2013/12/03(火) 01:07:17.85ID:mQOJmqp3 つ setx コマンド
557名無し~3.EXE
2013/12/04(水) 19:16:08.90ID:b1a/MCuJ JScriptでWMI周りをコーディングするのに参考になりそうなWebサイトとかってないですかね?
ググっても出てくるのはVBSばっかり
さらにDB系の経験が全く無い自分にはSQLっぽいクエリ文とか書かれても何をしているのか
全く理解できない・・・orz(そう言うコーディング例が多い)
WMIのクラス?リファレンスもMSのWebサイトのどこにあるのか判らないし・・・
ググっても出てくるのはVBSばっかり
さらにDB系の経験が全く無い自分にはSQLっぽいクエリ文とか書かれても何をしているのか
全く理解できない・・・orz(そう言うコーディング例が多い)
WMIのクラス?リファレンスもMSのWebサイトのどこにあるのか判らないし・・・
558名無し~3.EXE
2013/12/04(水) 21:04:29.54ID:lXQmNau7 >>557
Scriptomatic Version 2.0 by The Microsoft Scripting Guys
あとWindowsSDKの中にもサンプル転がってるっぽい。
SDK入れた後のC:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\SysMgmt\WMI\Scripting\WSH\JScriptとか
Scriptomatic Version 2.0 by The Microsoft Scripting Guys
あとWindowsSDKの中にもサンプル転がってるっぽい。
SDK入れた後のC:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\SysMgmt\WMI\Scripting\WSH\JScriptとか
559名無し~3.EXE
2013/12/04(水) 21:36:19.11ID:RjSD8VJT561557
2013/12/06(金) 07:18:40.26ID:4tTY+9MF レスありがとう
英語はダメだけどがんばってみますorz
英語はダメだけどがんばってみますorz
562名無し~3.EXE
2013/12/09(月) 06:09:14.33ID:aRM1YEm8 VBSでバイナリ操作したくて調べてみたけど、このページの読み取り時のバグが面倒くさすぎる。
ttp://www.isla-plata.org/wiki/pukiwiki.php?ADODB.Stream%A4%CB%A4%E8%A4%EB%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%A5%D0%A5%A4%A5%CA%A5%EA%A5%A2%A5%AF%A5%BB%A5%B9%A1%CA%C4%B4%BA%BA%CA%D4%A1%CB
JSとVBSでバグってる出力の結果が違うからJSでやるしかないみたいだし。
ttp://www.isla-plata.org/wiki/pukiwiki.php?ADODB.Stream%A4%CB%A4%E8%A4%EB%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%A5%D0%A5%A4%A5%CA%A5%EA%A5%A2%A5%AF%A5%BB%A5%B9%A1%CA%C4%B4%BA%BA%CA%D4%A1%CB
JSとVBSでバグってる出力の結果が違うからJSでやるしかないみたいだし。
563名無し~3.EXE
2013/12/09(月) 21:46:10.26ID:LhO4dWSS news.mynavi.jp/articles/2012/11/20/FD/images/001.jpg
こういう感じのインターフェイスって標準機能だけで作れますか?
一覧を表示してキーボードの十字キーとかで項目を選択
みたいなことをしたいです
外部アプリケーションが必要になったりIEでhtmlベースになったりですか?
こういう感じのインターフェイスって標準機能だけで作れますか?
一覧を表示してキーボードの十字キーとかで項目を選択
みたいなことをしたいです
外部アプリケーションが必要になったりIEでhtmlベースになったりですか?
564名無し~3.EXE
2013/12/11(水) 00:49:34.13ID:dRS2pO1C565名無し~3.EXE
2013/12/11(水) 00:55:29.73ID:dRS2pO1C 誤爆スマソ
566名無し~3.EXE
2013/12/12(木) 18:52:13.22ID:26eub4dC >>563
> news.mynavi.jp/articles/2012/11/20/FD/images/001.jpg
> こういう感じのインターフェイスって標準機能だけで作れますか?
標準はDialog程度で、Yes/Noやメッセージ表示ぐらいしかない
> 一覧を表示してキーボードの十字キーとかで項目を選択
> みたいなことをしたいです
> 外部アプリケーションが必要になったりIEでhtmlベースになったりですか?
Yes
> news.mynavi.jp/articles/2012/11/20/FD/images/001.jpg
> こういう感じのインターフェイスって標準機能だけで作れますか?
標準はDialog程度で、Yes/Noやメッセージ表示ぐらいしかない
> 一覧を表示してキーボードの十字キーとかで項目を選択
> みたいなことをしたいです
> 外部アプリケーションが必要になったりIEでhtmlベースになったりですか?
Yes
568名無し~3.EXE
2013/12/13(金) 21:16:37.60ID:o2iTZFGZ PowerShellならカーソル移動できるからイケルと思うぜ
569名無し~3.EXE
2013/12/25(水) 00:25:46.96ID:hFjMLCId 職場のPCがwindows7に更新されたが、
sendkeyにはさむ sleepを長めにしないとキー入力をとりこぼすようで
まんどくさ。
sendkeyにはさむ sleepを長めにしないとキー入力をとりこぼすようで
まんどくさ。
570名無し~3.EXE
2013/12/30(月) 17:01:10.98ID:EDy0BQaD 最初からappactivate判定で待ち合わせろ
571名無し~3.EXE
2014/01/10(金) 23:41:02.13ID:1HPG3rM3 http://okwave.jp/qa/q6809341.html の辺りでしょうか? ありがとさん。
職場のPCは、節電のためか10分経つと、コントロールパネル以外のソフトの機能で
画面が消えて、再び使うには再認証が必要でめんどくさいので、
8分間マウスを動かしていなかったら(マウスの位置読み出しはwsh以外だが)
sendkeys でHOMEキーを送出するようにしたら、再認証不要になって快適になった。
(副作用が全く無いわけではないけど、分かった上で使う分にはおk)
職場のPCは、節電のためか10分経つと、コントロールパネル以外のソフトの機能で
画面が消えて、再び使うには再認証が必要でめんどくさいので、
8分間マウスを動かしていなかったら(マウスの位置読み出しはwsh以外だが)
sendkeys でHOMEキーを送出するようにしたら、再認証不要になって快適になった。
(副作用が全く無いわけではないけど、分かった上で使う分にはおk)
572名無し~3.EXE
2014/01/11(土) 12:45:12.41ID:RKjZjfgC573名無し~3.EXE
2014/01/11(土) 22:38:29.99ID:tut8jvn+ >マウスを擬似的に動かすのが一番副作用が少ないとは思うけど、
言われてみれば、そんな気もします。
wshの出番がなくなりますが、最終的にはその方向ですね。
別のsendkeys を使うwshスクリプトが
想定したタイミングでのsendkeys に失敗した場合に
現状、タスクマネージャーで強制終了してますが
HOMEキー送出と合わせて2つのWscript.exe のタスクが出現することになり
どちらを強制終了すべきなのが分からなくなるので
想定したタイミングでのsendkeys に失敗した場合には
そのwshスクリプトの実行を打ち切るかなんとかする方法を考えなければいけない
ということもあるので
10分以上席を外しておいても再認証不要にするほうは
wsh無しでいくようにするかなあ。
言われてみれば、そんな気もします。
wshの出番がなくなりますが、最終的にはその方向ですね。
別のsendkeys を使うwshスクリプトが
想定したタイミングでのsendkeys に失敗した場合に
現状、タスクマネージャーで強制終了してますが
HOMEキー送出と合わせて2つのWscript.exe のタスクが出現することになり
どちらを強制終了すべきなのが分からなくなるので
想定したタイミングでのsendkeys に失敗した場合には
そのwshスクリプトの実行を打ち切るかなんとかする方法を考えなければいけない
ということもあるので
10分以上席を外しておいても再認証不要にするほうは
wsh無しでいくようにするかなあ。
574名無し~3.EXE
2014/01/12(日) 01:49:25.19ID:HjXkxgYs wscript.timeout=10
とかで打ち切る
とかで打ち切る
575名無し~3.EXE
2014/01/12(日) 11:58:23.86ID:a5kPJ/gt >>571
上手いことやったつもりになってるのかも知れないけど、それを会社の許可取らずに勝手にやってるとしたら
それは社会人として、大人として、最低の行為だよ。話通してるなら、そんな回りくどいことせずに
10分を30分とか60分にする方向で対応するだろうから、おそらく勝手にやってるんだと思うけどね。
うちも昔、ExcelとかのVBAが使えなかったんだけど、こっそりセキュリティーレベルを下げて
勝手にVBA使っちゃうという>>571みたいなことも出来たけど、俺はちゃんと筋を通し
VBA活用した業務システムのサンプルを作ってプレゼンし、正式にVBAの使用を許可されて使ってる。
VBAのことを解っていて意図的に禁止にしているのではなく、解ってないからデフォのマクロ無効にままに
しているだけだろうと思っても、組織の中では筋を通すのが大人のやり方だ。
自宅PCなら、電気代払うのも、セキュリティーが下がったツケを払うのも自分だが
職場ではそれを払わされるのは会社だからね。それで増える電気代なんて些細なものだし
外部の人間が出入りしないから、そこまでのセキュリティーも必要ないってなら
それを主張して改善を求めれば良いだけのこと。それをした上で断られたなら
きちんと理由があって断られたにせよ、相手の理解力が乏しいから解って貰えなかっただけにしろ
会社の方針には従うのが雇われ従業員の義務で、それが嫌なら転職か独立するしかない。
なんて正論言っても、2chでは正論に対して斜に構えて反発する方がカッコイイ的な風潮があるから
逆にこっちがウザいだの長文だのと難癖付けて叩かれたりしそうだけどねw
上手いことやったつもりになってるのかも知れないけど、それを会社の許可取らずに勝手にやってるとしたら
それは社会人として、大人として、最低の行為だよ。話通してるなら、そんな回りくどいことせずに
10分を30分とか60分にする方向で対応するだろうから、おそらく勝手にやってるんだと思うけどね。
うちも昔、ExcelとかのVBAが使えなかったんだけど、こっそりセキュリティーレベルを下げて
勝手にVBA使っちゃうという>>571みたいなことも出来たけど、俺はちゃんと筋を通し
VBA活用した業務システムのサンプルを作ってプレゼンし、正式にVBAの使用を許可されて使ってる。
VBAのことを解っていて意図的に禁止にしているのではなく、解ってないからデフォのマクロ無効にままに
しているだけだろうと思っても、組織の中では筋を通すのが大人のやり方だ。
自宅PCなら、電気代払うのも、セキュリティーが下がったツケを払うのも自分だが
職場ではそれを払わされるのは会社だからね。それで増える電気代なんて些細なものだし
外部の人間が出入りしないから、そこまでのセキュリティーも必要ないってなら
それを主張して改善を求めれば良いだけのこと。それをした上で断られたなら
きちんと理由があって断られたにせよ、相手の理解力が乏しいから解って貰えなかっただけにしろ
会社の方針には従うのが雇われ従業員の義務で、それが嫌なら転職か独立するしかない。
なんて正論言っても、2chでは正論に対して斜に構えて反発する方がカッコイイ的な風潮があるから
逆にこっちがウザいだの長文だのと難癖付けて叩かれたりしそうだけどねw
576名無し~3.EXE
2014/01/12(日) 13:27:57.74ID:2iUJbU11 ウチの職場ではWSHどころかVBAですら「他の人がメンテする際に面倒な事になる」って理由で推奨されてない。
確かにその通りだが、以前どうしても業務にWSHやVBAに頼らざるをえない部分があって、上司を説得するのに苦労したよ。
同じ会社の別の部署では事前に上司に一報入れとけば即OKだったが、そこは仕方ない。
確かにその通りだが、以前どうしても業務にWSHやVBAに頼らざるをえない部分があって、上司を説得するのに苦労したよ。
同じ会社の別の部署では事前に上司に一報入れとけば即OKだったが、そこは仕方ない。
577名無し~3.EXE
2014/01/12(日) 14:06:50.55ID:ydyFH/eR >>575,576
正論ではある。が、管理が適当な会社で下の方だと、そう言う
IT関係の部署の許可を得る事自体が難しかったりする
当然現場のリソースの管理も出来ていないから万年人不足
上は「効率化、効率化」と吠えるが、効率化をするためのリソースは
まともに出ない。そうなると現場はずるをしないと業務が回らない
今の職場だけどね・・・そんなのを長く続けているとそのうち火傷しそう
なので辞めるつもりだけど
これは極端にしても、本社が求めるセキュリティ管理と現場の環境が
完全に一致している職場は今のところ見たことがないな
程度の差はあれ適当にお茶を濁さないと(現場の都合のいいように
解釈して運用する)業務の遂行に支障をきたす場合が多かった
大企業でも孫請けや客先作業だと綱渡りをしていたりするし
正論ではある。が、管理が適当な会社で下の方だと、そう言う
IT関係の部署の許可を得る事自体が難しかったりする
当然現場のリソースの管理も出来ていないから万年人不足
上は「効率化、効率化」と吠えるが、効率化をするためのリソースは
まともに出ない。そうなると現場はずるをしないと業務が回らない
今の職場だけどね・・・そんなのを長く続けているとそのうち火傷しそう
なので辞めるつもりだけど
これは極端にしても、本社が求めるセキュリティ管理と現場の環境が
完全に一致している職場は今のところ見たことがないな
程度の差はあれ適当にお茶を濁さないと(現場の都合のいいように
解釈して運用する)業務の遂行に支障をきたす場合が多かった
大企業でも孫請けや客先作業だと綱渡りをしていたりするし
578名無し~3.EXE
2014/01/13(月) 02:47:07.44ID:bjDcfip/ そもそもその機能は絶対節電のためじゃないから
もし席を外してる隙に誰かにかってに弄られたりしたら責任取れるの?ってことだし
もし席を外してる隙に誰かにかってに弄られたりしたら責任取れるの?ってことだし
580名無し~3.EXE
2014/01/21(火) 17:35:56.87ID:wTIIfMdS IE11にしたらIE.Busyの挙動がおかしくなったわ・・・
自分用だからいいけど仕事で使ってる人はたまらんだろうな
自分用だからいいけど仕事で使ってる人はたまらんだろうな
581名無し~3.EXE
2014/01/24(金) 17:35:07.73ID:qqX4+tyI いないよ
582名無し~3.EXE
2014/01/27(月) 17:28:47.49ID:2F/WrB+e 誰がいないの?
583名無し~3.EXE
2014/01/29(水) 01:02:50.93ID:6l4VCNbt 580の言う「仕事で(IE.Busyを)使ってる人(で、IE11にした人)」だろう
584名無し~3.EXE
2014/01/29(水) 18:25:21.89ID:fNYlkM6M 8.1搭載PC導入すれば自動的にIE11
585名無し~3.EXE
2014/02/27(木) 00:56:57.07ID:Eji7pyZ2 objIE.navigateでオートメーションしてる。
IE9/10の脆弱性、MSがIE11なら安心できるぞとか言ってるけど、
上げたらやっぱスクリプトが壊滅するんだろうな。
IE9/10の脆弱性、MSがIE11なら安心できるぞとか言ってるけど、
上げたらやっぱスクリプトが壊滅するんだろうな。
586名無し~3.EXE
2014/03/06(木) 17:45:30.32ID:ik8ivR1r powershellが出てるというのに、いまさらバッチ⇒wsh書き換えを始めました
バッチでいうところの"%*"=「起動時の全パラメータを表示」をvbscriptでは簡単にかけないでしょうか?
ggったのですが…やっぱり、For eachとかで表示しなきゃだめですか?
バッチでいうところの"%*"=「起動時の全パラメータを表示」をvbscriptでは簡単にかけないでしょうか?
ggったのですが…やっぱり、For eachとかで表示しなきゃだめですか?
587名無し~3.EXE
2014/03/07(金) 02:12:37.60ID:D4aPQwt3 はじめまして WSHを利用したオーディオプレーヤーの表示変更で躓いています
https://dl.dropboxusercontent.com/u/10447545/%E7%84%A1%E9%A1%8C.png
現在「曲タイトル ・タイトルアーティスト名」 とあるのを赤文字の様に
曲時間の前に右詰で表示したいのですが方法がわかりません
W = w - lengthWidth - playCountWidth - ratingW;
var gic = groupItemCounter++;
var itemNr = (((gic) < 10) ? ("0" + (gic)) : (gic));
var title = $("$if(%tracknumber%,%tracknumber%," + itemNr + ".) %title%", metadb);
var titleArtist = $("[ \u25AA $if($greater($len(%album artist%),1),$if($greater($len(%track artist%),1),%track artist%))]", metadb);
if (titleArtist) {
var titleLength = gr.MeasureString(title, titleFont, 0, 0, 0, 0, StringFormat(0, 1, 3, 0x00000800 | 0x1000)).Width;
//var titleArtistLength = gr.MeasureString(track artist, titleArtistFont, 0, 0, 0, 0, StringFormat(0, 1, 3, 0x00000800 | 0x1000)).Width;
var titleArtistFont = gdi.font("Meiryo UI", 11, 0);
gr.DrawString(titleArtist + queue, titleArtistFont, titleArtistColor, x + 10 + titleLength, y, W - 10 - titleLength, h, StringFormat(0, 1, 3, 0x1000));
}
gr.DrawString(title + (titleArtist ? "" : queue), titleFont, titleColor, x + 10, y, W - 10, h, StringFormat(0, 1, 3, 0x1000));
の x + 10 + titleLength を変えればタイトルアーティスト名が移動するのがわかりました
x + 10 + titleLength を W に変更するとちょうどタイトルアーティスト名と曲時間がかぶって表示されますのでそこから
タイトルアーティスト名Lengthを引けば 結果右詰のようになるのかと思うのですがタイトルアーティスト名Lengthの取得法も分からずで行き詰っています
詳しい方アドバイスいただけないでしょうか? よろしくお願いいたします
https://dl.dropboxusercontent.com/u/10447545/%E7%84%A1%E9%A1%8C.png
現在「曲タイトル ・タイトルアーティスト名」 とあるのを赤文字の様に
曲時間の前に右詰で表示したいのですが方法がわかりません
W = w - lengthWidth - playCountWidth - ratingW;
var gic = groupItemCounter++;
var itemNr = (((gic) < 10) ? ("0" + (gic)) : (gic));
var title = $("$if(%tracknumber%,%tracknumber%," + itemNr + ".) %title%", metadb);
var titleArtist = $("[ \u25AA $if($greater($len(%album artist%),1),$if($greater($len(%track artist%),1),%track artist%))]", metadb);
if (titleArtist) {
var titleLength = gr.MeasureString(title, titleFont, 0, 0, 0, 0, StringFormat(0, 1, 3, 0x00000800 | 0x1000)).Width;
//var titleArtistLength = gr.MeasureString(track artist, titleArtistFont, 0, 0, 0, 0, StringFormat(0, 1, 3, 0x00000800 | 0x1000)).Width;
var titleArtistFont = gdi.font("Meiryo UI", 11, 0);
gr.DrawString(titleArtist + queue, titleArtistFont, titleArtistColor, x + 10 + titleLength, y, W - 10 - titleLength, h, StringFormat(0, 1, 3, 0x1000));
}
gr.DrawString(title + (titleArtist ? "" : queue), titleFont, titleColor, x + 10, y, W - 10, h, StringFormat(0, 1, 3, 0x1000));
の x + 10 + titleLength を変えればタイトルアーティスト名が移動するのがわかりました
x + 10 + titleLength を W に変更するとちょうどタイトルアーティスト名と曲時間がかぶって表示されますのでそこから
タイトルアーティスト名Lengthを引けば 結果右詰のようになるのかと思うのですがタイトルアーティスト名Lengthの取得法も分からずで行き詰っています
詳しい方アドバイスいただけないでしょうか? よろしくお願いいたします
588名無し~3.EXE
2014/03/07(金) 02:16:22.10ID:D4aPQwt3589名無し~3.EXE
2014/03/07(金) 07:20:42.99ID:QXUzZnL1 WSH/JScriptで画像?と思ったけど、foobarにWSH Panel Modってのがあるのか…
>>587
grとかgidとかのオブジェクトはWSH自体の機能じゃなくて、
そのオーディオプレイヤー及びプラグインの提供する機能。
周辺の使われ方とJScriptの知識から推測は出来るけど、
素直に環境も提示してから質問した方がいいよ、これは。
例えば、foo_uie_wsh_panel_mod-*/docs/Interfaces.htmlとかあったでしょ?
まぁ取り敢えずはgr.DrawString(titleArtist〜);のところをこうする
var titleArtistLength=gr.MeasureString(titleArtist+queue,titleArtistFont,0,0,0,0,StringFormat(0,1,3,0x00000800|0x1000)).Width;
gr.DrawString(titleArtist+queue,titleArtistFont,titleArtistColor,x+W-titleArtistLength,y,titleArtistLength,h,StringFormat(0,1,3,0x1000));
ただこれだと横幅足りない時に多分文字が被る(未確認)のでこれの二行目をこうする
gr.DrawString(titleArtist+queue,titleArtistFont,titleArtistColor,
(W-titleArtistLength-10-titleLength<0)?(x+10+titleLength):(x+W-titleArtistLength),y,
(W-titleArtistLength-10-titleLength<0)?(W-10-titleLength):(titleArtistLength),h,StringFormat(0,1,3,0x1000));
タイトルの時点で横幅足りない時は元の通り(多分はみ出す)のはず…だけど未確認なんで動くかは知らん
>>587
grとかgidとかのオブジェクトはWSH自体の機能じゃなくて、
そのオーディオプレイヤー及びプラグインの提供する機能。
周辺の使われ方とJScriptの知識から推測は出来るけど、
素直に環境も提示してから質問した方がいいよ、これは。
例えば、foo_uie_wsh_panel_mod-*/docs/Interfaces.htmlとかあったでしょ?
まぁ取り敢えずはgr.DrawString(titleArtist〜);のところをこうする
var titleArtistLength=gr.MeasureString(titleArtist+queue,titleArtistFont,0,0,0,0,StringFormat(0,1,3,0x00000800|0x1000)).Width;
gr.DrawString(titleArtist+queue,titleArtistFont,titleArtistColor,x+W-titleArtistLength,y,titleArtistLength,h,StringFormat(0,1,3,0x1000));
ただこれだと横幅足りない時に多分文字が被る(未確認)のでこれの二行目をこうする
gr.DrawString(titleArtist+queue,titleArtistFont,titleArtistColor,
(W-titleArtistLength-10-titleLength<0)?(x+10+titleLength):(x+W-titleArtistLength),y,
(W-titleArtistLength-10-titleLength<0)?(W-10-titleLength):(titleArtistLength),h,StringFormat(0,1,3,0x1000));
タイトルの時点で横幅足りない時は元の通り(多分はみ出す)のはず…だけど未確認なんで動くかは知らん
590名無し~3.EXE
2014/03/07(金) 10:12:05.60ID:D4aPQwt3 >>589
早速のレスありがとうございます 眠ってしまっていましたすみません
おっしゃる通りfoobarを弄っておりました
これから仕事に出ますので戻り次第、動作報告させていただきます
詳しい内容のれすありがとうございます
取り急ぎのお礼となりますが多くのアドバイスに感謝いたします m(_ _)m
早速のレスありがとうございます 眠ってしまっていましたすみません
おっしゃる通りfoobarを弄っておりました
これから仕事に出ますので戻り次第、動作報告させていただきます
詳しい内容のれすありがとうございます
取り急ぎのお礼となりますが多くのアドバイスに感謝いたします m(_ _)m
591名無し~3.EXE
2014/03/07(金) 18:57:18.18ID:D4aPQwt3 >>589
こんばんは、教えていただいた様に記述すると見事、希望の表示となりました。
感謝感激であります 素晴らしいです
http://uploda.cc/img/img531996d70acb8.png
この様にプログラミング言語を理解されている方を本当に尊敬いたします
私も少しで理解できるよう勉強していきたいと思います
大変勉強になりました お世話になりました ありがとうございます m(_ _)m
こんばんは、教えていただいた様に記述すると見事、希望の表示となりました。
感謝感激であります 素晴らしいです
http://uploda.cc/img/img531996d70acb8.png
この様にプログラミング言語を理解されている方を本当に尊敬いたします
私も少しで理解できるよう勉強していきたいと思います
大変勉強になりました お世話になりました ありがとうございます m(_ _)m
592名無し~3.EXE
2014/03/07(金) 19:50:09.28ID:ACaqx7cc オプションを指定したショートカットファイルへ適当なファイルをドラッグアンドドロップしたときに
named と unnamed プロパティが表示されません。
下のスクリプトを WSF にして、それのショートカットをつくって"リンク先"にオプションを追加しました。
ショートカットを実行すると named が表示されて期待通りなのですが、
ショーカットにファイルをドラッグアンドドロップすると unnamed しか表示されません。
コマンドプロンプトで「このショートカットファイル 適当なファイル」を実行すると
期待通りに named と unnamed が表示されます。
ショートカットファイルを「cscript //nologo file.wsf /aaa」にして、
それにファイルをドラッグアンドドロップすると期待通りに動きます。(wscriptも同様です)
スクリプトへのショートカットで動かしたいのですがどうにかならないでしょうか。
やはり cscript から指定するしかないのでしょうか。
<?XML version="1.0" standalone="yes" encoding="Shift_JIS" ?>
<job>
<script language="VBScript"><![CDATA[
Set Args=WScript.Arguments
if args.named.count>0 then
for each f in args.named
Wscript.Echo "named="&f
next
end if
if args.unnamed.count>0 then
for each f in args.unnamed
Wscript.Echo "unnamed="&f
next
end if
]]></script>
</job>
named と unnamed プロパティが表示されません。
下のスクリプトを WSF にして、それのショートカットをつくって"リンク先"にオプションを追加しました。
ショートカットを実行すると named が表示されて期待通りなのですが、
ショーカットにファイルをドラッグアンドドロップすると unnamed しか表示されません。
コマンドプロンプトで「このショートカットファイル 適当なファイル」を実行すると
期待通りに named と unnamed が表示されます。
ショートカットファイルを「cscript //nologo file.wsf /aaa」にして、
それにファイルをドラッグアンドドロップすると期待通りに動きます。(wscriptも同様です)
スクリプトへのショートカットで動かしたいのですがどうにかならないでしょうか。
やはり cscript から指定するしかないのでしょうか。
<?XML version="1.0" standalone="yes" encoding="Shift_JIS" ?>
<job>
<script language="VBScript"><![CDATA[
Set Args=WScript.Arguments
if args.named.count>0 then
for each f in args.named
Wscript.Echo "named="&f
next
end if
if args.unnamed.count>0 then
for each f in args.unnamed
Wscript.Echo "unnamed="&f
next
end if
]]></script>
</job>
593名無し~3.EXE
2014/03/07(金) 20:29:44.76ID:ACaqx7cc594名無し~3.EXE
2014/03/07(金) 20:43:11.69ID:R/i8eMRA JScriptで実行しているコンソール画面の消去やカーソルの移動を行う方法が
あったら教えてください。ANSIエスケープシーケンスが使えないので代替手段を
探しています。tailもどきみたいなツールを作りたいです
あったら教えてください。ANSIエスケープシーケンスが使えないので代替手段を
探しています。tailもどきみたいなツールを作りたいです
595名無し~3.EXE
2014/03/09(日) 00:04:08.12ID:AC1x3CVd >586
join ではダメなん?
join ではダメなん?
596586
2014/03/09(日) 20:57:07.19ID:fvfMSQ5P >>595
低レベルな相談にアドバイスをありがとうございます
joinを以下のように使ってみたのですが、エラーになってしまいました
set objArgs = Wscript.Arguments
Wscript.Echo Join(objArgs, " ")
実行
>cscript test.vbs aaa bbb ccc ddd
test.vbs(2, 1) Microsoft VBScript 実行時エラー: 引数の数が
一致していません。または不正なプロパティを指定しています。
Join関数の中のobjArgsをobjArgs.Itemにしても同じエラーでした
オブジェクト型?だとダメなんですかね
しかしよく考えたら、どうせパラメータ解析を行うときにFor Eachするので
そこでついでにつなぎ合わせて表示すれば良いことが判りました。ハズカシイ///
失礼しました
低レベルな相談にアドバイスをありがとうございます
joinを以下のように使ってみたのですが、エラーになってしまいました
set objArgs = Wscript.Arguments
Wscript.Echo Join(objArgs, " ")
実行
>cscript test.vbs aaa bbb ccc ddd
test.vbs(2, 1) Microsoft VBScript 実行時エラー: 引数の数が
一致していません。または不正なプロパティを指定しています。
Join関数の中のobjArgsをobjArgs.Itemにしても同じエラーでした
オブジェクト型?だとダメなんですかね
しかしよく考えたら、どうせパラメータ解析を行うときにFor Eachするので
そこでついでにつなぎ合わせて表示すれば良いことが判りました。ハズカシイ///
失礼しました
597名無し~3.EXE
2014/03/10(月) 01:34:08.42ID:odCUQACu wsh はハードウェアを直接たたけないので高レベルだが、何か?
598名無し~3.EXE
2014/03/18(火) 01:58:31.54ID:8JSsnlcw Win7です
特定のフォルダ1つの中に、沢山のサブフォルダが100個単位であります
そことは違う場所に複数のファイルがあり、こいつらをさっきのサブフォルダにコピーや移動して整理したい
選択された個々のファイル名から、どのサブフォルダにコピー・移動すべきかはほぼ自動で決まります
ただ、沢山のサブフォルダ群から目的のサブフォルダを探し出すのが面倒なので、それを自動化したい
しかし、Win7のエクスプローラの操作感(上書き確認や別名でコピーなどの選択肢がサムネイルと日時付きで選べる)は
そのまま生かしたい
こういう場合にWSHは使えるでしょうか?
FileSystemObject の CopyFile を使うとデフォルトで上書きされてしまうようで、不都合です
他のオブジェクトのメソッドで、エクスプローラのあのダイアログを使えるようなものはないでしょうか?
特定のフォルダ1つの中に、沢山のサブフォルダが100個単位であります
そことは違う場所に複数のファイルがあり、こいつらをさっきのサブフォルダにコピーや移動して整理したい
選択された個々のファイル名から、どのサブフォルダにコピー・移動すべきかはほぼ自動で決まります
ただ、沢山のサブフォルダ群から目的のサブフォルダを探し出すのが面倒なので、それを自動化したい
しかし、Win7のエクスプローラの操作感(上書き確認や別名でコピーなどの選択肢がサムネイルと日時付きで選べる)は
そのまま生かしたい
こういう場合にWSHは使えるでしょうか?
FileSystemObject の CopyFile を使うとデフォルトで上書きされてしまうようで、不都合です
他のオブジェクトのメソッドで、エクスプローラのあのダイアログを使えるようなものはないでしょうか?
599名無し~3.EXE
2014/03/18(火) 07:01:19.59ID:7hnQmGRM これででるんだっけ?
ttp://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx
ttp://www.happy2-island.com/vbs/cafe02/capter00304.shtml
ttp://d.hatena.ne.jp/miya2000/20061211/1165806376
ttp://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx
ttp://www.happy2-island.com/vbs/cafe02/capter00304.shtml
ttp://d.hatena.ne.jp/miya2000/20061211/1165806376
601名無し~3.EXE
2014/03/18(火) 20:34:54.00ID:0kW9Tn2n >>599
フォルダまるごと、あるいは1個のファイルのコピーならば CopyHere が使えました
ありがとうございました
ただ、たとえばSendToにvbsファイルを登録して複数個のファイルのコピーをしようとすると
CopyHereの引数に複数ファイルを指定するやり方がググってみてもよく分からないため、
ループを回して1個ずつ個別にコピーしなければならず、
エクスプローラの「同じ処理を○個の競合に適用」が使えません
CopyHere に複数のファイルを渡すにはどうしたらよいのでしょうか?
フォルダまるごと、あるいは1個のファイルのコピーならば CopyHere が使えました
ありがとうございました
ただ、たとえばSendToにvbsファイルを登録して複数個のファイルのコピーをしようとすると
CopyHereの引数に複数ファイルを指定するやり方がググってみてもよく分からないため、
ループを回して1個ずつ個別にコピーしなければならず、
エクスプローラの「同じ処理を○個の競合に適用」が使えません
CopyHere に複数のファイルを渡すにはどうしたらよいのでしょうか?
602名無し~3.EXE
2014/03/18(火) 21:49:20.42ID:0kW9Tn2n エクスプローラの「同じ処理を○個の競合に適用」が使えなくても
とりあえず使えればいいかな、と(テスト環境でなく)実際の環境で実践してみた結果・・・
「実行できません。引数一覧が長すぎます。」
Oh・・・こんな仕様があったとは・・・orz
とりあえず使えればいいかな、と(テスト環境でなく)実際の環境で実践してみた結果・・・
「実行できません。引数一覧が長すぎます。」
Oh・・・こんな仕様があったとは・・・orz
603名無し~3.EXE
2014/03/19(水) 11:17:44.83ID:sxeZPubB 事後報告
「送る」で多くのファイルをWSHに受け取るのは仕様上無理?っぽいので
結局WSHは諦めて、C#を使って↓のを参考に
クリップボードでファイルの受け渡し、コピー・移動は SHFileOperation を呼び出すことにしました・・・
ttp://uchukamen.com/Programming1/ToRecycleBin/
ttp://dobon.net/vb/dotnet/file/copyfiletoclipboard.html
「送る」で多くのファイルをWSHに受け取るのは仕様上無理?っぽいので
結局WSHは諦めて、C#を使って↓のを参考に
クリップボードでファイルの受け渡し、コピー・移動は SHFileOperation を呼び出すことにしました・・・
ttp://uchukamen.com/Programming1/ToRecycleBin/
ttp://dobon.net/vb/dotnet/file/copyfiletoclipboard.html
604名無し~3.EXE
2014/03/19(水) 20:36:52.43ID:WSz9wMSM プログラム初心者です。
しょうもない質問で申し訳ないのですが、ご教授願います。
定時にアラートを鳴らす下記のスクリプト、二回目のポップアップ以降
タスクバーに隠れてしまいます。
OKが押されるまでポップアップを出し続けるにはどうすればよいでしょうか?
OSはWindows7です。
よろしくお願いします。
strSoundFile="C:\Windows\Media\alert.wav"
Set objShell = CreateObject("Wscript.Shell")
Do While True
objShell.Run strSoundFile,0,True
If objShell.Popup("早く!", 3, "時間だよ", vbOKOnly) = 1 Then Exit Do
Loop
しょうもない質問で申し訳ないのですが、ご教授願います。
定時にアラートを鳴らす下記のスクリプト、二回目のポップアップ以降
タスクバーに隠れてしまいます。
OKが押されるまでポップアップを出し続けるにはどうすればよいでしょうか?
OSはWindows7です。
よろしくお願いします。
strSoundFile="C:\Windows\Media\alert.wav"
Set objShell = CreateObject("Wscript.Shell")
Do While True
objShell.Run strSoundFile,0,True
If objShell.Popup("早く!", 3, "時間だよ", vbOKOnly) = 1 Then Exit Do
Loop
605名無し~3.EXE
2014/03/19(水) 20:45:51.46ID:fmho9aI2 逆に考えるんだ
.popupって時間制限で消えるようにできるだろ?
戻り値が0にならない限り何度でも現れ直すようにすればいいだろ
.popupって時間制限で消えるようにできるだろ?
戻り値が0にならない限り何度でも現れ直すようにすればいいだろ
606名無し~3.EXE
2014/03/19(水) 20:47:03.25ID:fmho9aI2 ってすまん
そういう風にしてるのか
だとすればサウンドを鳴らすだけのスクリプトを別に作っていちいち起動するようにするとかか?
そういう風にしてるのか
だとすればサウンドを鳴らすだけのスクリプトを別に作っていちいち起動するようにするとかか?
607名無し~3.EXE
2014/03/19(水) 20:53:07.89ID:WSz9wMSM608名無し~3.EXE
2014/03/22(土) 23:52:20.61ID:Z7dMfY4M If objShell.Popup("早く!", 3, "時間だよ", vbOKOnly+4096) = 1 Then Exit Do
610名無し~3.EXE
2014/03/23(日) 18:28:06.03ID:IwD5u7Na >>608
PopupってMB_SYSTEMMODAL(4096)とかのメッセージボックス用フラグも効くのか!
てことは
MB_DEFBUTTON1(0)、MB_DEFBUTTON2(256)、
MB_DEFBUTTON3(512)、MB_DEFBUTTON4(768)、
MB_SYSTEMMODAL(4096)、MB_SETFOREGROUND(65536)、MB_TOPMOST(262144)、
MB_RIGHT(524288)、MB_RTLREADING(1048576)
このへんも使えるんだな。知らんかった
PopupってMB_SYSTEMMODAL(4096)とかのメッセージボックス用フラグも効くのか!
てことは
MB_DEFBUTTON1(0)、MB_DEFBUTTON2(256)、
MB_DEFBUTTON3(512)、MB_DEFBUTTON4(768)、
MB_SYSTEMMODAL(4096)、MB_SETFOREGROUND(65536)、MB_TOPMOST(262144)、
MB_RIGHT(524288)、MB_RTLREADING(1048576)
このへんも使えるんだな。知らんかった
611名無し~3.EXE
2014/03/23(日) 20:31:45.36ID:maZS4sl1612名無し~3.EXE
2014/03/23(日) 20:59:53.06ID:IwD5u7Na >>611
64以下のはMSDNとかにも記載があるけど他は…と思ったら
> natType の意味は、Microsoft Win32R アプリケーション プログラミング インターフェイスの MessageBox 関数で指定するものと同じです。
ちゃんとscript56.chmにも記載があったのね…見落としてたわ
64以下のはMSDNとかにも記載があるけど他は…と思ったら
> natType の意味は、Microsoft Win32R アプリケーション プログラミング インターフェイスの MessageBox 関数で指定するものと同じです。
ちゃんとscript56.chmにも記載があったのね…見落としてたわ
613名無し~3.EXE
2014/03/27(木) 04:31:30.42ID:2jCw5Ktt ScriptFormをダウンロードできるサイト知りませんか?
誰かアプロダにでも上げてもらえないでしょうか
誰かアプロダにでも上げてもらえないでしょうか
614名無し~3.EXE
2014/03/28(金) 01:33:53.75ID:61c3+d+I ググってもなんとか見つかるぞ
使い方:ttp://homepage2.nifty.com/pasocon/tanken/form.html
同梱してる事の確認:ttp://park15.wakwak.com/~ironrose/personalize.html
同梱してる物の入手:ttp://park15.wakwak.com/~ironrose/details.html
使い方:ttp://homepage2.nifty.com/pasocon/tanken/form.html
同梱してる事の確認:ttp://park15.wakwak.com/~ironrose/personalize.html
同梱してる物の入手:ttp://park15.wakwak.com/~ironrose/details.html
616名無し~3.EXE
2014/03/31(月) 23:24:43.55ID:cttL3XFr IE11でbusyとReadyStateがサポートされなくなったらしいですけどうすればいいですか?
よく使われてる以下のようなWaitLoad関数が駄目になって困ってます
環境はWin8.1、IE11です
よく使われてる以下のようなWaitLoad関数が駄目になって困ってます
環境はWin8.1、IE11です
617名無し~3.EXE
2014/03/31(月) 23:25:59.99ID:cttL3XFr //グーグルとこのスレ繰り返し開くだけのJSスクリプトです。
//1回目のループは上手く行くのに2回目のグーグルを開いた時に止まってしまいます。
var IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
for(;;){//終了処理なしです
IE.Navigate("https://www.google.co.jp/");
WaitLoad();//2回目のここで止まる
IE.Navigate("http://toro.2ch.net/test/read.cgi/win/1292764835/");
WaitLoad();
}
function WaitLoad() {
var stat, dstart;
stat = 0;
while(true)
if(stat == 0) {
if(!IE.Busy)
if(IE.Document.readyState == "complete") {
dstart = (new Date()).getTime();
stat = 1;
}
}
else {
if(!IE.Busy &&
IE.Document.readyState == "complete") {
if((new Date()).getTime() >= dstart + 1000)//止まった時にブラウザを落とすとこの行でエラーになってる
break;
}
else
stat = 0;
}
}
//1回目のループは上手く行くのに2回目のグーグルを開いた時に止まってしまいます。
var IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
for(;;){//終了処理なしです
IE.Navigate("https://www.google.co.jp/");
WaitLoad();//2回目のここで止まる
IE.Navigate("http://toro.2ch.net/test/read.cgi/win/1292764835/");
WaitLoad();
}
function WaitLoad() {
var stat, dstart;
stat = 0;
while(true)
if(stat == 0) {
if(!IE.Busy)
if(IE.Document.readyState == "complete") {
dstart = (new Date()).getTime();
stat = 1;
}
}
else {
if(!IE.Busy &&
IE.Document.readyState == "complete") {
if((new Date()).getTime() >= dstart + 1000)//止まった時にブラウザを落とすとこの行でエラーになってる
break;
}
else
stat = 0;
}
}
618名無し~3.EXE
2014/04/01(火) 02:23:12.74ID:QoieXD0A デバッグしろと?
619名無し~3.EXE
2014/04/01(火) 15:22:55.15ID:KGWb56X2 下のはWin8.1、IE11の32/64bit両方で動いたよ
var IE = WScript.CreateObject('InternetExplorer.Application');
IE.Visible = true;
for (;;) {
IE.Navigate('https://www.google.co.jp/');
wait(IE);
IE.Navigate('http://toro.2ch.net/test/read.cgi/win/1292764835/');
wait(IE);
}
function wait(IE) {
WScript.Sleep(100);
while (IE.busy) WScript.Sleep(100);
while (IE.document.readyState !== 'complete') WScript.Sleep(100);
}
var IE = WScript.CreateObject('InternetExplorer.Application');
IE.Visible = true;
for (;;) {
IE.Navigate('https://www.google.co.jp/');
wait(IE);
IE.Navigate('http://toro.2ch.net/test/read.cgi/win/1292764835/');
wait(IE);
}
function wait(IE) {
WScript.Sleep(100);
while (IE.busy) WScript.Sleep(100);
while (IE.document.readyState !== 'complete') WScript.Sleep(100);
}
620名無し~3.EXE
2014/04/01(火) 20:20:02.45ID:yNr0R4Jw >>619
ありがとうございます。動きました。使わせてもらいます。
ただWScript.Sleep(100);の部分が短すぎるので
1000にしたところ上記と同じように止まってしまうのが不可解です
あと記載を忘れてましたがOSとIE11はインストールしたばかりで設定をいじってません
IE11でbusyとReadyStateがサポートされてない件は他の方も困ってるみたいです
http://www.moug.net/faq/viewtopic.php?t=67866
http://www.moug.net/faq/viewtopic.php?t=67282
http://d.hatena.ne.jp/O_Kohsuke/20131103/1383476948
ありがとうございます。動きました。使わせてもらいます。
ただWScript.Sleep(100);の部分が短すぎるので
1000にしたところ上記と同じように止まってしまうのが不可解です
あと記載を忘れてましたがOSとIE11はインストールしたばかりで設定をいじってません
IE11でbusyとReadyStateがサポートされてない件は他の方も困ってるみたいです
http://www.moug.net/faq/viewtopic.php?t=67866
http://www.moug.net/faq/viewtopic.php?t=67282
http://d.hatena.ne.jp/O_Kohsuke/20131103/1383476948
621名無し~3.EXE
2014/04/01(火) 21:10:26.71ID:yNr0R4Jw もう一つ、上記サイトに言及のある拡張保護モードか、保護モードを無効にしても同じ所で止まります
622名無し~3.EXE
2014/04/01(火) 21:35:14.14ID:2YVuc9Gt623名無し~3.EXE
2014/04/02(水) 03:59:22.30ID:PW6w/sWY 使ってる奴が居る以上誰得って言い方で切り捨ては出来ねぇと思うけどなぁ…
624名無し~3.EXE
2014/04/08(火) 23:52:31.58ID:D4TzPxaZ windows7に移行したら、XPで動いてたvbsがうまく動かない
具体的には
・msgboxが最前に出てこなくなった
・Appactivateの効きが悪い気がする
なんか対策ありませんでしょうか
具体的には
・msgboxが最前に出てこなくなった
・Appactivateの効きが悪い気がする
なんか対策ありませんでしょうか
625名無し~3.EXE
2014/04/09(水) 02:06:18.35ID:IEtgoGKr626名無し~3.EXE
2014/04/09(水) 21:42:25.69ID:MDutfYCP ありがとうございます。なんかいろいろできるんですね
もう少し研究してみます
win7もIE9もキライ
もう少し研究してみます
win7もIE9もキライ
628名無し~3.EXE
2014/04/11(金) 06:18:12.18ID:iUTXG8Bc まぁwsh窓際だからね・・・
629名無し~3.EXE
2014/04/19(土) 10:17:00.95ID:oDZvbVi3 wsh/jscript/win7SP1-64bit
で、普通の機動、または休止状態からの機動、またはスリープからの機動を判別するサンプルプログラムはありますか?
やりたいことは、PCの上記の機動時に、ブルーデーディスクの残りHDD容量の推定値を表示できればいいかなぁと。
各曜日のディスク使用推定量は自分で入力するとして。
で、普通の機動、または休止状態からの機動、またはスリープからの機動を判別するサンプルプログラムはありますか?
やりたいことは、PCの上記の機動時に、ブルーデーディスクの残りHDD容量の推定値を表示できればいいかなぁと。
各曜日のディスク使用推定量は自分で入力するとして。
630名無し~3.EXE
2014/04/19(土) 16:12:52.50ID:qTxSEapj ブルーデーでググってみてごらん
631名無し~3.EXE
2014/04/19(土) 16:29:55.53ID:C0hSChOr 普通の機動、または休止状態からの機動、またはスリープからの機動
にクスっときた
にクスっときた
632名無し~3.EXE
2014/04/19(土) 17:12:47.57ID:D/gd45tC WSH全然関係ないけどタスクスケジューラで
USBデバイスからの復帰をトリガーとして起動するタスクなんてものもあるけどな
USBデバイスからの復帰をトリガーとして起動するタスクなんてものもあるけどな
633名無し~3.EXE
2014/04/28(月) 10:40:52.56ID:DICVXVj1 DOSバッチまたはWSHでメインフレームのSYSINデータセットみたいなことできませんか?
SYSINにVBScriptのソースを書いて、cscriptでそれを実行するとか、
SYSINにFTPのコマンドを書いて、FTP.exeに読ませるとか、
SYSINに適当な入力データを書いて、SYSINをtextファイルとして読み込むようなことをしたい。
SYSIN部分を別ファイルにすれば可能ですが、1個のファイルにしたくて。
ファイルのイメージ
---------- test.bat or test.vbs -------------
//SYSIN DD *
適当な入力データ
//
DOS/VBScriptのコマンドを書いてSYSINをtextファイルとして読み込む
---------- test.bat or test.vbs -------------
SYSINにVBScriptのソースを書いて、cscriptでそれを実行するとか、
SYSINにFTPのコマンドを書いて、FTP.exeに読ませるとか、
SYSINに適当な入力データを書いて、SYSINをtextファイルとして読み込むようなことをしたい。
SYSIN部分を別ファイルにすれば可能ですが、1個のファイルにしたくて。
ファイルのイメージ
---------- test.bat or test.vbs -------------
//SYSIN DD *
適当な入力データ
//
DOS/VBScriptのコマンドを書いてSYSINをtextファイルとして読み込む
---------- test.bat or test.vbs -------------
634名無し~3.EXE
2014/04/28(月) 13:00:04.87ID:ev/jr+Zm >633
WSHなら WScript.StdIn を使えばいいと思う
WSHなら WScript.StdIn を使えばいいと思う
635名無し~3.EXE
2014/04/29(火) 03:39:47.60ID:8ypvRdMf >>633
意識しないでデータを読みこむのは無理だと思うので、データ部分はコメント扱いされて実行されないようにしといて、
データを読み込むプロシージャを作成すれば良いんじゃないかな
【例】 batの場合はデータ部分を読み飛ばして、for文でデータを読み込む
@goto :proc
//SYSIN DD *
適当な入力データ
//
:proc
@echo off
for /f "skip=2 tokens=*" %%i in (%~f0) do (
set data=%%i
if "%%i" equ "//" goto :eof
call :output
)
goto :eof
:output
echo %data%
goto :eof
【例2】 jscriptの場合
if (0)
//SYSIN DD *
適当な入力データ
//
@end
処理スクリプト
【例3】 vbscriptの場合
jscriptの@if、@endの替わりにif false then、end ifを使う
意識しないでデータを読みこむのは無理だと思うので、データ部分はコメント扱いされて実行されないようにしといて、
データを読み込むプロシージャを作成すれば良いんじゃないかな
【例】 batの場合はデータ部分を読み飛ばして、for文でデータを読み込む
@goto :proc
//SYSIN DD *
適当な入力データ
//
:proc
@echo off
for /f "skip=2 tokens=*" %%i in (%~f0) do (
set data=%%i
if "%%i" equ "//" goto :eof
call :output
)
goto :eof
:output
echo %data%
goto :eof
【例2】 jscriptの場合
if (0)
//SYSIN DD *
適当な入力データ
//
@end
処理スクリプト
【例3】 vbscriptの場合
jscriptの@if、@endの替わりにif false then、end ifを使う
636名無し~3.EXE
2014/04/29(火) 13:38:55.32ID:rabqrtPg637名無し~3.EXE
2014/04/29(火) 21:41:23.74ID:+pl4bZp4 >>634-636
Thanksです。
バッチとかスクリプトのファイルの中に、入力データを書きたかったのです。
数文字程度なら、バッチの環境変数で渡すて出来そうですが、
複数行の文章だとどうしても出来なくて。
昔仕事でやってたM/FのJCL文はそういうことができててよかったなあと。
resourceが一番自分の思ってるに近そうです。
Thanksです。
バッチとかスクリプトのファイルの中に、入力データを書きたかったのです。
数文字程度なら、バッチの環境変数で渡すて出来そうですが、
複数行の文章だとどうしても出来なくて。
昔仕事でやってたM/FのJCL文はそういうことができててよかったなあと。
resourceが一番自分の思ってるに近そうです。
638名無し~3.EXE
2014/04/29(火) 23:22:16.38ID:gKZrgnV9 JScriptだと(function(){/*〜〜〜〜*/}).toString();で楽にヒアドキュメントモドキができるんだけどね。
640名無し~3.EXE
2014/05/17(土) 18:50:28.98ID:ftkNQf89 //SYSIN DD *
641名無し~3.EXE
2014/05/24(土) 10:06:34.87ID:4leeigTu WSHで画面のバックライトを消す方法ってありますか?
その手のツールやWin32APIを叩ける処理系使えば
できるのですがWin標準機能で出来る方法があれば・・・
その手のツールやWin32APIを叩ける処理系使えば
できるのですがWin標準機能で出来る方法があれば・・・
642名無し~3.EXE
2014/05/24(土) 10:23:35.39ID:uPytOxyo >641
↓この1行でWindows標準のブランクスクリーンセーバーを起動できるけど、これじゃダメかな?
CreateObject("WScript.Shell").Run "C:\Windows\System32\scrnsave.scr"
↓この1行でWindows標準のブランクスクリーンセーバーを起動できるけど、これじゃダメかな?
CreateObject("WScript.Shell").Run "C:\Windows\System32\scrnsave.scr"
643名無し~3.EXE
2014/05/29(木) 07:27:28.06ID:8DqbD5RS スクリーンセイバーでは、画面は暗く出来てもバックライトは消えないでしょ
つまり、消費電力低下もバックライト寿命延長も望めない
「画面を暗く」とかではなく、わざわざ「バックライトを」と言ってるって事は、そういうのが目的だと思われ
つまり、消費電力低下もバックライト寿命延長も望めない
「画面を暗く」とかではなく、わざわざ「バックライトを」と言ってるって事は、そういうのが目的だと思われ
644名無し~3.EXE
2014/05/29(木) 20:15:23.71ID:mpz900sV ついでに細かいことを言うと、液晶モニタでは黒画面にすると
消費電力が増える場合がある。
ttp://www.itmedia.co.jp/pcuser/articles/1105/25/news001.html
ttp://www.excite.co.jp/News/bit/E1238429157129.html
消費電力が増える場合がある。
ttp://www.itmedia.co.jp/pcuser/articles/1105/25/news001.html
ttp://www.excite.co.jp/News/bit/E1238429157129.html
645名無し~3.EXE
2014/07/03(木) 14:13:08.65ID:puDVYchs wsh cscript ってみんな使っているの?
どうもとっつきにくい
原因の一つは、予約語の長ったらしさと別ワールド感にあるような気がする。
バッチでだめならrubyでやってしまうもんな
どうもとっつきにくい
原因の一つは、予約語の長ったらしさと別ワールド感にあるような気がする。
バッチでだめならrubyでやってしまうもんな
646名無し~3.EXE
2014/07/03(木) 15:15:13.58ID:jNTLinbp WSHは事実上のWindows標準機能になって十数年経つし、
昔のWin95やWinNT4.0でも修正せず正常に実行できるものを手軽に作れる。
(それに対してバッチファイルはWin9x系とWinNT系での違いが特に大きいから、環境変数%OS%の値が
"NT"か空欄かで処理を分岐させなければならない場合が少なくない)
そういう点で他のスクリプト言語より随分とっつきやすいと思うが
昔のWin95やWinNT4.0でも修正せず正常に実行できるものを手軽に作れる。
(それに対してバッチファイルはWin9x系とWinNT系での違いが特に大きいから、環境変数%OS%の値が
"NT"か空欄かで処理を分岐させなければならない場合が少なくない)
そういう点で他のスクリプト言語より随分とっつきやすいと思うが
647名無し~3.EXE
2014/07/04(金) 21:25:06.89ID:noH+Nmwl どのWinでも動くメリットは大きい。会社のPCでも気軽に使えるし
でもバイナリファイルの扱いに難があるのはしばしば困る
あとこれはWSHに限ったことではないけどRubyと比べるとコードが
冗長化しやすい
でもバイナリファイルの扱いに難があるのはしばしば困る
あとこれはWSHに限ったことではないけどRubyと比べるとコードが
冗長化しやすい
648名無し~3.EXE
2014/07/04(金) 21:43:53.99ID:t8oKZxzN バイナリファイルだって扱えないってわけじゃないし、それほど面倒lくさいってほどでもないと思う
649名無し~3.EXE
2014/07/04(金) 22:00:52.84ID:noH+Nmwl ADODB.Streamはアンチウィルスソフトが騒ぐから使いにくい
650名無し~3.EXE
2014/07/05(土) 04:26:07.22ID:X4/wk4Kp それは環境依存の問題だろw
環境依存の問題を、WSHの問題であるかのように言う奴はアフォ
全てのアンチウィルスソフトがADODB.Streamに反応するわけじゃないし
後から反応しないように設定できる場合も多いので
言ってしまえば「どのWinでも起きる問題じゃない」って話だ
環境依存の問題を、WSHの問題であるかのように言う奴はアフォ
全てのアンチウィルスソフトがADODB.Streamに反応するわけじゃないし
後から反応しないように設定できる場合も多いので
言ってしまえば「どのWinでも起きる問題じゃない」って話だ
651名無し~3.EXE
2014/07/05(土) 11:16:49.33ID:WBZ3i3eR AviraがADODB.Streamの実行を阻止するらしいが、他にもある?
652名無し~3.EXE
2014/07/05(土) 16:43:05.03ID:DkwampXl 自分にはアンチウィルスソフトに駆除される可能性があると判っているものを
配布することは出来ない。バイナリファイルを扱うコードに限ればどのWinでも
動くというメリットは存在しない
配布することは出来ない。バイナリファイルを扱うコードに限ればどのWinでも
動くというメリットは存在しない
653名無し~3.EXE
2014/07/05(土) 19:00:31.79ID:gjWeDij8 WSH以外でインストール不要、テキスト配布可能、バイナリ操作可能、x86/x64環境対応、を満たすのは
.NET Frameworkに含まれるC#やJScript.NETコンパイラ使うバッチファイル位しか実用的な選択肢がない。
ADODB.Streamの利用だけでウィルス扱いするクソアンチウィルスなんて所詮その程度のゴミ。
ADODB.Streamを難読化してアンチウィルスの検出回避してるコードとか見たことあるけど、
適当に回避仕込んで後は「アンチウィルスに排除されたらそのゴミを恨め」とでも言っとけばいい。
バイナリ配布使用が何しようが、どーせ巻き込まれるときは巻き込まれて機能不全起こすんだし。
一々ソース生成してコンパイルしたりインタプリタのインストールを要求するよりはWSH使ったほうが楽。
//つか配布して使わせるって前提ではRubyはnode.jsにすら劣る気が…
.NET Frameworkに含まれるC#やJScript.NETコンパイラ使うバッチファイル位しか実用的な選択肢がない。
ADODB.Streamの利用だけでウィルス扱いするクソアンチウィルスなんて所詮その程度のゴミ。
ADODB.Streamを難読化してアンチウィルスの検出回避してるコードとか見たことあるけど、
適当に回避仕込んで後は「アンチウィルスに排除されたらそのゴミを恨め」とでも言っとけばいい。
バイナリ配布使用が何しようが、どーせ巻き込まれるときは巻き込まれて機能不全起こすんだし。
一々ソース生成してコンパイルしたりインタプリタのインストールを要求するよりはWSH使ったほうが楽。
//つか配布して使わせるって前提ではRubyはnode.jsにすら劣る気が…
654名無し~3.EXE
2014/07/05(土) 19:08:48.87ID:WBZ3i3eR ウィルス対策ソフトでは大抵除外指定できるもんなんだがAviraはそういう機能ないのか?
もしあるならreadmeで除外指定の説明しとけば十分なんだけどね
もしあるならreadmeで除外指定の説明しとけば十分なんだけどね
655名無し~3.EXE
2014/07/06(日) 04:11:44.89ID:wAzKXrbd Rubyコードを配布するならインタプリタを同梱すれば良いだけでは
インタプリタをインストールする必要はない。exerbみたいにPEに
パックするツールもあることだし。難点を挙げるとすればでかいこと
くらいか。PythonやJavaなんかでも似たような手法があるな
WSHは社内利用でアプリの持ち込みが難しいく、誤爆しないことが
確認できている場合なんかには使うな
インタプリタをインストールする必要はない。exerbみたいにPEに
パックするツールもあることだし。難点を挙げるとすればでかいこと
くらいか。PythonやJavaなんかでも似たような手法があるな
WSHは社内利用でアプリの持ち込みが難しいく、誤爆しないことが
確認できている場合なんかには使うな
656名無し~3.EXE
2014/07/06(日) 05:38:19.38ID:EYy1DF2z インタプリタの同梱はライセンス的に面倒くさいが、
Rubyとか単体インタプリタが公式から落とせないんだよなぁ…
node.jsでさえ公式が配布してるnode.exeがあれば最低限は動くってのに。
PE化ツールはスクリプト言語としての利点が大きく減るので論外かな。
主観も入ってるがWindowsでツール作って配布したりするのにRubyは向いてなさすぎ。
つかなんでRuby押しな人がWSHスレに来てんだよ…スレチだろそんなん。
Rubyとか単体インタプリタが公式から落とせないんだよなぁ…
node.jsでさえ公式が配布してるnode.exeがあれば最低限は動くってのに。
PE化ツールはスクリプト言語としての利点が大きく減るので論外かな。
主観も入ってるがWindowsでツール作って配布したりするのにRubyは向いてなさすぎ。
つかなんでRuby押しな人がWSHスレに来てんだよ…スレチだろそんなん。
657名無し~3.EXE
2014/07/09(水) 16:44:30.12ID:3YYdz9Xv AviraでADODB.Streamの実験をしてみた
結論として
var strm = new ActiveXObject("ADODB.Stream");
var adTypeBinary = 1;
var adSaveCreateOverWrite = 2;
この3行が全部存在したら弾かれる
実際に使うかどうかは関係なく、ADODB.Stream、adTypeBinary、adSaveCreateOverWriteの文字列が存在してたらアウト
(adTypeText、adSaveCreateNotExistは問題ない)
このうちどれか1つでも無くせば通る
strm.Type = 1;
と書けば通るなんて意味ない
こんなん何のプロテクトにもなってなくてちゃんと書こうとしている正常なスクリプトだけが被害を被るだけじゃん
あと、scanの除外の指定は簡単にできるのでそっちでファイルやフォルダを指定しとく手もある
結論として
var strm = new ActiveXObject("ADODB.Stream");
var adTypeBinary = 1;
var adSaveCreateOverWrite = 2;
この3行が全部存在したら弾かれる
実際に使うかどうかは関係なく、ADODB.Stream、adTypeBinary、adSaveCreateOverWriteの文字列が存在してたらアウト
(adTypeText、adSaveCreateNotExistは問題ない)
このうちどれか1つでも無くせば通る
strm.Type = 1;
と書けば通るなんて意味ない
こんなん何のプロテクトにもなってなくてちゃんと書こうとしている正常なスクリプトだけが被害を被るだけじゃん
あと、scanの除外の指定は簡単にできるのでそっちでファイルやフォルダを指定しとく手もある
658名無し~3.EXE
2014/07/09(水) 17:01:01.40ID:5yPR9jH6 strm[unescape(〜〜)]()でも通るのだろうし(専ブラ用のGetLog.wsfとかがコレ)、evalに詰めても多分通るだろうからな…
誤検出上等で作られた既存マルウェアとマッチするパターン定義なのだとしてもゴミすぎる。
まぁアンチウィルスが一般人を害するのなんて珍しい話じゃないけどな。
ノートンがリファラ削ってCSRF攻撃がより発生しやすくなった件もそうだけど、
アンチウィルスに対するフールプルーフも考慮しないと駄目になってしまったと……
誤検出上等で作られた既存マルウェアとマッチするパターン定義なのだとしてもゴミすぎる。
まぁアンチウィルスが一般人を害するのなんて珍しい話じゃないけどな。
ノートンがリファラ削ってCSRF攻撃がより発生しやすくなった件もそうだけど、
アンチウィルスに対するフールプルーフも考慮しないと駄目になってしまったと……
659名無し~3.EXE
2014/08/20(水) 09:14:55.55ID:ADfHX5a6 (`_')
660名無し~3.EXE
2014/09/20(土) 14:51:17.97ID:ud3uQdHI 保守
661名無し~3.EXE
2014/10/28(火) 21:45:29.92ID:9qJ4E2Eu ExcelVBAスレからこちらに誘導されました。
Sub test()
Dim WSH, cmd, path, output As String
Set WSH = CreateObject("WScript.Shell")
path = """C:\Program Files\7-Zip\7z.exe"""
output = """C:\Program Files\7-Zip\output.txt"""
cmd = path & " > " & output
WSH.Run "%ComSpec% /c " & cmd
End Sub
プログラムをshell.runで実行して、結果をプログラムと同じ場所にをテキスト出力したいんですが
上記のプログラムですと、テキストすら作成されずエラーも出ません。
試しにcmdの中をコマンドプロンプトで実行すると上手くテキスト出力できました。
環境変数の中も問題ない事確認しました。
一体何が原因でどうすれば意図通りに出力できるでしょうか?
Sub test()
Dim WSH, cmd, path, output As String
Set WSH = CreateObject("WScript.Shell")
path = """C:\Program Files\7-Zip\7z.exe"""
output = """C:\Program Files\7-Zip\output.txt"""
cmd = path & " > " & output
WSH.Run "%ComSpec% /c " & cmd
End Sub
プログラムをshell.runで実行して、結果をプログラムと同じ場所にをテキスト出力したいんですが
上記のプログラムですと、テキストすら作成されずエラーも出ません。
試しにcmdの中をコマンドプロンプトで実行すると上手くテキスト出力できました。
環境変数の中も問題ない事確認しました。
一体何が原因でどうすれば意図通りに出力できるでしょうか?
662名無し~3.EXE
2014/10/28(火) 22:09:20.36ID:AujnRT7T663名無し~3.EXE
2014/10/28(火) 23:40:34.81ID:9qJ4E2Eu execは出力が長いと切れてしまうのと
チカチカするのでなるべくRunで動作させたいです・・・。
チカチカするのでなるべくRunで動作させたいです・・・。
664名無し~3.EXE
2014/10/29(水) 01:13:30.66ID:Ixj57Vcb まさかとは思うけど、定義だけでtestをcallしてないってオチじゃないだろうな
665名無し~3.EXE
2014/10/29(水) 21:40:17.17ID:ZMfncWTQ Sub test()
Dim WSH, exec, cmd, path, output, Result, Errorcatch As String
Set WSH = CreateObject("WScript.Shell")
path = """C:\Program Files\7-Zip\7z.exe"""
output = """C:\Program Files\7-Zip\output.txt"""
cmd = path & " > " & output
Set exec = WSH.exec("%ComSpec% /c " & cmd)
Do While exec.Status = 0
DoEvents
Loop
Result = exec.StdOut.ReadAll
Errorcatch = exec.StdErr.ReadAll
End Sub
試しにexecに書き換えてこれでエラーメッセージを拾うと
"'C:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。"
ある筈の引用符が認識されなくなってるようだけど
wshって引用符を2つ以上受け入れられない仕様なんでしょうかね?
何にしろexecを使って出力しか無いようですね。
Dim WSH, exec, cmd, path, output, Result, Errorcatch As String
Set WSH = CreateObject("WScript.Shell")
path = """C:\Program Files\7-Zip\7z.exe"""
output = """C:\Program Files\7-Zip\output.txt"""
cmd = path & " > " & output
Set exec = WSH.exec("%ComSpec% /c " & cmd)
Do While exec.Status = 0
DoEvents
Loop
Result = exec.StdOut.ReadAll
Errorcatch = exec.StdErr.ReadAll
End Sub
試しにexecに書き換えてこれでエラーメッセージを拾うと
"'C:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。"
ある筈の引用符が認識されなくなってるようだけど
wshって引用符を2つ以上受け入れられない仕様なんでしょうかね?
何にしろexecを使って出力しか無いようですね。
666名無し~3.EXE
2014/10/30(木) 00:21:27.89ID:LmFdMFLe runで””が展開されて、cmd.exeが””無し文字列渡されてるだけ
VBS以前の問題すな
----
path = """""C:\Program Files\7-Zip\7z.exe"""
output = """C:\Users\hoge\Desktop\output.txt"""""
VBS以前の問題すな
----
path = """""C:\Program Files\7-Zip\7z.exe"""
output = """C:\Users\hoge\Desktop\output.txt"""""
667名無し~3.EXE
2014/11/26(水) 01:10:25.43ID:Rp1N9SF8 WSH(JScript)からUACの権限の昇格無しにvhdファイルを任意のドライブレターでマウント、アンマウントする方法ってあります?
diskpartを使うと起動時にUACの権限昇格のプロンプトが出てしまうので出来ればそれを避けたいです
さらにdiskpartだと任意のドライブレターにするのもちょっとめんどくさい・・・
マイコンピュータの管理からマウントするときは権限昇格のプロンプトが出ないのでマウント操作自体は権限昇格無しにできるはず・・・
diskpartを使うと起動時にUACの権限昇格のプロンプトが出てしまうので出来ればそれを避けたいです
さらにdiskpartだと任意のドライブレターにするのもちょっとめんどくさい・・・
マイコンピュータの管理からマウントするときは権限昇格のプロンプトが出ないのでマウント操作自体は権限昇格無しにできるはず・・・
668名無し~3.EXE
2014/11/26(水) 03:52:31.59ID:n9fh4HuN >>667
WSH的な方法もあるとは思うけど、面倒くさいからWScript.ShellのSendKeysで。
WSH的な方法もあるとは思うけど、面倒くさいからWScript.ShellのSendKeysで。
669名無し~3.EXE
2014/11/27(木) 00:44:59.90ID:jN417OkL 自身をrunasで実行するコードを書いてネットワークドライブにコピーして実行したら
WScript.exe「ファイルが見つかりません」
管理者で実行するとネットワークドライブにあるスクリプトを実行できないっぽい。なんつートラップ・・・orz
でもUNCパスなら実行できるっぽい。変換するのマンドクセ・・・
WScript.exe「ファイルが見つかりません」
管理者で実行するとネットワークドライブにあるスクリプトを実行できないっぽい。なんつートラップ・・・orz
でもUNCパスなら実行できるっぽい。変換するのマンドクセ・・・
670名無し~3.EXE
2014/11/27(木) 18:51:51.05ID:n1bzZURg >>669
ユーザが違うからファイル共有のログイン状態が引き継がれないんだろう。
WSHの問題じゃなくて純粋にそのファイルが管理者権限側から見えてない。
ネットワークドライブの割り当ても引き継がれないってのは知らなかったが…考えて見れば当然だな。
runas notepadからファイルを開くでマイコンピュータ見に行けば確認できる。
ネットワークドライブ上から実行せず、UNCパスの方から実行すれば普通に動くんじゃないかな。
ただ、ログインの必要なファイル共有の場合はどっちみちダメ。
自身をテンポラリに複製するしか無いのかなぁ…管理者以外での実行も想定するならAll Users。
ユーザが違うからファイル共有のログイン状態が引き継がれないんだろう。
WSHの問題じゃなくて純粋にそのファイルが管理者権限側から見えてない。
ネットワークドライブの割り当ても引き継がれないってのは知らなかったが…考えて見れば当然だな。
runas notepadからファイルを開くでマイコンピュータ見に行けば確認できる。
ネットワークドライブ上から実行せず、UNCパスの方から実行すれば普通に動くんじゃないかな。
ただ、ログインの必要なファイル共有の場合はどっちみちダメ。
自身をテンポラリに複製するしか無いのかなぁ…管理者以外での実行も想定するならAll Users。
671名無し~3.EXE
2014/12/01(月) 12:04:16.94ID:vl7TWbzO おそらく今更な話だと思うけど調べてもよく分からないので教えて下さい
var document = new ActiveXObject("htmlfile")でquerySelectorが使えないのは何故なんでしょう
互換モードで動いてるのが悪いのかと思ってmetaタグでIE=edgeを食わせたりしましたがやっぱり動きません
実用的にはjQueryでいいんですが、動かない理由が気になって仕方ありません
var document = new ActiveXObject("htmlfile")でquerySelectorが使えないのは何故なんでしょう
互換モードで動いてるのが悪いのかと思ってmetaタグでIE=edgeを食わせたりしましたがやっぱり動きません
実用的にはjQueryでいいんですが、動かない理由が気になって仕方ありません
672名無し~3.EXE
2014/12/02(火) 02:41:56.87ID:uW4tGm5l new ActiveXObject("htmlfile")で得られるTridentエンジンそれ自体がMSIE7系統のものなんじゃないの?
アプリケーションとしてインストールされているIEと、コンポーネントとして動くIEは別だったりもする。
document.parentWindow.navigator.userAgentを見ればIE7の互換モードらしいことが分かる。
IE7ないしその互換状態のIEコンポーネントではquerySelectorは実装されて無いはず。
metaタグでIE=edgeを食わせるのに成功しててもその場合取得したdocumentとwindowは別物になるんじゃないかと。
そのうえwindow.location.hrefを書き換えてもdocumentはそのまま参照できる状態が続いてしまう。
オブジェクト作る時点で互換モードじゃないオブジェクト作る方法があれば出来そうな気がするけどよく分からん。
アプリケーションとしてインストールされているIEと、コンポーネントとして動くIEは別だったりもする。
document.parentWindow.navigator.userAgentを見ればIE7の互換モードらしいことが分かる。
IE7ないしその互換状態のIEコンポーネントではquerySelectorは実装されて無いはず。
metaタグでIE=edgeを食わせるのに成功しててもその場合取得したdocumentとwindowは別物になるんじゃないかと。
そのうえwindow.location.hrefを書き換えてもdocumentはそのまま参照できる状態が続いてしまう。
オブジェクト作る時点で互換モードじゃないオブジェクト作る方法があれば出来そうな気がするけどよく分からん。
673名無し~3.EXE
2014/12/02(火) 20:10:44.38ID:7F177ivT ありがとうございます何となく分かりました
htmlfileというオブジェクトの実体は25336920-03F9-11CF-8FD0-00AA00686F13ですが
その下位キーにMicrosoft.mshtml, Version=7.0.3300.0というのがありますね
IE9のmshtml.dllのversionは9.xのようですからIE7相当の物を叩いてるという認識で間違いないようです
原因がはっきりしてスカッとしました
htmlfileというオブジェクトの実体は25336920-03F9-11CF-8FD0-00AA00686F13ですが
その下位キーにMicrosoft.mshtml, Version=7.0.3300.0というのがありますね
IE9のmshtml.dllのversionは9.xのようですからIE7相当の物を叩いてるという認識で間違いないようです
原因がはっきりしてスカッとしました
674669
2014/12/02(火) 20:38:48.68ID:zhlSz+62 >>670
遅くなってスマン。レスありがとう
ドライブレターをUNCパスに変換するコードを書いて・・・っとやっていたんだけど
ふと管理者でもネットワークドライブをマウントしてしまえばいいんじゃね?と気が付いた
やってみたらいけそうな感じ
ネットワークドライブマウント用のスクリプトを改変するのが一番楽かも
遅くなってスマン。レスありがとう
ドライブレターをUNCパスに変換するコードを書いて・・・っとやっていたんだけど
ふと管理者でもネットワークドライブをマウントしてしまえばいいんじゃね?と気が付いた
やってみたらいけそうな感じ
ネットワークドライブマウント用のスクリプトを改変するのが一番楽かも
675名無し~3.EXE
2014/12/07(日) 02:12:17.14ID:AWYCy4y8 ie9以降のJavascriptエンジン(chakra)を使う方法
tp://subtech.g.hatena.ne.jp/mayuki/20111216/1324015296
tp://subtech.g.hatena.ne.jp/mayuki/20111216/1324015296
676名無し~3.EXE
2014/12/07(日) 02:16:11.14ID:AWYCy4y8 スクリプトのダブルクリックで起動させたいなら>44の方法で
677名無し~3.EXE
2014/12/07(日) 08:47:00.96ID:addxdQLq678HDI ◆hbVYHgubO6hK
2015/02/01(日) 05:00:21.01ID:m75TbliY MS IMEのプロパティ(ローマ字入力か仮名入力か、キーアサインはMS式か
ATOK式かVJE式か、オートコレクトの対象は…、etc.)をログオン直後に
スクリプトで変更したいのですが、何かいい方法はありますか?
ネットカフェとか公共図書館のPCコーナーとかに入ったときにいちいち
初期状態から変更するのが面倒なので、ワンクリックで処理したいのです。
WSHで無理ならExcel VBAとかC++とかでも構いません。
適用したい対象としては、Windows XP以降・Office 2007以降のすべての
バージョンのMS製IMEが操作できればベストです。
逆に、MS以外の他社のIME、たとえばATOKとかGoogleとかは無視して可です。
デフォルトでMS以外のIMEだけが入っているということはまずないので。
var ime=new ActiveXObject("xxxx.xxxx"); から書き始めるんだろうなあ…とは
思うものの、マシンの中にどういうActiveXが入っているのか調べる方法を
知らない有様ですので、その点についても教えていただければ幸いです。
データがHKEY_CURRENT_USERにあることは確認していますが、これを読み込むのは
起動時のみのようで(起動後にレジストリエディタで書き換えても反映されない)、
起動のたびに設定がまっさらになるマシンでは、レジストリの書き換えでは
無理なように思います。
よろしくお願いします。
ATOK式かVJE式か、オートコレクトの対象は…、etc.)をログオン直後に
スクリプトで変更したいのですが、何かいい方法はありますか?
ネットカフェとか公共図書館のPCコーナーとかに入ったときにいちいち
初期状態から変更するのが面倒なので、ワンクリックで処理したいのです。
WSHで無理ならExcel VBAとかC++とかでも構いません。
適用したい対象としては、Windows XP以降・Office 2007以降のすべての
バージョンのMS製IMEが操作できればベストです。
逆に、MS以外の他社のIME、たとえばATOKとかGoogleとかは無視して可です。
デフォルトでMS以外のIMEだけが入っているということはまずないので。
var ime=new ActiveXObject("xxxx.xxxx"); から書き始めるんだろうなあ…とは
思うものの、マシンの中にどういうActiveXが入っているのか調べる方法を
知らない有様ですので、その点についても教えていただければ幸いです。
データがHKEY_CURRENT_USERにあることは確認していますが、これを読み込むのは
起動時のみのようで(起動後にレジストリエディタで書き換えても反映されない)、
起動のたびに設定がまっさらになるマシンでは、レジストリの書き換えでは
無理なように思います。
よろしくお願いします。
679名無し~3.EXE
2015/02/01(日) 05:18:01.88ID:sAJdFoY4 MS-IME
680名無し~3.EXE
2015/02/01(日) 06:07:20.52ID:TR1gUJb7 ATOK
681名無し~3.EXE
2015/02/01(日) 06:26:01.34ID:QzUKWvpg 33歳
683名無し~3.EXE
2015/02/02(月) 18:39:34.28ID:491TsZx9 webとwshを覚え始めたころ、
両方とも、Jscript/Javascript が使えるので
スクリプトはそれだけ覚えればいいじゃん
ということにしたら、
wshのサンプルプログラムは、VBscriptが大半で、
もういいや、と思って、はや9年。
両方とも、Jscript/Javascript が使えるので
スクリプトはそれだけ覚えればいいじゃん
ということにしたら、
wshのサンプルプログラムは、VBscriptが大半で、
もういいや、と思って、はや9年。
684名無し~3.EXE
2015/02/02(月) 19:00:51.19ID:eK+w3KVO WSHはオワコンそれは間違いない、じゃあ何を使えば良いのかPowerShellかつーとこれはちょっと方向性が違う
MSもいい加減何か考えろよ、それとも後継は.netということなのか
MSもいい加減何か考えろよ、それとも後継は.netということなのか
685名無し~3.EXE
2015/02/04(水) 19:41:53.02ID:7fmrLBIM686名無し~3.EXE
2015/02/06(金) 22:57:46.78ID:tKm5DJDG ちとおたずねしたい事があるでレスします。
ファイル名のリネームのひな型を作ってるのですが
Option Explicit
dim objFL,objFLD,rename
Set objFL = CreateObject("Scripting.FileSystemObject")
Set objFL = objFL.GetFolder("C:\temp")
Set objFLD = objFL.Files
rename = "150202.jpg"
objFLD.Item(rename).Name = "001.jpg"
上記で実行すると
「プロシージャの呼び出し、または引数が不正です。」
というエラーが出てしまいます。
下の部分を
objFLD.Item("150202.jpg").Name = "001.jpg"
に書換え
rename = "150202.jpg"
を削除すると
ファイル名が変更されました。
Itemプロパティの引数に変数は使えないのでしょうか?
ファイル名のリネームのひな型を作ってるのですが
Option Explicit
dim objFL,objFLD,rename
Set objFL = CreateObject("Scripting.FileSystemObject")
Set objFL = objFL.GetFolder("C:\temp")
Set objFLD = objFL.Files
rename = "150202.jpg"
objFLD.Item(rename).Name = "001.jpg"
上記で実行すると
「プロシージャの呼び出し、または引数が不正です。」
というエラーが出てしまいます。
下の部分を
objFLD.Item("150202.jpg").Name = "001.jpg"
に書換え
rename = "150202.jpg"
を削除すると
ファイル名が変更されました。
Itemプロパティの引数に変数は使えないのでしょうか?
687名無し~3.EXE
2015/02/07(土) 02:54:15.68ID:m7VnhhKE >>686
VBSは使わないのでItemプロパティで変数が使えない理由は知らないが
なぜGetFileを使わないの?
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFILE = objFSO.GetFile("c:\temp" & "\" & rename)
objFILE.Name = "001.jpg"
でいいと思うけど
VBSは使わないのでItemプロパティで変数が使えない理由は知らないが
なぜGetFileを使わないの?
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFILE = objFSO.GetFile("c:\temp" & "\" & rename)
objFILE.Name = "001.jpg"
でいいと思うけど
688名無し~3.EXE
2015/02/07(土) 04:39:30.38ID:P9nBQ8IX >>687
知らなかったから……(恥)
まあ複数のファイルを扱いたかったのでFilesコレクションが
使えればと、ここでできなければ他の方法を探す予定でした。
近い形ができたので
Option Explicit
dim objFL,objFLD,objItem,i,l,objFiles(),objFSO,objFILE
Set objFL = CreateObject("Scripting.FileSystemObject")
Set objFL = objFL.GetFolder("C:\temp")
Set objFLD = objFL.Files
ReDim objFiles(objFLD.Count)
i = 1
For Each objItem In objFLD
Set objFiles(i) = objItem
i = i + 1
Next
l = i
i = 1
For i = 1 To l
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFILE = objFSO.GetFile(objFiles(i))
objFILE.Name = InputBox(objFiles(i)&"の名前を変更してください")
Next
これもエラーが出てますが土日は来れないと思いますのでひとまず。
知らなかったから……(恥)
まあ複数のファイルを扱いたかったのでFilesコレクションが
使えればと、ここでできなければ他の方法を探す予定でした。
近い形ができたので
Option Explicit
dim objFL,objFLD,objItem,i,l,objFiles(),objFSO,objFILE
Set objFL = CreateObject("Scripting.FileSystemObject")
Set objFL = objFL.GetFolder("C:\temp")
Set objFLD = objFL.Files
ReDim objFiles(objFLD.Count)
i = 1
For Each objItem In objFLD
Set objFiles(i) = objItem
i = i + 1
Next
l = i
i = 1
For i = 1 To l
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFILE = objFSO.GetFile(objFiles(i))
objFILE.Name = InputBox(objFiles(i)&"の名前を変更してください")
Next
これもエラーが出てますが土日は来れないと思いますのでひとまず。
690名無し~3.EXE
2015/02/07(土) 05:39:16.39ID:FFJOkXv4 WSH
691名無し~3.EXE
2015/02/07(土) 05:40:09.49ID:wHuPUcI3692名無し~3.EXE
2015/02/07(土) 05:57:22.40ID:NRS/nR0g VBS使わないなあ
693名無し~3.EXE
2015/02/07(土) 16:44:40.34ID:m7VnhhKE >>688
回りくどいことしてるけど、単純に以下のようにしちゃダメなの?
Option Explicit
dim objFSO,objFLD,objFC,objFILE
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFLD= objFSO.GetFolder("c:\temp")
Set objFC = objFLD.Files
For Each objFILE In objFC
objFILE.Name = InputBox(objFILE.Path & "の名前を変更してください")
Next
回りくどいことしてるけど、単純に以下のようにしちゃダメなの?
Option Explicit
dim objFSO,objFLD,objFC,objFILE
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFLD= objFSO.GetFolder("c:\temp")
Set objFC = objFLD.Files
For Each objFILE In objFC
objFILE.Name = InputBox(objFILE.Path & "の名前を変更してください")
Next
694名無し~3.EXE
2015/02/08(日) 14:53:46.71ID:3Sq3UJI6 基本的な部分はもっと単純に出来る
Dim objFSO,objFILE
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFILE In objFSO.GetFolder("c:\temp").Files
objFILE.Name = InputBox(objFILE.Path & "の名前を変更してください")
Next
使い回さないなら、フォルダオブジェクトもファイルコレクションも変数に取る必要はない
でも逆に複雑にというか例外処理を入れた方が良い部分があり
InputBoxの戻り値は、直接ファイルオブジェクトのNameプロパティに代入しないで
一度変数に取り、空の場合、元のファイル名と同じ場合、重複がある場合などの対策を取った方が良い
とにかく、「フォルダ内の全ファイル」って対象のリネーム作業は
途中でエラー出して強制終了すると、リネーム終ってるものも含めて最初からやり直しで
しかもリネーム終ってるものはそのままのファイル名にしたくても
NameプロパティにInputBoxの戻り値を直接代入している状態では、未入力でOKやEnter押せばエラーになり
キャンセルボタンを押してもエラーになり、同じ名前を入力してもエラーになりで収集が付かなくなる
別の回避策としては、リネームが終ったファイルはc:\tempからc:\temp\#renameに
ファイル名変更と同時に移動を行い、処理の最後でc:\temp\#rename内の全ファイルを
c:\tempに移動してc:\temp\#renameを削除するって手もある
これなら途中のエラーで強制終了しても、次に実行した時にエラーになったファイルから始められるし
途中で強制終了せずに最後まで正常実行されれば、移動したファイルも元に戻るし
作った一時待避用フォルダも残らないので、結果は全く変わらない
説明が長くなったが、ファイル名変更って取っ掛かりは簡単だけど、まともなものを作るのはそれだけ難しいってこった
他には、使用不可文字とか、ファイルがロックされてるとかもあり得るしね
因みに知ってるかもしれないが、MsgBoxのボタン指定でvbYesNoCancelを使うと、三択の処理分けが出来るので
戻り値がEmptyだったら「はい→スキップ」「いいえ→再入力」「キャンセル→処理全体を終了」とか
重複がある場合は「はい→自動連番化」「いいえ→再入力」「キャンセル→スキップ」とかの対策が出来る
Dim objFSO,objFILE
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFILE In objFSO.GetFolder("c:\temp").Files
objFILE.Name = InputBox(objFILE.Path & "の名前を変更してください")
Next
使い回さないなら、フォルダオブジェクトもファイルコレクションも変数に取る必要はない
でも逆に複雑にというか例外処理を入れた方が良い部分があり
InputBoxの戻り値は、直接ファイルオブジェクトのNameプロパティに代入しないで
一度変数に取り、空の場合、元のファイル名と同じ場合、重複がある場合などの対策を取った方が良い
とにかく、「フォルダ内の全ファイル」って対象のリネーム作業は
途中でエラー出して強制終了すると、リネーム終ってるものも含めて最初からやり直しで
しかもリネーム終ってるものはそのままのファイル名にしたくても
NameプロパティにInputBoxの戻り値を直接代入している状態では、未入力でOKやEnter押せばエラーになり
キャンセルボタンを押してもエラーになり、同じ名前を入力してもエラーになりで収集が付かなくなる
別の回避策としては、リネームが終ったファイルはc:\tempからc:\temp\#renameに
ファイル名変更と同時に移動を行い、処理の最後でc:\temp\#rename内の全ファイルを
c:\tempに移動してc:\temp\#renameを削除するって手もある
これなら途中のエラーで強制終了しても、次に実行した時にエラーになったファイルから始められるし
途中で強制終了せずに最後まで正常実行されれば、移動したファイルも元に戻るし
作った一時待避用フォルダも残らないので、結果は全く変わらない
説明が長くなったが、ファイル名変更って取っ掛かりは簡単だけど、まともなものを作るのはそれだけ難しいってこった
他には、使用不可文字とか、ファイルがロックされてるとかもあり得るしね
因みに知ってるかもしれないが、MsgBoxのボタン指定でvbYesNoCancelを使うと、三択の処理分けが出来るので
戻り値がEmptyだったら「はい→スキップ」「いいえ→再入力」「キャンセル→処理全体を終了」とか
重複がある場合は「はい→自動連番化」「いいえ→再入力」「キャンセル→スキップ」とかの対策が出来る
695名無し~3.EXE
2015/02/09(月) 19:00:47.67ID:dzFyHPM6 ファイルの取り扱いで多摩にあるのがフルパス長すぎでエラーが返るとかもあるな
696名無し~3.EXE
2015/02/11(水) 01:35:35.01ID:wKEalFGT 遅くなりまして済みませんようやく返事します。
>>691
CStr()はダメだった、文字列演算はやってない
JScriptは知識不足でできなかった申し訳ない。
>>693
思いつかなかっただけです(汗)
>>694
>NameプロパティにInputBoxの戻り値を直接代入している状態では、
>未入力でOKやEnter押せばエラーになり
>キャンセルボタンを押してもエラーになり、
>同じ名前を入力してもエラーになりで収集が付かなくなる
なんか例外処理を入れた方が良さそうだが、自分1人でファイル数も
2〜3個を毎週処理する形なので単純な方を選びます。
>MsgBoxのボタン指定でvbYesNoCancelを使うと、
>三択の処理分けが出来るので
知っておりません……(再汗)
リネームに追加部分をつけるので>>694がシンプルでいいが使い回しの点で
>>693のコードにするかもしれない、WSHを使おうと思ったのは省力化と
WHSの勉強を兼ねてなのだが省力化からはもう逸脱しているようだ(笑)
皆さんレスありがとうございました。
>>691
CStr()はダメだった、文字列演算はやってない
JScriptは知識不足でできなかった申し訳ない。
>>693
思いつかなかっただけです(汗)
>>694
>NameプロパティにInputBoxの戻り値を直接代入している状態では、
>未入力でOKやEnter押せばエラーになり
>キャンセルボタンを押してもエラーになり、
>同じ名前を入力してもエラーになりで収集が付かなくなる
なんか例外処理を入れた方が良さそうだが、自分1人でファイル数も
2〜3個を毎週処理する形なので単純な方を選びます。
>MsgBoxのボタン指定でvbYesNoCancelを使うと、
>三択の処理分けが出来るので
知っておりません……(再汗)
リネームに追加部分をつけるので>>694がシンプルでいいが使い回しの点で
>>693のコードにするかもしれない、WSHを使おうと思ったのは省力化と
WHSの勉強を兼ねてなのだが省力化からはもう逸脱しているようだ(笑)
皆さんレスありがとうございました。
697名無し~3.EXE
2015/02/11(水) 01:50:33.27ID:RhhN4UgP 個人で使うにしても
せめて、入力のスキップと途中での中断とリネーム後のエラーチェックとそのリトライかキャンセル
ぐらいは組み込んだらいいと思う
せめて、入力のスキップと途中での中断とリネーム後のエラーチェックとそのリトライかキャンセル
ぐらいは組み込んだらいいと思う
698名無し~3.EXE
2015/02/11(水) 05:24:33.23ID:7mopOKOq >>696
うちの環境では
objFLD.Item(rename).Name = "001.jpg"
を
objFLD.Item(CStr(rename)).Name = "001.jpg"
もしくは
objFLD.Item(rename & "").Name = "001.jpg"
でエラーが出なくなったよ
(そもそも最初のがなぜエラーになるかわかんないけど)
うちの環境では
objFLD.Item(rename).Name = "001.jpg"
を
objFLD.Item(CStr(rename)).Name = "001.jpg"
もしくは
objFLD.Item(rename & "").Name = "001.jpg"
でエラーが出なくなったよ
(そもそも最初のがなぜエラーになるかわかんないけど)
699名無し~3.EXE
2015/02/11(水) 19:11:40.19ID:wKEalFGT700名無し~3.EXE
2015/02/11(水) 19:37:51.15ID:RhhN4UgP >>699
ちょっとエラーチェックを入れたのを作ったので参考にどうぞ
Option Explicit
Const cFolder = "c:\temp"
Dim MyName
Dim FSO, folder, file, r, name, tmpname
Call renameAll()
Set FSO = Nothing
Sub renameAll()
Set FSO = CreateObject("Scripting.FileSystemObject")
MyName = cFolder & "の全ファイルリネーム"
If FSO.FolderExists(cFolder) Then
Set folder = FSO.GetFolder(cFolder)
For Each file In folder.Files
tmpname = ""
Do
Do
name = InputBox(file.Path & "の名前を変更してください", MyName, tmpname)
If name="" Then
r = MsgBox("終了していいですか",vbYesNo+vbQuestion, MyName) '=6:vbYes =7:vbNo
If r = vbYes Then
Exit For
End If
End If
Loop While name=""
ちょっとエラーチェックを入れたのを作ったので参考にどうぞ
Option Explicit
Const cFolder = "c:\temp"
Dim MyName
Dim FSO, folder, file, r, name, tmpname
Call renameAll()
Set FSO = Nothing
Sub renameAll()
Set FSO = CreateObject("Scripting.FileSystemObject")
MyName = cFolder & "の全ファイルリネーム"
If FSO.FolderExists(cFolder) Then
Set folder = FSO.GetFolder(cFolder)
For Each file In folder.Files
tmpname = ""
Do
Do
name = InputBox(file.Path & "の名前を変更してください", MyName, tmpname)
If name="" Then
r = MsgBox("終了していいですか",vbYesNo+vbQuestion, MyName) '=6:vbYes =7:vbNo
If r = vbYes Then
Exit For
End If
End If
Loop While name=""
701名無し~3.EXE
2015/02/11(水) 19:38:45.26ID:RhhN4UgP r = rename(file, name)
If r = vbAbort Then
Exit For
End If
tmpname = name
Loop While r = vbRetry
Next
End If
End Sub
Function rename(file, name) '=0:finished =3:中止 =4:再試行 =5:無視
rename = 0
On Error Resume Next
Err.Clear
file.Name = name
If Err.Number <> 0 Then
rename = MsgBox("リネームできませんでした" & vbCrLf & Err.Description, _
vbAbortRetryIgnore+vbDefaultButton2+vbExclamation, _
file.Path & "のリネーム")
End If
End Function
If r = vbAbort Then
Exit For
End If
tmpname = name
Loop While r = vbRetry
Next
End If
End Sub
Function rename(file, name) '=0:finished =3:中止 =4:再試行 =5:無視
rename = 0
On Error Resume Next
Err.Clear
file.Name = name
If Err.Number <> 0 Then
rename = MsgBox("リネームできませんでした" & vbCrLf & Err.Description, _
vbAbortRetryIgnore+vbDefaultButton2+vbExclamation, _
file.Path & "のリネーム")
End If
End Function
702名無し~3.EXE
2015/02/11(水) 20:45:53.97ID:H/yaaeQZ お前らpastebin使えよcodeを直接貼るんじゃない
704名無し~3.EXE
2015/02/12(木) 17:24:29.62ID:ouhd2nvy >>703
ついでにソートもどうぞ(>>700でfolder.Files→sortFiles(folder.Files)に変更)
Function sortFiles(files)
Dim rs, files2, f, i, newfiles
ReDim filesArray(files.Count-1)
Set rs = CreateObject("ADODB.Recordset")
Call rs.Fields.Append("index", 3, 255) '=3:adInteger
Call rs.Fields.Append("name", 200, 255) '=200:adVarChar
Call rs.Fields.Append("dateLastModified", 7) '=7:adDate
Call rs.Open()
i = 0
For Each f In files
Call rs.AddNew()
rs.Fields("index").Value = i
rs.Fields("name").Value = f.Name
rs.Fields("dateLastModified").Value = f.DateLastModified
Set filesArray(i) = f
i = i + 1
Next
Call rs.Update()
rs.Sort = "dateLastModified DESC" 'ASC:昇順 DESC:降順
files2 = rs.GetRows()
Call rs.Close()
Set rs = Nothing
Set newfiles = CreateObject("Scripting.Dictionary")
For i = 0 To UBound(files2, 2)
newfiles.Add filesArray(files2(0,i)), filesArray(files2(0,i))
Next
Set sortFiles = newfiles
Set newfiles = Nothing
End Function
ついでにソートもどうぞ(>>700でfolder.Files→sortFiles(folder.Files)に変更)
Function sortFiles(files)
Dim rs, files2, f, i, newfiles
ReDim filesArray(files.Count-1)
Set rs = CreateObject("ADODB.Recordset")
Call rs.Fields.Append("index", 3, 255) '=3:adInteger
Call rs.Fields.Append("name", 200, 255) '=200:adVarChar
Call rs.Fields.Append("dateLastModified", 7) '=7:adDate
Call rs.Open()
i = 0
For Each f In files
Call rs.AddNew()
rs.Fields("index").Value = i
rs.Fields("name").Value = f.Name
rs.Fields("dateLastModified").Value = f.DateLastModified
Set filesArray(i) = f
i = i + 1
Next
Call rs.Update()
rs.Sort = "dateLastModified DESC" 'ASC:昇順 DESC:降順
files2 = rs.GetRows()
Call rs.Close()
Set rs = Nothing
Set newfiles = CreateObject("Scripting.Dictionary")
For i = 0 To UBound(files2, 2)
newfiles.Add filesArray(files2(0,i)), filesArray(files2(0,i))
Next
Set sortFiles = newfiles
Set newfiles = Nothing
End Function
705名無し~3.EXE
2015/02/12(木) 17:40:34.10ID:ouhd2nvy706名無し~3.EXE
2015/02/12(木) 17:56:35.98ID:ouhd2nvy ちょっとVBSを勉強して扱ってみたけどなんかやっぱり俺には合わん気がした
707名無し~3.EXE
2015/02/12(木) 19:29:20.87ID:JiJlTdL6 言語的にではなく、アルゴリズム的にこういう幼稚なコード書く奴は
どの言語使ったってどうせろくなものは作れないだろうから
VBSが合わないというより、プログラミングが合わないんだろうね
それなりに知識はありそうだけど、頭でっかちで柔軟性が無く
本質的に何が必要で何が無駄かを正しく判断できないタイプ
どの言語使ったってどうせろくなものは作れないだろうから
VBSが合わないというより、プログラミングが合わないんだろうね
それなりに知識はありそうだけど、頭でっかちで柔軟性が無く
本質的に何が必要で何が無駄かを正しく判断できないタイプ
708名無し~3.EXE
2015/02/13(金) 20:49:30.30ID:PV+7vqus 美しいスクリプトを書くコンテストじゃないんだから
幼稚な表現だろうが
何も書けない、デバックできないよりはよっぽどマシ。
書けることによって、人生やPC生活を楽しんだものの勝ち。
幼稚な表現だろうが
何も書けない、デバックできないよりはよっぽどマシ。
書けることによって、人生やPC生活を楽しんだものの勝ち。
709名無し~3.EXE
2015/02/13(金) 21:32:31.20ID:b+sto9Ml 向上心が欠片も感じられないレスですな
710名無し~3.EXE
2015/02/14(土) 03:18:04.85ID:JkeFZdBX コードが美しくないってのは別にどうでもいいけど
物事の考え方が美しくないってのは、
プログラムだけではなく日常生活にも滲み出てるだろうからな
彼の場合、パソコンを使って、プログラムを使って、何を成すかではなく
パソコンに詳しい俺、プログラミング出来る俺、を顕示するための道具が
パソコンやプログラムなだけなんだよね
シャコタンにしたり、スモーク貼りまくったり、ステッカー貼りまくったり
無駄にデカいホイール履いたり、無駄に音が大きいマフラー付けたりして
周りから見たら、アニメ絵とかを貼ってるイタ車とは違っても別な意味で痛いだけの車を、
自己顕示の道具として扱ってるDQNと大差ない
物事の考え方が美しくないってのは、
プログラムだけではなく日常生活にも滲み出てるだろうからな
彼の場合、パソコンを使って、プログラムを使って、何を成すかではなく
パソコンに詳しい俺、プログラミング出来る俺、を顕示するための道具が
パソコンやプログラムなだけなんだよね
シャコタンにしたり、スモーク貼りまくったり、ステッカー貼りまくったり
無駄にデカいホイール履いたり、無駄に音が大きいマフラー付けたりして
周りから見たら、アニメ絵とかを貼ってるイタ車とは違っても別な意味で痛いだけの車を、
自己顕示の道具として扱ってるDQNと大差ない
711名無し~3.EXE
2015/02/14(土) 16:12:51.96ID:jMrdproP それをマニアとかヲタクとか言う
712名無し~3.EXE
2015/02/14(土) 16:24:51.46ID:jFlxCePM 美しいcodeってのは効率的なcodeだ
ブサイクだろうと動いてるcodeは良いcodeってのは現場の実用論に過ぎない
ブサイクだろうと動いてるcodeは良いcodeってのは現場の実用論に過ぎない
713名無し~3.EXE
2015/02/15(日) 02:11:14.89ID:HqqCSMWe ここはwindows板だ
コードを貼るなとか汚いコードとか無駄なコードは向上心のないDQNとか
そういうことで文句言うのはプログラマのいる板でやってくれ
過去そういうことで文句言ったやつはいないだろ
コードを貼るなとか汚いコードとか無駄なコードは向上心のないDQNとか
そういうことで文句言うのはプログラマのいる板でやってくれ
過去そういうことで文句言ったやつはいないだろ
714名無し~3.EXE
2015/02/15(日) 04:23:11.03ID:+8AYBQVI > ここは稚拙な俺のコードにも、誰も文句を付けないスレであり続けて欲しい
まで読んだ
まで読んだ
715名無し~3.EXE
2015/02/15(日) 14:56:43.28ID:kGjK2wsT うんまあ要するにだね、pastebin使えって言われたのに無視して貼り続けたから半分荒らし扱いされてんだよ
716名無し~3.EXE
2015/02/21(土) 15:58:50.26ID:VnpKOASo モニタを切るのにメッセージを投げようとSFC mini使ったんだけど上手くいかないorz
Option Explicit
Const HWND_BROADCAST = &HFFFF
Const WM_SYSCOMMAND = &H0112
Const SC_MONITORPOWER = &HF170
Const MONITOR_OFF = 2
Dim PostMessage
Set PostMessage = CreateObject("SfcMini.DynaCall")
PostMessage.Declare "user32", "PostMessage"
PostMessage HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF
WScript.Quit 0
(つづく)
Option Explicit
Const HWND_BROADCAST = &HFFFF
Const WM_SYSCOMMAND = &H0112
Const SC_MONITORPOWER = &HF170
Const MONITOR_OFF = 2
Dim PostMessage
Set PostMessage = CreateObject("SfcMini.DynaCall")
PostMessage.Declare "user32", "PostMessage"
PostMessage HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF
WScript.Quit 0
(つづく)
717名無し~3.EXE
2015/02/21(土) 15:59:52.92ID:VnpKOASo (つづき)
で、PowerShellでそれらしいの実行したら上手くいく・・・んだけど
PowerShellでヒアドキュメントや型追加なんかかったるいし読みづらい
$HWND_BROADCAST = 0xFFFF
$WM_SYSCOMMAND = 0x0112
$SC_MONITORPOWER = 0xF170
$MONITOR_OFF = 2
$signature = @'
[DllImport("user32.dll")]
public static extern bool PostMessage(
IntPtr hWnd,
UInt32 Msg,
Int32 wParam,
Int32 lParam);
'@
$monoff = Add-Type `
-MemberDefinition $signature -Name "Win32PostMessage" `
-Namespace "Win32Functions" -PassThru
$monoff::PostMessage($HWND_BROADCAST, $WM_SYSCOMMAND, $SC_MONITORPOWER, $MONITOR_OFF)
$null
なぜにWSHだとダメなんでしょ? SFC miniの使い方間違ってるんでしょうか?
環境はXP、Win7 Pro、Win7 HomePro(いづれもx86)です
で、PowerShellでそれらしいの実行したら上手くいく・・・んだけど
PowerShellでヒアドキュメントや型追加なんかかったるいし読みづらい
$HWND_BROADCAST = 0xFFFF
$WM_SYSCOMMAND = 0x0112
$SC_MONITORPOWER = 0xF170
$MONITOR_OFF = 2
$signature = @'
[DllImport("user32.dll")]
public static extern bool PostMessage(
IntPtr hWnd,
UInt32 Msg,
Int32 wParam,
Int32 lParam);
'@
$monoff = Add-Type `
-MemberDefinition $signature -Name "Win32PostMessage" `
-Namespace "Win32Functions" -PassThru
$monoff::PostMessage($HWND_BROADCAST, $WM_SYSCOMMAND, $SC_MONITORPOWER, $MONITOR_OFF)
$null
なぜにWSHだとダメなんでしょ? SFC miniの使い方間違ってるんでしょうか?
環境はXP、Win7 Pro、Win7 HomePro(いづれもx86)です
718717
2015/02/21(土) 16:07:02.66ID:VnpKOASo > Win7 HomePro
Win7 Home Premiumの間違いorz
Win7 Home Premiumの間違いorz
719名無し~3.EXE
2015/02/22(日) 02:01:26.73ID:ue/FL006 PostMessage.Declare "user32", "PostMessageA"
にしてみれば?
にしてみれば?
720名無し~3.EXE
2015/02/22(日) 11:22:25.41ID:bGQ+1wc4721名無し~3.EXE
2015/02/25(水) 23:03:55.68ID:EVrBndbg すごく初歩的な質問なのですが
False,0,Null,Empty,"False","0"以外は真になるとのことなので
'この二つが真になるのはわかるんですが
if 1 then
MsgBox "真"
End If
if 9 and 10 then
MsgBox "真"
End If
'↓これが真にならないのはなぜですか?
if 2 and 9 then
MsgBox "真にならない"
End If
'これだと問題ありません
if 2 then
if 9 then
MsgBox "真"
End If
End If
二つの関数からの戻り値が両方とも0以外なら真にしたかったのですが
それ自体はちゃんと指定すれば解決したのですがなんかすごい気になってしまって
False,0,Null,Empty,"False","0"以外は真になるとのことなので
'この二つが真になるのはわかるんですが
if 1 then
MsgBox "真"
End If
if 9 and 10 then
MsgBox "真"
End If
'↓これが真にならないのはなぜですか?
if 2 and 9 then
MsgBox "真にならない"
End If
'これだと問題ありません
if 2 then
if 9 then
MsgBox "真"
End If
End If
二つの関数からの戻り値が両方とも0以外なら真にしたかったのですが
それ自体はちゃんと指定すれば解決したのですがなんかすごい気になってしまって
723名無し~3.EXE
2015/02/26(木) 00:46:02.74ID:oLPusGvh ファイルサーバ上にあるフォルダを共有フォルダにしたくて次のスクリプトをメモ帳にコピべしてvbs拡張子にして保存して、ダブルクリックしたのですが、何も表示されず、共有フォルダも表示されません。なにがダメなのでしょうか?
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = ""
strComputer = "atl-ws-01"
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
("C:\Public", "PublicShare", FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Public share for Fabrikam employees.")
パラメータ 説明
"C:\Public"
ファイルサーバ内の共有するフォルダのローカル パス
"PublicShare"
共有フォルダの共有名
FILE_SHARE
作成する共有の種類
MAXIMUM_CONNECTIONS
共有に同時に接続できるユーザーの最大数
"Fabrikam 社員用のパブリック共有"
共有フォルダの説明
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = ""
strComputer = "atl-ws-01"
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
("C:\Public", "PublicShare", FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Public share for Fabrikam employees.")
パラメータ 説明
"C:\Public"
ファイルサーバ内の共有するフォルダのローカル パス
"PublicShare"
共有フォルダの共有名
FILE_SHARE
作成する共有の種類
MAXIMUM_CONNECTIONS
共有に同時に接続できるユーザーの最大数
"Fabrikam 社員用のパブリック共有"
共有フォルダの説明
724名無し~3.EXE
2015/02/26(木) 17:41:39.37ID:tqIwUSBl725名無し~3.EXE
2015/03/02(月) 21:57:26.73ID:4eCMeSu6 >>721 偽のときの戻り値がゼロと決めてあるのなら、
if function1()<>0 and function2()<>0 then
と書ける。
0の場合もあるけどFalseとか""とかの場合もある、ということになると
(VBというよりExcelのワークシート関数とかでよくある罠だが)、
一つ一つの関数の結果を変数にとるなりしなきゃいけない。
VBのAndにはもう一つ罠がある。単純な例だがこんなのはダメ。
if x<>0 and f(1.0/x)=2 then
if function1()<>0 and function2()<>0 then
と書ける。
0の場合もあるけどFalseとか""とかの場合もある、ということになると
(VBというよりExcelのワークシート関数とかでよくある罠だが)、
一つ一つの関数の結果を変数にとるなりしなきゃいけない。
VBのAndにはもう一つ罠がある。単純な例だがこんなのはダメ。
if x<>0 and f(1.0/x)=2 then
726名無し~3.EXE
2015/03/13(金) 08:50:37.46ID:k2U8xQow 右Windowsキーの右隣のMenu/Applicationのキーストロークを
送信しようとしているのですが、うまくいきません。
お助けください。
var x0 = WScript.CreateObject("WScript.Shell");
x0.SendKeys("{APPSKEY}");
---------------------------
Windows Script Host
---------------------------
スクリプト: C:***\***.js
行: 2
文字: 1
エラー: プロシージャの呼び出し、または引数が不正です。
コード: 800A0005
ソース: Microsoft JScript 実行時エラー
---------------------------
OK
---------------------------
送信しようとしているのですが、うまくいきません。
お助けください。
var x0 = WScript.CreateObject("WScript.Shell");
x0.SendKeys("{APPSKEY}");
---------------------------
Windows Script Host
---------------------------
スクリプト: C:***\***.js
行: 2
文字: 1
エラー: プロシージャの呼び出し、または引数が不正です。
コード: 800A0005
ソース: Microsoft JScript 実行時エラー
---------------------------
OK
---------------------------
727名無し~3.EXE
2015/03/14(土) 19:04:00.24ID:xyKM/Ni4 //Shift+F10で出る右クリックメニューに'P'を送る
var x0 = WScript.CreateObject("WScript.Shell");
x0.SendKeys("+({F10}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}P)");
var x0 = WScript.CreateObject("WScript.Shell");
x0.SendKeys("+({F10}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}{PRTSC}P)");
728名無し~3.EXE
2015/03/15(日) 19:40:14.43ID:Ur/MCA52729名無し~3.EXE
2015/03/16(月) 22:17:56.08ID:3SLugBpb 一部の環境で
WScript.CreateObject("〜")
がWScriptは宣言されていませんとエラーになる原因って何なんですかね?
記述として正しいはずなのにWScriptを削れ(ググると出てくる対処療法)と言うのも変な話ですし
WScript.CreateObject("〜")
がWScriptは宣言されていませんとエラーになる原因って何なんですかね?
記述として正しいはずなのにWScriptを削れ(ググると出てくる対処療法)と言うのも変な話ですし
730名無し~3.EXE
2015/03/24(火) 09:41:17.61ID:j6UY6oz/ >>729
WScriptオブジェクトがあるのはWSHの時だけ
WScriptを削るとWScriptオブジェクトのCreateObjectメソッドではなく
VBScript自体が持ってるCreateObject関数の呼び出しになる
CreateObject関数はVBSが実行できるなら、どの環境でも使える
WScriptオブジェクトのCreateObjectメソッド
https://msdn.microsoft.com/ja-jp/library/cc364399.aspx
VBScriptのCreateObject関数
https://msdn.microsoft.com/ja-jp/library/cc410215.aspx
WScriptオブジェクトがあるのはWSHの時だけ
WScriptを削るとWScriptオブジェクトのCreateObjectメソッドではなく
VBScript自体が持ってるCreateObject関数の呼び出しになる
CreateObject関数はVBSが実行できるなら、どの環境でも使える
WScriptオブジェクトのCreateObjectメソッド
https://msdn.microsoft.com/ja-jp/library/cc364399.aspx
VBScriptのCreateObject関数
https://msdn.microsoft.com/ja-jp/library/cc410215.aspx
731名無し~3.EXE
2015/03/24(火) 16:04:39.58ID:qjgitYka WSHエンジンを叩いた時点でWScriptがインスタント化される
だからWSHを叩かなきゃ当然WScriptオブジェクトは存在しない
だからWSHを叩かなきゃ当然WScriptオブジェクトは存在しない
732名無し~3.EXE
2015/03/24(火) 16:05:44.79ID:qjgitYka 何でインスタントだよインスタンスだ俺の馬鹿
733名無し~3.EXE
2015/03/26(木) 23:55:44.54ID:/eqpjRM9 wshでExcelの扱い方が分かるサイトご存知でしたら教えていただけませんか?
既存のワークブックのセルを外から操作とか
既存のワークブックのセルを外から操作とか
734名無し~3.EXE
2015/03/27(金) 00:43:05.87ID:yPVC3FPi オブジェクトの掴み方や制約事項が多い以外は基本的にVBAとやり方は同じだから、基礎はマクロの文献漁った方が早いよ。
そもそもWSHやVBAの基礎になってるActiveX/COMつーのは、Excelみたいなものを共通部品(コンポーネント)化して、VBAのようなアプリ付属のマクロやWSHのような独立した言語から同じように使えるようにする技術なので。
そもそもWSHやVBAの基礎になってるActiveX/COMつーのは、Excelみたいなものを共通部品(コンポーネント)化して、VBAのようなアプリ付属のマクロやWSHのような独立した言語から同じように使えるようにする技術なので。
735名無し~3.EXE
2015/03/27(金) 00:57:13.75ID:yPVC3FPi ちなみにActiveXのCOM違いについて悩むかもしれんので補足すると、ActiveXがバージョンアップでCOMに変わったと考えて貰えばよろし。
更に付け加えると
クリップボード→DDE→OLE→ActiveX→COM→DCOM→COM+という流れがあって、古い技術で覚えたことが新しい技術でも何らかの形で役立つようになってる。
またMSはそれをWindows DNAと呼んでる。
更に付け加えると
クリップボード→DDE→OLE→ActiveX→COM→DCOM→COM+という流れがあって、古い技術で覚えたことが新しい技術でも何らかの形で役立つようになってる。
またMSはそれをWindows DNAと呼んでる。
736名無し~3.EXE
2015/04/14(火) 06:33:55.51ID:va3U4Gqa gVimでJSCriptを編集していますが、
JSHintが変なところに警告をだしてしまいます。
if(tagTitle != 'Internet Explorer ではこのページは表示できません')
↑だと「は」のところに "bad or unnecessary escaping." と警告を出します。
UTF8ではなく、CP932で編集していることが原因?
だと思うのですが、回避する方法はありますでしょうか?
JSHintが変なところに警告をだしてしまいます。
if(tagTitle != 'Internet Explorer ではこのページは表示できません')
↑だと「は」のところに "bad or unnecessary escaping." と警告を出します。
UTF8ではなく、CP932で編集していることが原因?
だと思うのですが、回避する方法はありますでしょうか?
737名無し~3.EXE
2015/04/14(火) 09:35:09.98ID:qHEHyjhC onion
738名無し~3.EXE
2015/04/30(木) 21:41:56.40ID:/LRZyAtt 職場のPC(win7/32bit)で、自由にソフトウェアをインストロールできない環境で
wsh/jscriptである程度自動化するのに
マウスを移動する、マウスの位置を検出する、
マウスを(D)クリックする、マウスを右クリックする
だけは、vc#(.net flamewalk2)でexeファイルを作成し
.exec()で、引数をつけ今までは使えていたのに
今日から、有効なwin32アプリケーションではありませんエラーで使えなくなった。
.exec()を経由しないで
別の単独実行可能なvc#(.net flamewalk2)で作成したexeファイルは
ダブリュークリックで普通に動く。
職場のPC管理者は陰険な妨害をしやがって、プンプン。
マウス操作なら、excelでwin32API叩ける関数で代用できるらしいが
勉強してないからなぁ。
wsh/jscriptである程度自動化するのに
マウスを移動する、マウスの位置を検出する、
マウスを(D)クリックする、マウスを右クリックする
だけは、vc#(.net flamewalk2)でexeファイルを作成し
.exec()で、引数をつけ今までは使えていたのに
今日から、有効なwin32アプリケーションではありませんエラーで使えなくなった。
.exec()を経由しないで
別の単独実行可能なvc#(.net flamewalk2)で作成したexeファイルは
ダブリュークリックで普通に動く。
職場のPC管理者は陰険な妨害をしやがって、プンプン。
マウス操作なら、excelでwin32API叩ける関数で代用できるらしいが
勉強してないからなぁ。
739名無し~3.EXE
2015/04/30(木) 21:46:14.83ID:nWtW7g8l execで全部のexeがダメなわけじゃないのなら、以下のを試してみれば?
http://3rd.geocities.jp/kaito_extra/Source/MouseCtrl.html
http://3rd.geocities.jp/kaito_extra/Source/MouseCtrl.html
740名無し~3.EXE
2015/04/30(木) 23:42:03.25ID:/LRZyAtt >>739
ありがとうございます。
ネットで配布されているDLL があやしいか、あやしくないかですが
自己責任で使ってみるしかないかなぁ。
Visual C++ 2010 express 入れてみて
ライセンスキーも入れたけど
windows form によるUI表示がない場合で
マウスI/Oをどうすればいいか
調べるだけで敷居が高いわなぁー
このスレではすれ違いですがね。
ありがとうございます。
ネットで配布されているDLL があやしいか、あやしくないかですが
自己責任で使ってみるしかないかなぁ。
Visual C++ 2010 express 入れてみて
ライセンスキーも入れたけど
windows form によるUI表示がない場合で
マウスI/Oをどうすればいいか
調べるだけで敷居が高いわなぁー
このスレではすれ違いですがね。
741名無し~3.EXE
2015/05/01(金) 00:09:58.65ID:n4sigpVl (´・ω・`)
742名無し~3.EXE
2015/05/01(金) 00:22:06.61ID:n4sigpVl ヽ( ・∀・)ノ● ウンコー
743名無し~3.EXE
2015/05/04(月) 12:04:00.19ID:1NxYoByh スクリプト内のコマンドを管理者権限で実行したい場合は、自身をShellExecuteにrunas付きで起動しなおすと
昇格ダイアログの出現を最初の1回のみに出来るけど以降実行されるすべてのコマンドが管理者権限で
実行されてしまう
最初の1回の昇格ダイアログで
コマンド1(管理者)
↓
コマンド2(ユーザー)
↓
コマンド3(管理者)
みたいなことって出来ないのかな・・・
昇格ダイアログの出現を最初の1回のみに出来るけど以降実行されるすべてのコマンドが管理者権限で
実行されてしまう
最初の1回の昇格ダイアログで
コマンド1(管理者)
↓
コマンド2(ユーザー)
↓
コマンド3(管理者)
みたいなことって出来ないのかな・・・
744名無し~3.EXE
2015/05/04(月) 16:53:59.41ID:FXdqzO1I runasオプションで管理者かどうか変えるんだっけ?
コマンド2は別スクリプトファイルを生成して、そこだけexecで起動すればどうだろ
コマンド2は別スクリプトファイルを生成して、そこだけexecで起動すればどうだろ
745名無し~3.EXE
2015/05/08(金) 23:20:30.41ID:AIQ249EY Win10だと今のところ
cscript //e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} hoge.js
または
wscript //e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} hoge.js
で、hoge.jsをIE11モードで実行できる
({1b7cd997-e5ff-4932-a7a6-2a9e636da385}はchakra.dllのCLSID)
cscript //e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} hoge.js
または
wscript //e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} hoge.js
で、hoge.jsをIE11モードで実行できる
({1b7cd997-e5ff-4932-a7a6-2a9e636da385}はchakra.dllのCLSID)
746745
2015/05/08(金) 23:39:36.96ID:AIQ249EY747名無し~3.EXE
2015/05/08(金) 23:52:07.41ID:iucWayLK onion
748名無し~3.EXE
2015/05/08(金) 23:54:37.61ID:p7W4x9kO これすごくね
最新のjsライブラリよりどりみどりじゃん
wshはじまた
最新のjsライブラリよりどりみどりじゃん
wshはじまた
749名無し~3.EXE
2015/05/09(土) 12:13:07.59ID:KRtLfl+h それは以前にもあったネタだよね
http://subtech.g.hatena.ne.jp/mayuki/20111216/1324015296
WSHではどうやっても5.7互換モードでしか動かないって結論が出てたはずだけど、Win10ではまともに動くのかな
http://subtech.g.hatena.ne.jp/mayuki/20111216/1324015296
WSHではどうやっても5.7互換モードでしか動かないって結論が出てたはずだけど、Win10ではまともに動くのかな
750名無し~3.EXE
2015/05/09(土) 14:13:40.03ID:3Wn8xF40 なるほど
751名無し~3.EXE
2015/05/09(土) 14:38:55.86ID:3Wn8xF40 onion
752名無し~3.EXE
2015/05/09(土) 14:48:40.54ID:qZN+uui7 (*゚Д゚)ムッハー
753名無し~3.EXE
2015/05/14(木) 19:59:05.56ID:na1Ke3J0 Microsoft、Windows 10 IoT Core上でNode.jsを利用可能にする取り組みについてブログで解説
http://codezine.jp/article/detail/8722
Windows 10によるNode.jsのサポートは、現時点ではまだ開発の初期段階で、
Chakra JavaScriptエンジンと「Node.js v0.12」のコードを使用したV8 APIのホスティングによる
JSRT APIラッパーの開発を目指している。
GitHubで公開している最新のコードでは、Windows 10が動作するすべてのデバイスで、
Node.jsがクラシックWindowsアプリケーションとして動作するとともに、
ユニバーサルWindowsアプリケーションの内部でホストできる。
また、Node.jsアプリからUWP APIの全ての機能にアクセス可能で、
Windows 10上のVisual Studioにおける、Node.jsアプリのデバッグを実現している。
現段階では、Windows 10の動作するすべてのデバイスでNode.jsを利用した開発を実現するだけでなく、
クラシックWindowsアプリとして利用するか、ユニバーサルWindowsアプリとして利用するかを選択できる。
http://codezine.jp/article/detail/8722
Windows 10によるNode.jsのサポートは、現時点ではまだ開発の初期段階で、
Chakra JavaScriptエンジンと「Node.js v0.12」のコードを使用したV8 APIのホスティングによる
JSRT APIラッパーの開発を目指している。
GitHubで公開している最新のコードでは、Windows 10が動作するすべてのデバイスで、
Node.jsがクラシックWindowsアプリケーションとして動作するとともに、
ユニバーサルWindowsアプリケーションの内部でホストできる。
また、Node.jsアプリからUWP APIの全ての機能にアクセス可能で、
Windows 10上のVisual Studioにおける、Node.jsアプリのデバッグを実現している。
現段階では、Windows 10の動作するすべてのデバイスでNode.jsを利用した開発を実現するだけでなく、
クラシックWindowsアプリとして利用するか、ユニバーサルWindowsアプリとして利用するかを選択できる。
754名無し~3.EXE
2015/05/14(木) 20:22:22.46ID:eplPU7hw (´・ω・`)
755名無し~3.EXE
2015/05/19(火) 21:24:54.79ID:DJFQjSZE WORDで2セクションから成るWORDのファイルを
別々のファイルとして自動的に保存するサンプルはVBscript版はy!知恵袋にあるが
jscript版はなかったので、灯火。
var oWord = WScript.CreateObject("Word.Application");
var oDoc = oWord.Documents.Open("C:\\Users\\Public\\Documents\\01bunkatuMAE.doc");
oWord.Visible = true;
var newDoc,sec;
for(i=1;i<=2;i++){
sec = oDoc.Sections(i);
newDoc = oWord.Documents.Add();
oDoc.Range(sec.Range.Start, sec.Range.End - 1).Copy();
newDoc.Range().Paste();
if(i==1) newDoc.SaveAs("C:\\Users\\Public\\Documents\\02_section1.doc");
if(i==2) newDoc.SaveAs("C:\\Users\\Public\\Documents\\03_section2.doc");
newDoc.close();
}
oDoc.close();
別々のファイルとして自動的に保存するサンプルはVBscript版はy!知恵袋にあるが
jscript版はなかったので、灯火。
var oWord = WScript.CreateObject("Word.Application");
var oDoc = oWord.Documents.Open("C:\\Users\\Public\\Documents\\01bunkatuMAE.doc");
oWord.Visible = true;
var newDoc,sec;
for(i=1;i<=2;i++){
sec = oDoc.Sections(i);
newDoc = oWord.Documents.Add();
oDoc.Range(sec.Range.Start, sec.Range.End - 1).Copy();
newDoc.Range().Paste();
if(i==1) newDoc.SaveAs("C:\\Users\\Public\\Documents\\02_section1.doc");
if(i==2) newDoc.SaveAs("C:\\Users\\Public\\Documents\\03_section2.doc");
newDoc.close();
}
oDoc.close();
756名無し~3.EXE
2015/05/21(木) 20:38:57.59ID:A6tn3+F6757名無し~3.EXE
2015/05/21(木) 21:18:58.62ID:iZCONYdP (´・ω・`)
758名無し~3.EXE
2015/05/21(木) 21:37:06.04ID:/5sD0n5M tes
759名無し~3.EXE
2015/05/23(土) 15:41:12.05ID:ISKmDePi 俺も投下。wshからexplorerを経由してhtaを利用するサンプル。ググってもIEを経由する方法しか無かったので
function createHta() {
var shellApp = new ActiveXObject("Shell.Application");
var existsExplr = !!shellApp.Windows().Count;
existsExplr || shellApp.ShellExecute("", "", "explorer.exe", "", 0);
for(; !shellApp.Windows().Count; WScript.Sleep(100));
var explr = shellApp.Windows().Item(0);
explr.PutProperty("hta", undefined);
var exec = new ActiveXObject("WScript.Shell").Exec("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=11' />" +
"<script>window.moveTo(window.screen.width, window.screen.length);" +
"new ActiveXObject('Shell.Application').Windows().Item(0)" +
".PutProperty('hta', window);</script></head><body></body>\"");
for(; explr.GetProperty("hta") === undefined; WScript.Sleep(100));
var window = explr.GetProperty("hta");
explr.PutProperty("hta", undefined);
existsExplr || explr.Quit();
return {window: window, exec: exec};
}
つづく
function createHta() {
var shellApp = new ActiveXObject("Shell.Application");
var existsExplr = !!shellApp.Windows().Count;
existsExplr || shellApp.ShellExecute("", "", "explorer.exe", "", 0);
for(; !shellApp.Windows().Count; WScript.Sleep(100));
var explr = shellApp.Windows().Item(0);
explr.PutProperty("hta", undefined);
var exec = new ActiveXObject("WScript.Shell").Exec("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=11' />" +
"<script>window.moveTo(window.screen.width, window.screen.length);" +
"new ActiveXObject('Shell.Application').Windows().Item(0)" +
".PutProperty('hta', window);</script></head><body></body>\"");
for(; explr.GetProperty("hta") === undefined; WScript.Sleep(100));
var window = explr.GetProperty("hta");
explr.PutProperty("hta", undefined);
existsExplr || explr.Quit();
return {window: window, exec: exec};
}
つづく
760名無し~3.EXE
2015/05/23(土) 15:43:29.47ID:ISKmDePi 使用例
var hta = createHta();
function callback() {
WScript.Echo("this is wsh function");
}
hta.window.document.write("click here");
hta.window.document.body.addEventListener("click", callback);
hta.window.resizeTo(600, 400);
hta.window.moveTo(0, 0);
for(; !hta.exec.status; WScript.Sleep(1000));
metaタグで一応IE11モードで動くようにしてある
起動と同時に画面外に移動させ、初期化が完了したら呼び戻す
htaが終了するまでwshは待機する
wshからhtaのwindowオブジェクトにアクセスできる
逆にhtaからwshの関数をコールバックすることもできる
なおhtaにjqueryを読み込んでonメソッドでwshの関数をセットするのは無理だった
ブラウザ用のライブラリ使って高度なことやるなら普通にhtaでやったほうがよさそう
おわり
var hta = createHta();
function callback() {
WScript.Echo("this is wsh function");
}
hta.window.document.write("click here");
hta.window.document.body.addEventListener("click", callback);
hta.window.resizeTo(600, 400);
hta.window.moveTo(0, 0);
for(; !hta.exec.status; WScript.Sleep(1000));
metaタグで一応IE11モードで動くようにしてある
起動と同時に画面外に移動させ、初期化が完了したら呼び戻す
htaが終了するまでwshは待機する
wshからhtaのwindowオブジェクトにアクセスできる
逆にhtaからwshの関数をコールバックすることもできる
なおhtaにjqueryを読み込んでonメソッドでwshの関数をセットするのは無理だった
ブラウザ用のライブラリ使って高度なことやるなら普通にhtaでやったほうがよさそう
おわり
761名無し~3.EXE
2015/05/23(土) 20:55:04.00ID:ISKmDePi 追伸
document.write()だとソース消えちゃうんだな
hta.window.document.write("click here");
↓こうで
hta.window.document.body.innerText = "click here";
今度こそおわり
document.write()だとソース消えちゃうんだな
hta.window.document.write("click here");
↓こうで
hta.window.document.body.innerText = "click here";
今度こそおわり
762名無し~3.EXE
2015/05/23(土) 21:18:49.17ID:FbAoSuRB 乙
763名無し~3.EXE
2015/05/23(土) 21:43:08.57ID:FbAoSuRB 乙
764名無し~3.EXE
2015/05/23(土) 22:11:59.33ID:X2cmX/YI thx
765名無し~3.EXE
2015/05/25(月) 23:47:20.51ID:E7cADiN2 >>759-761だけど「単独のjsファイルでウインドウ付きのguiアプリを動かす」というだけならこんな面倒なことせずに済むことに気づいた
起動するhtaの外部ソースに自分自身を指定するだけ
(function() {
if ("WScript" in this) {
new ActiveXObject("WScript.Shell").Run("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=edge' />" +
"<script src=" + WScript.ScriptFullName + "></script></head><body></body>\"");
WScript.Quit();
}
})();
onload = function(){
document.body.innerText = "click here";
document.body.addEventListener("click", function() {
alert("success");
});
resizeTo(600, 400);
};
これを拡張子.jsにしてダブルクリックするとウインドウが立ち上がる
上の無名関数はwshで実行するとhtaを起動し、htaで実行するとスルーしてその後の処理を続ける
webサイト用のjsも頭にこれを付けると(うまくいけば)ローカルアプリになる
既出のテクかもしれないけど一応報告
起動するhtaの外部ソースに自分自身を指定するだけ
(function() {
if ("WScript" in this) {
new ActiveXObject("WScript.Shell").Run("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=edge' />" +
"<script src=" + WScript.ScriptFullName + "></script></head><body></body>\"");
WScript.Quit();
}
})();
onload = function(){
document.body.innerText = "click here";
document.body.addEventListener("click", function() {
alert("success");
});
resizeTo(600, 400);
};
これを拡張子.jsにしてダブルクリックするとウインドウが立ち上がる
上の無名関数はwshで実行するとhtaを起動し、htaで実行するとスルーしてその後の処理を続ける
webサイト用のjsも頭にこれを付けると(うまくいけば)ローカルアプリになる
既出のテクかもしれないけど一応報告
766名無し~3.EXE
2015/05/26(火) 08:59:16.46ID:D2iz9cfE すまんクォーテーションでくくるの忘れてた
"<script src=" + WScript.ScriptFullName + "></script></head><body></body>\"");
↓こうで
"<script src='" + WScript.ScriptFullName + "'></script></head><body></body>\"");
"<script src=" + WScript.ScriptFullName + "></script></head><body></body>\"");
↓こうで
"<script src='" + WScript.ScriptFullName + "'></script></head><body></body>\"");
767名無し~3.EXE
2015/05/27(水) 22:13:07.05ID:UVeFO6It 勉強がてらD3.jsを使ってCPU周波数を可視化するサンプル作った。.jsにしてダブルクリック
スクショ→http://i.imgur.com/IgY8wq5.png
if ("WScript" in this) {
new ActiveXObject("WScript.Shell").Run("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=edge' />" +
"<script src='http://d3js.org/d3.v3.min.js'></script>" +
"<script src='" + WScript.ScriptFullName + "'></script>" +
"<script>moveTo(screen.width, 0);</script>" +
"<title>" + WScript.ScriptName + "</title></head><body></body>\"");
WScript.Quit();
}
onload = function() {
var service = new ActiveXObject("WbemScripting.SWbemLocator").ConnectServer();
var svg = d3.select("body").style({margin: 0, overflow: "hidden"}).append("svg").attr({width: 300, height: 300});
var circle = svg.append("circle").attr({cx: 150, cy: 150, fill: "white", stroke: "black", "stroke-width": 6});
var text = svg.append("text").attr({x: 150, y: 160, "text-anchor": "middle", "font-size": 25, "font-family": "sans-serif"});
setInterval(function(){
var records = service.ExecQuery("SELECT MaxClockSpeed, CurrentClockSpeed FROM Win32_Processor");
var record = new Enumerator(records).item();
var rScale = d3.scale.linear().domain([0, record.MaxClockSpeed]).range([0, 145]);
circle.data([record.CurrentClockSpeed]).transition().attr({r: rScale});
text.text(record.CurrentClockSpeed + " Mhz");
}, 1000);
resizeTo(320, 340);
moveTo((screen.width - innerWidth) / 2, (screen.height - innerHeight) / 2);
};
スクショ→http://i.imgur.com/IgY8wq5.png
if ("WScript" in this) {
new ActiveXObject("WScript.Shell").Run("mshta.exe \"about:" +
"<head><meta http-equiv='X-UA-Compatible' content='IE=edge' />" +
"<script src='http://d3js.org/d3.v3.min.js'></script>" +
"<script src='" + WScript.ScriptFullName + "'></script>" +
"<script>moveTo(screen.width, 0);</script>" +
"<title>" + WScript.ScriptName + "</title></head><body></body>\"");
WScript.Quit();
}
onload = function() {
var service = new ActiveXObject("WbemScripting.SWbemLocator").ConnectServer();
var svg = d3.select("body").style({margin: 0, overflow: "hidden"}).append("svg").attr({width: 300, height: 300});
var circle = svg.append("circle").attr({cx: 150, cy: 150, fill: "white", stroke: "black", "stroke-width": 6});
var text = svg.append("text").attr({x: 150, y: 160, "text-anchor": "middle", "font-size": 25, "font-family": "sans-serif"});
setInterval(function(){
var records = service.ExecQuery("SELECT MaxClockSpeed, CurrentClockSpeed FROM Win32_Processor");
var record = new Enumerator(records).item();
var rScale = d3.scale.linear().domain([0, record.MaxClockSpeed]).range([0, 145]);
circle.data([record.CurrentClockSpeed]).transition().attr({r: rScale});
text.text(record.CurrentClockSpeed + " Mhz");
}, 1000);
resizeTo(320, 340);
moveTo((screen.width - innerWidth) / 2, (screen.height - innerHeight) / 2);
};
768名無し~3.EXE
2015/06/07(日) 18:01:55.94ID:ba00/D5p ここの人たちはどうやってWSHを勉強しているんだろう
本屋行っても2種類くらいしか書籍ないし、ネットでもほとんど情報ないし
JavaScriptが分かるからこれで作業自動化なんて考えたけど難しい
本屋行っても2種類くらいしか書籍ないし、ネットでもほとんど情報ないし
JavaScriptが分かるからこれで作業自動化なんて考えたけど難しい
769名無し~3.EXE
2015/06/07(日) 19:33:18.23ID:LcHw3WPs JavaScriptとMSDNにあるWSHのリファレンス
770名無し~3.EXE
2015/06/07(日) 22:56:55.56ID:RSp5U117 >>768
何かやりたいことが先にあって、それを実現するにはとうしたらいいかを調べていけばいい
学校の授業のように教科書があって順に読んでいけば良いとか無い
またそんな曖昧な目的しかなければ何時まで経っても身に付かないと思う
何かやりたいことが先にあって、それを実現するにはとうしたらいいかを調べていけばいい
学校の授業のように教科書があって順に読んでいけば良いとか無い
またそんな曖昧な目的しかなければ何時まで経っても身に付かないと思う
771名無し~3.EXE
2015/06/08(月) 23:29:47.27ID:45GIk1Zt772名無し~3.EXE
2015/06/09(火) 00:37:03.27ID:cIGPXtYX 情報thx
773名無し~3.EXE
2015/06/09(火) 00:52:59.92ID:42hj0R96774名無し~3.EXE
2015/06/13(土) 21:50:01.10ID:lqFz5zpc jscript を chakra で実行すると WScript.quit って使えないの?
775名無し~3.EXE
2015/06/13(土) 23:01:38.40ID:aBVLZMxS というか>>745って動く?
Win10 Build10130だけど「スクリプトエンジンが見つかりません」ってなる
Win10 Build10130だけど「スクリプトエンジンが見つかりません」ってなる
776名無し~3.EXE
2015/06/13(土) 23:28:44.26ID:lqFz5zpc777775
2015/07/02(木) 17:01:18.39ID:44uIXt3S778名無し~3.EXE
2015/07/05(日) 09:47:49.01ID:HOP89DPP Alt+tabのときに出てくる画面選択できるウィンドウを表示させたままにしたいのですが、これはwshで実現可能ですか?
ソフトのダウンロードではなくメモ帳でjseやvbsで作成したいです。
検索かけてもキーの自動入力くらいしか見つからなくって
ソフトのダウンロードではなくメモ帳でjseやvbsで作成したいです。
検索かけてもキーの自動入力くらいしか見つからなくって
779名無し~3.EXE
2015/07/05(日) 20:49:51.63ID:bMwt9ybH >>778
Win8.x/10ならこれ
https://msdn.microsoft.com/en-us/library/bb774117(v=vs.85).aspx
Vista/7だとFlip3Dになっちゃうけど
Win8.x/10ならこれ
https://msdn.microsoft.com/en-us/library/bb774117(v=vs.85).aspx
Vista/7だとFlip3Dになっちゃうけど
780779
2015/07/05(日) 20:53:22.81ID:bMwt9ybH VBS → CreateObject("Shell.Application").WindowSwitcher
JS → new ActiveXObject("Shell.Application").WindowSwitcher();
JS → new ActiveXObject("Shell.Application").WindowSwitcher();
781名無し~3.EXE
2015/07/06(月) 00:33:30.17ID:1hJ4Jgm2 >>780
ありがとうございます!
switcherのような名前で検索するとマイクロソフトの公式で調べられたんですね。
あとはウィンドウを表示させたままにする方法を探してみようと思います。
使っているファイルが多いのと、最近目が疲れているせいかalt+tabで開いてもどれが目的のウィンドウか探すのに地味に時間がかかってしまって……
ありがとうございます!
switcherのような名前で検索するとマイクロソフトの公式で調べられたんですね。
あとはウィンドウを表示させたままにする方法を探してみようと思います。
使っているファイルが多いのと、最近目が疲れているせいかalt+tabで開いてもどれが目的のウィンドウか探すのに地味に時間がかかってしまって……
782名無し~3.EXE
2015/07/06(月) 04:45:21.92ID:vbmuV6vK thx
783名無し~3.EXE
2015/07/11(土) 15:51:17.53ID:9Eg4whLJ chakra(>>745)だとEnumeratorがないからFileSystemObjectのfilesコレクションとか列挙できないな
せっかく書きやすくなったと思ったのに残念
せっかく書きやすくなったと思ったのに残念
784名無し~3.EXE
2015/07/12(日) 14:51:20.12ID:owIV2yJO785名無し~3.EXE
2015/07/12(日) 15:53:48.36ID:7v5ASif7786名無し~3.EXE
2015/07/12(日) 22:06:02.78ID:aQFxKc5K WSHのバージョン5.812ってなんだよww
787名無し~3.EXE
2015/07/29(水) 02:08:22.01ID:Wfnu2z0p vbsやwsfやhtaって10でも使えるって考えていいの?
powershellに統一されることはないの?
powershellに統一されることはないの?
788名無し~3.EXE
2015/07/31(金) 01:28:37.30ID:YUritsbl パワーシェルはバッチと組み合わせないと使えないのでめんどくさい。
790名無し~3.EXE
2015/09/01(火) 23:45:19.08ID:+Mia2Mma Windows7のタスクスケジューラで問題なく起動していたjsが
Windows10にアップグレードしたら「このファイルを開く方法を選んでください」ダイヤログが出て動かなくなった
半日悩んだがファイル名に半角スペースが含まれていたからだった
この糞仕様は常識なの?
Windows10にアップグレードしたら「このファイルを開く方法を選んでください」ダイヤログが出て動かなくなった
半日悩んだがファイル名に半角スペースが含まれていたからだった
この糞仕様は常識なの?
791名無し~3.EXE
2015/09/20(日) 15:54:26.33ID:S9LQQUec アップグレードでダブルクォーテーション取れたとかじゃなくて?
半角スペース云々の話は常識っていうか…
それを糞と言っちゃう人の頭が糞仕様としか
半角スペース云々の話は常識っていうか…
それを糞と言っちゃう人の頭が糞仕様としか
792名無し~3.EXE
2015/10/10(土) 03:33:34.62ID:ZxWiY8fL >>765をSJISで保存して漢字を入れると盛大に文字化けするんだけど文字コードってどうやって指定するんでしょうか。
<meta http-equiv='Content-Type' content='text/html; charset=shift_jis' />を入れても解消しませんでした。
ファイルをUTF8で保存すると文字化けせず大丈夫なんですが任意の文字コードが使えないとちょっと。
<meta http-equiv='Content-Type' content='text/html; charset=shift_jis' />を入れても解消しませんでした。
ファイルをUTF8で保存すると文字化けせず大丈夫なんですが任意の文字コードが使えないとちょっと。
793名無し~3.EXE
2015/10/11(日) 16:33:07.95ID:jSwD0goV ちょろっとやってみたらhtaのロード部分はなんの問題も無いみたいだね
問題はonload部分の文字コードがutf-8決め打ちで読み取られてる、と言う訳でscriptタグ部分にcharsetを指定してやればいい
"<script charset ='shift_jis' src='" + WScript.ScriptFullName + "'></script>
問題はonload部分の文字コードがutf-8決め打ちで読み取られてる、と言う訳でscriptタグ部分にcharsetを指定してやればいい
"<script charset ='shift_jis' src='" + WScript.ScriptFullName + "'></script>
794名無し~3.EXE
2015/10/30(金) 15:55:24.49ID:gAY/Xk4a ホスト自作してchakraでスクリプティングとかの実例は無いんかのう。
795名無し~3.EXE
2015/10/31(土) 23:17:18.36ID:PFgOQOh9 Set DW = CreateObject("DynamicWrapper")
とメモ帳に入力し、C\直下にDW.vbsで保存。コマンドプロンプトを管理者権限で起動し、
c:\windows\SysWOW64\cscript.exe DW.vbs
と実行すると、ActiveXコンポーネントはオブジェクトを作成できません。というエラーを吐く
何で?
Win7 64bit
とメモ帳に入力し、C\直下にDW.vbsで保存。コマンドプロンプトを管理者権限で起動し、
c:\windows\SysWOW64\cscript.exe DW.vbs
と実行すると、ActiveXコンポーネントはオブジェクトを作成できません。というエラーを吐く
何で?
Win7 64bit
796名無し~3.EXE
2015/11/07(土) 07:57:35.87ID:coD8+8oH 会社に命じられてWindows7 64ビットに移行させられたんですけど、一部のvbsが動きません
32ビットのwscriptエンジンを使えばいいかなと思うのですが、
今まで通りダブルクリックやファイルをドロップする実行方法で32ビットのエンジンで実行する方法ありましたら教えてください
ファイルの関連付けを変える方法を試したのですがうまくいきませんでした
32ビットのwscriptエンジンを使えばいいかなと思うのですが、
今まで通りダブルクリックやファイルをドロップする実行方法で32ビットのエンジンで実行する方法ありましたら教えてください
ファイルの関連付けを変える方法を試したのですがうまくいきませんでした
797名無し~3.EXE
2015/11/07(土) 17:03:07.12ID:U4HN3Ay4 wshでADO.NET使えますか?
798名無し~3.EXE
2015/11/08(日) 19:26:08.58ID:EuCvPNOS >>796
レジストリいじっていいならregeditで
HKEY_CLASSESROOT\vbsfile\shell\open\commandに
C:\windows\SysWOW64\wscript.exe "%1" %*入れる
C:\Windows\System32\WScript.exe "%1" %*があったら上に変更
駄目だったら戻してね
レジストリいじっていいならregeditで
HKEY_CLASSESROOT\vbsfile\shell\open\commandに
C:\windows\SysWOW64\wscript.exe "%1" %*入れる
C:\Windows\System32\WScript.exe "%1" %*があったら上に変更
駄目だったら戻してね
799名無し~3.EXE
2015/11/08(日) 23:50:23.04ID:V3wje+U4 >>796
方法その一
259 名前:名無し~3.EXE[sage] 投稿日:2011/09/26(月) 00:25:36.97 ID:CKbYoUCB
WSHスクリプトを64/32bitが違っていたら起動し直す。
http://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
方法その二
32bitアプリのファイラを使ってvbsファイルを操作する
方法その一
259 名前:名無し~3.EXE[sage] 投稿日:2011/09/26(月) 00:25:36.97 ID:CKbYoUCB
WSHスクリプトを64/32bitが違っていたら起動し直す。
http://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
方法その二
32bitアプリのファイラを使ってvbsファイルを操作する
800796
2015/11/10(火) 22:41:08.95ID:HDYxoiSR801名無し~3.EXE
2015/11/14(土) 19:19:55.55ID:RNO50Lcc 横からだけど%*ってどういう意味だっけ
803名無し~3.EXE
2015/11/23(月) 23:05:48.47ID:nD0rlIIZ804名無し~3.EXE
2015/11/27(金) 07:18:59.11ID:dOr9jkTm var a;
a = eval("[\"abc\",\"def\"]");
WScript.Echo(a[0]);
→abc
は実行出来るけど
var a;
a = eval("{\"abc\":\"def\"}");
WScript.Echo(a["abc"]);
はevalでエラーになります。これはどうにもならないのかな・・・
a = eval("[\"abc\",\"def\"]");
WScript.Echo(a[0]);
→abc
は実行出来るけど
var a;
a = eval("{\"abc\":\"def\"}");
WScript.Echo(a["abc"]);
はevalでエラーになります。これはどうにもならないのかな・・・
806名無し~3.EXE
2015/11/27(金) 10:31:50.40ID:EYEBJY2Y >>804
ttp://language-and-engineering.hatenablog.jp/entry/20081022/1224597688
{x:1}
は,なんと「ラベル付きの文が中括弧でくくられている」とみなされ,
obj = eval( "{x:1}" );
の結果,objの値に数値1が代入される。
プロパティが複数ある場合には,
{x:1, y:2}
の最初の x: のあとの部分が「文」にならないので,「セミコロンがありません」というエラーになる。
一つの解決法は,丸括弧 () でくくること。
var str = "({x:1})";
とすれば,evalで評価した時にハッシュとして正常に解釈される。
丸括弧によって「中身はオブジェクトです」という意思表示ができるのである。
ttp://language-and-engineering.hatenablog.jp/entry/20081022/1224597688
{x:1}
は,なんと「ラベル付きの文が中括弧でくくられている」とみなされ,
obj = eval( "{x:1}" );
の結果,objの値に数値1が代入される。
プロパティが複数ある場合には,
{x:1, y:2}
の最初の x: のあとの部分が「文」にならないので,「セミコロンがありません」というエラーになる。
一つの解決法は,丸括弧 () でくくること。
var str = "({x:1})";
とすれば,evalで評価した時にハッシュとして正常に解釈される。
丸括弧によって「中身はオブジェクトです」という意思表示ができるのである。
807名無し~3.EXE
2015/11/27(金) 10:53:52.55ID:S4fdjd37 へー
808名無し~3.EXE
2015/11/27(金) 11:01:56.93ID:OG/mUtfI ('A`)
810名無し~3.EXE
2015/12/05(土) 13:10:21.50ID:HCxkbB1B ADODBのStreamで限定的ながらバイナリファイルを読み書き出来ますけど
裏技っぽい感じですしWSHが使えるすべてのWindowsで期待した動作をするのでしょうか?
この実装でバイナリファイルを正常に読めることを前提としたスクリプトの配布を
考えているのですがちょっと不安です
裏技っぽい感じですしWSHが使えるすべてのWindowsで期待した動作をするのでしょうか?
この実装でバイナリファイルを正常に読めることを前提としたスクリプトの配布を
考えているのですがちょっと不安です
811名無し~3.EXE
2015/12/05(土) 13:52:03.81ID:8/N/dh/l >>810
多分大丈夫っぽいけど、書き方によってはセキュリティソフトの一部(Aviraとか)で誤検出されるので注意
多分大丈夫っぽいけど、書き方によってはセキュリティソフトの一部(Aviraとか)で誤検出されるので注意
813名無し~3.EXE
2015/12/05(土) 21:39:57.73ID:TC+kSar6 むしろこれがないとバイナリ扱えないでしょ画像を扱えなくなる
裏技っぽいとか今更言われても困るわ
裏技っぽいとか今更言われても困るわ
814名無し~3.EXE
2015/12/05(土) 22:45:26.11ID:HCxkbB1B ありがとう。大丈夫らしいとのことなのでとりあえず組んでみるかな・・・
あまりにも遅かったらRubyにしよう
>>812
読み込んだ値をテーブルで変換したりビット演算したりしないと
正しい値を得られない仕様を正攻法と呼ぶのは違和感があります
このために1byteずつしか読み込めませんし
あまりにも遅かったらRubyにしよう
>>812
読み込んだ値をテーブルで変換したりビット演算したりしないと
正しい値を得られない仕様を正攻法と呼ぶのは違和感があります
このために1byteずつしか読み込めませんし
815名無し~3.EXE
2015/12/05(土) 23:05:01.61ID:4BdTphf4816名無し~3.EXE
2015/12/05(土) 23:23:02.80ID:8/N/dh/l817名無し~3.EXE
2015/12/05(土) 23:31:52.89ID:8/N/dh/l これは>>814のレス内容からの推測なので違ってるのかも知れない
jscriptだと勝手に思ったし、jscriptでも
wsfとかでvbscript連携して読むなり
Msxml2.DOMDocumentでhex文字列に変換するなり別の方法はあるとは思う
jscriptだと勝手に思ったし、jscriptでも
wsfとかでvbscript連携して読むなり
Msxml2.DOMDocumentでhex文字列に変換するなり別の方法はあるとは思う
818名無し~3.EXE
2015/12/06(日) 00:42:46.08ID:F68eazf1 VBScriptの記事だとこの辺か。
ttp://history-music.net/vbscript-base64-hex-binary/
ググると「iso-8859-1で...」みたいなページが多いから勘違いするのも仕方がないけど,
Microsoft.XMLDOMかMsxml2.DOMDocumentオブジェクト使って,
16進文字列とバイナリを相互変換する方がいいよ。
1byteずつなんて制限はないし,十分早いと思う。
ttp://history-music.net/vbscript-base64-hex-binary/
ググると「iso-8859-1で...」みたいなページが多いから勘違いするのも仕方がないけど,
Microsoft.XMLDOMかMsxml2.DOMDocumentオブジェクト使って,
16進文字列とバイナリを相互変換する方がいいよ。
1byteずつなんて制限はないし,十分早いと思う。
819名無し~3.EXE
2015/12/07(月) 17:51:14.07ID:vQfNZVDF ごめん、変換とかいうはなしはどこから出てくるんだろう。
「バイナリファイルを正常に読めることを前提」とあるから
まあバイナリファイルを読んで何かするんだろうけど。
「バイナリファイルを正常に読めることを前提」とあるから
まあバイナリファイルを読んで何かするんだろうけど。
820名無し~3.EXE
2015/12/07(月) 17:53:50.73ID:UNNqcniz821名無し~3.EXE
2015/12/07(月) 17:57:55.04ID:vQfNZVDF822名無し~3.EXE
2015/12/07(月) 18:05:05.11ID:vQfNZVDF この辺の話か。なるほど。
FileStream.js - binary file manipulation for WSH
http://hp.vector.co.jp/authors/VA033015/fsjs.html
前提条件/制約とのトレードオフだろうね。
「OSの素のままの状態でスクリプトだけで動く」必要があるならWSHでやるしかなかろう。
FileStream.js - binary file manipulation for WSH
http://hp.vector.co.jp/authors/VA033015/fsjs.html
前提条件/制約とのトレードオフだろうね。
「OSの素のままの状態でスクリプトだけで動く」必要があるならWSHでやるしかなかろう。
823名無し~3.EXE
2015/12/07(月) 18:12:43.86ID:UNNqcniz824名無し~3.EXE
2015/12/07(月) 18:32:53.45ID:vQfNZVDF >>823
まったくその通りだ。
おかげでこんなのを見つけた。ありがとう。
JScriptでBase64 on @Qiita
http://qiita.com/tnakagawa/items/beaec98fd64b20894245
まったくその通りだ。
おかげでこんなのを見つけた。ありがとう。
JScriptでBase64 on @Qiita
http://qiita.com/tnakagawa/items/beaec98fd64b20894245
825名無し~3.EXE
2015/12/10(木) 00:17:53.24ID:n+FmGR1Q >>822
そのプログラムにはバグがあります。
ファイル終端付近に 0xBF があると,数バイトを読み落とします。
たとえば,半角カタカナで
クソミソ
とだけ書かれたファイルを dump.js に与えると,最初の1バイトしか出力されません。
そのプログラムにはバグがあります。
ファイル終端付近に 0xBF があると,数バイトを読み落とします。
たとえば,半角カタカナで
クソミソ
とだけ書かれたファイルを dump.js に与えると,最初の1バイトしか出力されません。
826810
2015/12/13(日) 20:21:45.77ID:E2f6+XvN ありがとうございます。試していて大分かかりました
>>818
>ググると「iso-8859-1で...」みたいなページが多い
はい、その通りでiso-8859-1を使う方法しかないと思っていました
ADODB.Stream&Type=1でAviraが騒ぐ以外は問題なさそうなので
これでいこうと思います。ありがとうございました
byte列の長さを容易に得られない?のがちょっと面倒ですね
>>818
>ググると「iso-8859-1で...」みたいなページが多い
はい、その通りでiso-8859-1を使う方法しかないと思っていました
ADODB.Stream&Type=1でAviraが騒ぐ以外は問題なさそうなので
これでいこうと思います。ありがとうございました
byte列の長さを容易に得られない?のがちょっと面倒ですね
827名無し~3.EXE
2015/12/14(月) 01:24:17.95ID:ZAD57Ykk >>826
> byte列の長さを容易に得られない?のがちょっと面倒ですね
確かに。
バイナリオブジェクトには長さどころか,プロパティもメソッドも何もないように見えます。
ADODB.Stream で Read する前後の .Position の差を覚えておくのが最良ですが,
後から得ようとするのも,困難というほどでもないですね。
(1) ADODB.Stream で .Position = 0 からバイナリを Write した後の .Position を返す関数を作る。
(2) Msxml2.DOMDocument で .nodeTypedValue へバイナリをセットし,.text.length / 2 を返す関数を作る。
どちらもクロージャにした方が速いですね。
> byte列の長さを容易に得られない?のがちょっと面倒ですね
確かに。
バイナリオブジェクトには長さどころか,プロパティもメソッドも何もないように見えます。
ADODB.Stream で Read する前後の .Position の差を覚えておくのが最良ですが,
後から得ようとするのも,困難というほどでもないですね。
(1) ADODB.Stream で .Position = 0 からバイナリを Write した後の .Position を返す関数を作る。
(2) Msxml2.DOMDocument で .nodeTypedValue へバイナリをセットし,.text.length / 2 を返す関数を作る。
どちらもクロージャにした方が速いですね。
828名無し~3.EXE
2015/12/21(月) 08:04:57.72ID:oIXUP+md var fs = new ActiveXObject( "Scripting.FileSystemObject" );
fs.DeleteFile( "B:/VwCache/*.vch" );
fs = null;
これが該当ファイル無しのときエラー出なくしたい
こんなレベルの質問扱ってるスレ教えてください
fs.DeleteFile( "B:/VwCache/*.vch" );
fs = null;
これが該当ファイル無しのときエラー出なくしたい
こんなレベルの質問扱ってるスレ教えてください
829名無し~3.EXE
2015/12/21(月) 08:58:20.76ID:9BHMYjvS830名無し~3.EXE
2015/12/21(月) 15:26:06.84ID:tdjWLmvu いやjscriptだろ
try 〜 catch(e)で囲むだろ
だけど、*.vchがファイル名を隠しているんじゃなく、
ワイルドカードで複数ファイル指定のつもりならダメだろ
try 〜 catch(e)で囲むだろ
だけど、*.vchがファイル名を隠しているんじゃなく、
ワイルドカードで複数ファイル指定のつもりならダメだろ
831名無し~3.EXE
2015/12/21(月) 15:30:35.86ID:tdjWLmvu あ、ワイルカード使えるのか、知らんかった
833名無し~3.EXE
2015/12/23(水) 15:52:38.58ID:8RHLFxCl834名無し~3.EXE
2016/01/02(土) 02:41:57.72ID:8rznOPo8 JScriptで展開されていないコマンドライン文字列を取得することは出来ませんかね?
コマンドラインオプションを改変するラッパーを作りたいのですがWScript.Arguments
だと展開されて"が削除されていて再構成するのがかなり手間になってしまいます
コマンドラインオプションを改変するラッパーを作りたいのですがWScript.Arguments
だと展開されて"が削除されていて再構成するのがかなり手間になってしまいます
835名無し~3.EXE
2016/01/02(土) 18:34:26.41ID:J4AIyaR1 >>834
どうしても,というなら方法はないでもない。
WMIから自分自身のプロセスを見つけ出せば,
生のコマンドライン(Description)が得られるので,それを解析すればよい。
wsh WbemScripting.SWbemLocator Win32_Process
あたりをキーワードにググってください。
どうしても,というなら方法はないでもない。
WMIから自分自身のプロセスを見つけ出せば,
生のコマンドライン(Description)が得られるので,それを解析すればよい。
wsh WbemScripting.SWbemLocator Win32_Process
あたりをキーワードにググってください。
836名無し~3.EXE
2016/01/05(火) 17:47:40.34ID:tW2wW1r9 >>835
面白そうなので試してみた
自プロセスを特定するのと引数から無効なものを除外しなくてはならないのがマイナス点
・自プロセスの特定
wscript.exeまたはcscript.exeでイメージ名を検索するだけでも大抵は大丈夫だろうが
もう少し厳密にやろうとすると引数に自scriptファイル名があるかどうかをチェック
さらに多重起動の場合も考慮してもっと厳密に特定しようとするなら
何か子プロセスを起動(cmd.exeとか)し、そのPIDでクエリーを限定し、
親PID(これが自プロセスになる)を求める
もっと簡単な方法何かある?
・引数からcscript.exeの引数を削除する
例えば、 cscript xxx.js "a" 1 "b" //nologo "c"
とかだと、//nologoは取り除かないといけない
面白そうなので試してみた
自プロセスを特定するのと引数から無効なものを除外しなくてはならないのがマイナス点
・自プロセスの特定
wscript.exeまたはcscript.exeでイメージ名を検索するだけでも大抵は大丈夫だろうが
もう少し厳密にやろうとすると引数に自scriptファイル名があるかどうかをチェック
さらに多重起動の場合も考慮してもっと厳密に特定しようとするなら
何か子プロセスを起動(cmd.exeとか)し、そのPIDでクエリーを限定し、
親PID(これが自プロセスになる)を求める
もっと簡単な方法何かある?
・引数からcscript.exeの引数を削除する
例えば、 cscript xxx.js "a" 1 "b" //nologo "c"
とかだと、//nologoは取り除かないといけない
837834
2016/01/05(火) 21:10:05.30ID:MtYMuNGE ありがとうございます。作っている途中で親となるプログラムがcscript.exe hoge.jsな感じで
呼び出せないことが判りバッチファイルもどきになりました・・・
@if(0)==(0) ECHO OFF
set COMMANDLINE=%CMDCMDLINE%
cscript.exe //nologo //E:JScript "%~f0"
set COMMANDLINE=
GOTO :EOF
@end
var shell = new ActiveXObject("WScript.Shell");
var env = shell.Environment("Process");
command_line = env.Item("COMMANDLINE")
WScript.Echo(command_line);
呼び出せないことが判りバッチファイルもどきになりました・・・
@if(0)==(0) ECHO OFF
set COMMANDLINE=%CMDCMDLINE%
cscript.exe //nologo //E:JScript "%~f0"
set COMMANDLINE=
GOTO :EOF
@end
var shell = new ActiveXObject("WScript.Shell");
var env = shell.Environment("Process");
command_line = env.Item("COMMANDLINE")
WScript.Echo(command_line);
838名無し~3.EXE
2016/01/05(火) 21:41:47.92ID:tW2wW1r9839834
2016/01/05(火) 22:43:02.46ID:MtYMuNGE840名無し~3.EXE
2016/01/11(月) 22:00:15.25ID:J7oSqT1d var fso = new ActiveXObject("Scripting.FileSystemObject");
var ws = WScript.CreateObject("WScript.Shell");
WScript.Echo(fso.GetAbsolutePathName(args(0)));
「ハート?はーと.txt(?はユニコードのハートマーク)」と「ハート_はーと.txt」が同じフォルダに有る場合に、
ユニコードハートマーク付きのファイルを上記のバッチにD&Dするとアンダーバーの有る「ハート_はーと.txt」が返ってくる。
js vbs wsf 全部だめ。
アンダーバーだけでなく、ハートマークの場所にascii文字が一文字入る一字違いのファイルを誤検索しているみたい。
batファイルでフルパスをechoさせると正しい名前が返ってくるので、bat経由でjsに引数が渡すと正常になった。
でもbat使うのは癪なのでwshだけで回避する方法ありませんか?
var ws = WScript.CreateObject("WScript.Shell");
WScript.Echo(fso.GetAbsolutePathName(args(0)));
「ハート?はーと.txt(?はユニコードのハートマーク)」と「ハート_はーと.txt」が同じフォルダに有る場合に、
ユニコードハートマーク付きのファイルを上記のバッチにD&Dするとアンダーバーの有る「ハート_はーと.txt」が返ってくる。
js vbs wsf 全部だめ。
アンダーバーだけでなく、ハートマークの場所にascii文字が一文字入る一字違いのファイルを誤検索しているみたい。
batファイルでフルパスをechoさせると正しい名前が返ってくるので、bat経由でjsに引数が渡すと正常になった。
でもbat使うのは癪なのでwshだけで回避する方法ありませんか?
841名無し~3.EXE
2016/01/11(月) 23:36:21.38ID:kaus+mbm843名無し~3.EXE
2016/01/15(金) 14:05:01.93ID:1cRaToeH Windows7 64bitでIE10からIE11にしたら今まで使えていたログインスクリプトでエラーが出るようになりました
原因が分からないので助けてください
IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
IE.Navigate("https://hogehoge/login");
WScript.Sleep(10000);
IE.Document.forms(0).elements("id").value = "hogeID";
IE.Document.forms(0).elements("password").value = "hogePASS";//フォームに入力はできている
IE.Document.forms(0).all.tags("INPUT").item(2).click();//←IE11ではここでエラーが出るようになった
WScript.Quit(0);
エラーの内容は「IE.Document.forms(...).allはNullまたはオブジェクトではありません」です。
よろしくお願いします。
原因が分からないので助けてください
IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
IE.Navigate("https://hogehoge/login");
WScript.Sleep(10000);
IE.Document.forms(0).elements("id").value = "hogeID";
IE.Document.forms(0).elements("password").value = "hogePASS";//フォームに入力はできている
IE.Document.forms(0).all.tags("INPUT").item(2).click();//←IE11ではここでエラーが出るようになった
WScript.Quit(0);
エラーの内容は「IE.Document.forms(...).allはNullまたはオブジェクトではありません」です。
よろしくお願いします。
844名無し~3.EXE
2016/01/15(金) 19:15:04.74ID:m4ouY6Y+ submitじゃいかんのか?
845名無し~3.EXE
2016/01/15(金) 20:07:12.70ID:2oeFgdaL ちょっとは自分で調べようぜ、拾った物の使い回しで意味分かってないんだろうけど
原因はIE11からdocument.all等の独自APIが廃止されたから
そもそも今時allとかtagsとかつかわねーよ
原因はIE11からdocument.all等の独自APIが廃止されたから
そもそも今時allとかtagsとかつかわねーよ
846名無し~3.EXE
2016/01/16(土) 20:44:38.70ID:4ar8fcff847843
2016/01/20(水) 19:33:11.23ID:FcdOnjAY >>844>>845
遅れましたがお答えありがとうございました
エラーが出ていた箇所をこれにして動くようになりました
IE.Document.forms(0).getElementsByTagName("input")[2].click();
遅れましたがお答えありがとうございました
エラーが出ていた箇所をこれにして動くようになりました
IE.Document.forms(0).getElementsByTagName("input")[2].click();
848名無し~3.EXE
2016/02/04(木) 19:41:28.05ID:WGr+Whcp jsにデストラクタってないの?
ラップしたエクセルの終了処理をやらせたいんだが
ラップしたエクセルの終了処理をやらせたいんだが
849名無し~3.EXE
2016/02/04(木) 23:22:04.84ID:pXBj/cEo850名無し~3.EXE
2016/02/04(木) 23:34:03.33ID:z164XvtZ >>849
Class ExcelWrapper
Private Sub Class_Terminate
' VBSでいうならこれ
End Sub
End Class
jsの言語仕様としては無いんだろうけどなんかトリック的に実現する方法はないんか
Class ExcelWrapper
Private Sub Class_Terminate
' VBSでいうならこれ
End Sub
End Class
jsの言語仕様としては無いんだろうけどなんかトリック的に実現する方法はないんか
852名無し~3.EXE
2016/02/05(金) 18:33:52.63ID:YVp5K4JV853名無し~3.EXE
2016/02/05(金) 18:52:01.85ID:ZPb/lDba finallyでEXCELの終了処理でいいんじゃないの、それともフックの解放とかそういう意味なの
854名無し~3.EXE
2016/02/05(金) 18:56:57.56ID:YVp5K4JV >>853
finallyとか面倒くさい。オブジェクトにやらせたい
newしたらエクセルが立ち上がり、変数がスコープから外れたら自動的ににエクセルが終わるようにしたい
フックの解放っていうのはよくわからん(´・ω・`)
finallyとか面倒くさい。オブジェクトにやらせたい
newしたらエクセルが立ち上がり、変数がスコープから外れたら自動的ににエクセルが終わるようにしたい
フックの解放っていうのはよくわからん(´・ω・`)
855名無し~3.EXE
2016/02/05(金) 22:48:20.11ID:0wOAx0Cl 無いものねだっているようにしか見えないんだが
WSHに限らずGCを持つ言語でデストラクタが
あるのってほとんど無くね?
ファイナライザを持つ言語ならそれなりにあるみたいだけど
これは実行される保証がないしな
WSHに限らずGCを持つ言語でデストラクタが
あるのってほとんど無くね?
ファイナライザを持つ言語ならそれなりにあるみたいだけど
これは実行される保証がないしな
856名無し~3.EXE
2016/02/05(金) 23:06:43.00ID:qE3E4htL 結論は、無いものは諦めて、newした者が責任を持って解放する
857名無し~3.EXE
2016/02/06(土) 00:30:26.79ID:RaAe5E/b ふぁっく(´・ω・`)
858名無し~3.EXE
2016/02/09(火) 06:40:42.12ID:lLVVtK0e (new ActiveXObject("Scripting.FileSystemObject")).DeleteFile(WScript.ScriptFullName,true);
みたいにやったら自分自身のファイルを削除できますが
実行開始された後はファイルがどうなろうが問題ないと考えていいでしょうか?
みたいにやったら自分自身のファイルを削除できますが
実行開始された後はファイルがどうなろうが問題ないと考えていいでしょうか?
860名無し~3.EXE
2016/02/10(水) 06:37:45.67ID:t7gHrzUx やってみた限りは問題なさそうなのですが
絶対に問題がないと言えるのか?と思いまして
絶対に問題がないと言えるのか?と思いまして
861名無し~3.EXE
2016/02/10(水) 07:50:58.34ID:t7gHrzUx アクティブなウインドウを判定して、
キーを送りたいアプリがアクティブならキーを送る、ということをしたいと思い
探していたのですが
http://stackoverflow.com/questions/26341753/how-to-find-the-window-title-of-activeforeground-window-using-window-script-ho
ここを見ると、WSHでは出来ないというようなことが書いてありました
出来て当たり前の簡単な処理だと思うのですが、本当に出来ないのでしょうか?
キーを送りたいアプリがアクティブならキーを送る、ということをしたいと思い
探していたのですが
http://stackoverflow.com/questions/26341753/how-to-find-the-window-title-of-activeforeground-window-using-window-script-ho
ここを見ると、WSHでは出来ないというようなことが書いてありました
出来て当たり前の簡単な処理だと思うのですが、本当に出来ないのでしょうか?
862名無し~3.EXE
2016/02/10(水) 11:57:56.00ID:9GMi27N7 WSHで出来なければ出来る言語でやればいいだけ
こんな所でゴネてないで自分の不勉強を猛省しろ
こんな所でゴネてないで自分の不勉強を猛省しろ
863名無し~3.EXE
2016/02/10(水) 13:12:04.28ID:t7gHrzUx WSHのいいところは簡単に使えるところなので
わざわざたとえばCを使わないといけないとなると本末転倒なのですよ
どう考えても実装も難しくもない、あって当たり前の機能ですよね
本当にないのかどうかは知りませんが
わざわざたとえばCを使わないといけないとなると本末転倒なのですよ
どう考えても実装も難しくもない、あって当たり前の機能ですよね
本当にないのかどうかは知りませんが
864名無し~3.EXE
2016/02/10(水) 14:06:37.17ID:HysS88Z6 >どう考えても実装も難しくもない、あって当たり前の機能
だったらそーゆー機能があるCOMを自分で実装して
それをWSHから呼び出せばいい
難しくないんでしょ?
だったらそーゆー機能があるCOMを自分で実装して
それをWSHから呼び出せばいい
難しくないんでしょ?
865名無し~3.EXE
2016/02/10(水) 14:50:28.68ID:t7gHrzUx いや、逆に難しいと思うんですか?
考えたら分かりますがめちゃくちゃ簡単ですよね?
「面倒くさい」と「難しい」は違うのです
分かりますね?
考えたら分かりますがめちゃくちゃ簡単ですよね?
「面倒くさい」と「難しい」は違うのです
分かりますね?
866名無し~3.EXE
2016/02/10(水) 16:18:49.46ID:9GMi27N7 いくら煽っても「ほら出来るやん」なんて誰も調べてくれないしやってくれないよ
867名無し~3.EXE
2016/02/10(水) 18:27:12.59ID:CIhAnhaS868名無し~3.EXE
2016/02/11(木) 03:13:32.67ID:co5P5jGL そもそもwshの組み込み機能とは違い、COMの作り方次第になってくるんだから
そういうCOMを作るか探すかすればいい
WIN APIを呼び出すCOMなんてのも世の中には幾つかあるぞ
そういうCOMを作るか探すかすればいい
WIN APIを呼び出すCOMなんてのも世の中には幾つかあるぞ
869名無し~3.EXE
2016/02/12(金) 09:42:04.77ID:w4vWZ7y9 windowキーは^{ESC}で送れると分かったのですが
windowキーを修飾キーとして使う場合はどう書けばいいですか?
windowキーを修飾キーとして使う場合はどう書けばいいですか?
870名無し~3.EXE
2016/02/12(金) 11:40:40.49ID:w4vWZ7y9 var result = GetObject("winmgmts:\\\\.\\root\\cimv2").
ExecQuery("Select * from Win32_Process where Name='hoge.exe'")
みたいな方法で返ってきたオブジェクトから
一つ目のアイテムを取得するにはどうすればいいですか?
ネットで探すと、
var list = new Enumerator(result);
みたいな形でEnumeratorに変換してから回すのが普通のようですが
結果が一つと分かっている時にこのやり方をするのは気持ち悪いです
ExecQuery("Select * from Win32_Process where Name='hoge.exe'")
みたいな方法で返ってきたオブジェクトから
一つ目のアイテムを取得するにはどうすればいいですか?
ネットで探すと、
var list = new Enumerator(result);
みたいな形でEnumeratorに変換してから回すのが普通のようですが
結果が一つと分かっている時にこのやり方をするのは気持ち悪いです
871名無し~3.EXE
2016/02/12(金) 12:15:22.45ID:1hkdGDkD873名無し~3.EXE
2016/02/12(金) 19:11:38.98ID:Ax0/YVze 関数でラップしなさいよ
874名無し~3.EXE
2016/02/12(金) 21:58:43.39ID:CAT/93Hm >>870
Vista以降ならItemIndexメソッドが使える
XPならEnumeratorで頑張れ
GetObject("winmgmts://").ExecQuery("Select * from Win32_Process where Name='hoge.exe'").ItemIndex(0)
Vista以降ならItemIndexメソッドが使える
XPならEnumeratorで頑張れ
GetObject("winmgmts://").ExecQuery("Select * from Win32_Process where Name='hoge.exe'").ItemIndex(0)
875名無し~3.EXE
2016/02/12(金) 23:07:45.95ID:CAT/93Hm SWbemObjectSet.ItemIndex method
https://msdn.microsoft.com/en-us/library/windows/desktop/aa826600(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa826600(v=vs.85).aspx
876名無し~3.EXE
2016/02/21(日) 12:12:25.97ID:14Rd5RPG やや亀レスだが,全部まとめて AutoItX をインストールというかdllを登録すればできる。
http://blog.livedoor.jp/blackcode/archives/1795724.html
登録しなくてもマニフェスト作ればできる。
>>861 は AutoItX の WinActive と Send を使え。
>>869 は AutoItX の Send('{LWIN}') か Send('{RWIN}') を使え。
http://blog.livedoor.jp/blackcode/archives/1795724.html
登録しなくてもマニフェスト作ればできる。
>>861 は AutoItX の WinActive と Send を使え。
>>869 は AutoItX の Send('{LWIN}') か Send('{RWIN}') を使え。
877名無し~3.EXE
2016/02/22(月) 21:04:18.77ID:jrwG3GCh WSHのメリットってWindows標準である事だと思う
オートメーションサーバーを持ち込むくらいならRubyなりPythonなりを
持ち込んで利用した方がより効率的に開発・実装出来るのでは
オートメーションサーバーを持ち込むくらいならRubyなりPythonなりを
持ち込んで利用した方がより効率的に開発・実装出来るのでは
878名無し~3.EXE
2016/02/22(月) 22:34:35.27ID:QBaH99ha >>877
Pythonだけではできないから Sikuli や WebDriver や AutoItX があるわけなのだが
Pythonだけではできないから Sikuli や WebDriver や AutoItX があるわけなのだが
879名無し~3.EXE
2016/03/01(火) 09:01:36.69ID:iP3HRupc エンジニアのモチベーションを下げる方法
ttp://d.hatena.ne.jp/jflute/touch/20160221/downmoti
IT系のエンジニアは、なかなか世間一般の方々から、
やっていることを理解されにくいものです。
何が簡単で、何が難しいのか、なかなかわからないもの。
しかも、そう思われていることを、
エンジニア自身よくわかっていて、
それがコンプレックスでもあったりします。
開発しようとしている画面があったとして、
画面の見た目から来るイメージと、
実際のプログラミングの難しさはなかなか比例しません。
簡単そうな画面でも作るのは難しい、よくあることです。
なので、よくわかってないフリして、
「えっ、こんなの簡単に作れるでしょ?」
って言ってあげると、大抵「はぁ!?」って表情をします。
ちょっと納得がいかないだけなら、
モチベーションを下げたことにならないですが、
そういうことを何度も何度も言い続けることで、
「難しいことを実現しても評価されないのでは...」
って気持ちになるので、
しっかりモチベーションを下げられます。
実際に、難しい画面を頑張って速く作り上げたエンジニアに、
「あー簡単そうな画面だったもんね、じゃあすぐ次これ作って」
と、軽くあしらってあげると効果が相当高いです。
ttp://d.hatena.ne.jp/jflute/touch/20160221/downmoti
IT系のエンジニアは、なかなか世間一般の方々から、
やっていることを理解されにくいものです。
何が簡単で、何が難しいのか、なかなかわからないもの。
しかも、そう思われていることを、
エンジニア自身よくわかっていて、
それがコンプレックスでもあったりします。
開発しようとしている画面があったとして、
画面の見た目から来るイメージと、
実際のプログラミングの難しさはなかなか比例しません。
簡単そうな画面でも作るのは難しい、よくあることです。
なので、よくわかってないフリして、
「えっ、こんなの簡単に作れるでしょ?」
って言ってあげると、大抵「はぁ!?」って表情をします。
ちょっと納得がいかないだけなら、
モチベーションを下げたことにならないですが、
そういうことを何度も何度も言い続けることで、
「難しいことを実現しても評価されないのでは...」
って気持ちになるので、
しっかりモチベーションを下げられます。
実際に、難しい画面を頑張って速く作り上げたエンジニアに、
「あー簡単そうな画面だったもんね、じゃあすぐ次これ作って」
と、軽くあしらってあげると効果が相当高いです。
880名無し~3.EXE
2016/03/20(日) 17:58:54.66ID:ftoiXc16 WScript.CreateObject("InternetExplorer.Application")
を利用してIEの自動操縦をしています
win10へのアップグレードを考えていたのですが
この手のスクリプトはwindows10で動くのでしょうか?
を利用してIEの自動操縦をしています
win10へのアップグレードを考えていたのですが
この手のスクリプトはwindows10で動くのでしょうか?
882名無し~3.EXE
2016/04/26(火) 02:43:57.89ID:xrGaHN5D htmlfileコンポーネントでダミーのwindowを作ってjsライブラリをロードするのはみんなやってると思う
そこでローカルフォルダの構造をdomに変換してjQueryをファイルセレクタ代わりにしてみた
// カレントディレクトリ以下の構造をbody内に再現する。File/Folderオブジェクトのプロパティはdata-*属性にしている
(function($folder, folder){
var keys = "Attributes DateCreated DateLastAccessed DateLastModified Drive Name Path ShortName ShortPath Size Type".split(" ");
for(var subFolders=new Enumerator(folder.SubFolders); !subFolders.atEnd(); subFolders.moveNext()) {
var subFolder = subFolders.item();
var $subFolder = $folder.append("<div>").find("div:last");
$subFolder.addClass("folder");
$.each(keys, function(){$subFolder.attr("data-"+this, subFolder[this]);});
arguments.callee($subFolder, subFolder);
}
for(var files=new Enumerator(folder.Files); !files.atEnd(); files.moveNext()) {
var file = files.item();
var $file = $folder.append("<div>").find("div:last");
$file.addClass("file");
$.each(keys, function(){$file.attr("data-"+this, file[this]);});
}
})($("body"), new ActiveXObject("Scripting.FileSystemObject").GetFolder(new ActiveXObject("WScript.Shell").CurrentDirectory));
// 例:テキストファイルをすべて選択
$(".file[data-Name$='\.txt']").each(function(){WScript.Echo($(this).attr("data-Path"));});
とりあえずアイディアを形にしただけなんでカスタムして使ってくれ(´・ω・`)
そこでローカルフォルダの構造をdomに変換してjQueryをファイルセレクタ代わりにしてみた
// カレントディレクトリ以下の構造をbody内に再現する。File/Folderオブジェクトのプロパティはdata-*属性にしている
(function($folder, folder){
var keys = "Attributes DateCreated DateLastAccessed DateLastModified Drive Name Path ShortName ShortPath Size Type".split(" ");
for(var subFolders=new Enumerator(folder.SubFolders); !subFolders.atEnd(); subFolders.moveNext()) {
var subFolder = subFolders.item();
var $subFolder = $folder.append("<div>").find("div:last");
$subFolder.addClass("folder");
$.each(keys, function(){$subFolder.attr("data-"+this, subFolder[this]);});
arguments.callee($subFolder, subFolder);
}
for(var files=new Enumerator(folder.Files); !files.atEnd(); files.moveNext()) {
var file = files.item();
var $file = $folder.append("<div>").find("div:last");
$file.addClass("file");
$.each(keys, function(){$file.attr("data-"+this, file[this]);});
}
})($("body"), new ActiveXObject("Scripting.FileSystemObject").GetFolder(new ActiveXObject("WScript.Shell").CurrentDirectory));
// 例:テキストファイルをすべて選択
$(".file[data-Name$='\.txt']").each(function(){WScript.Echo($(this).attr("data-Path"));});
とりあえずアイディアを形にしただけなんでカスタムして使ってくれ(´・ω・`)
883名無し~3.EXE
2016/05/20(金) 01:19:03.63ID:LoMnSF9C エクセルのマクロをVBAやVB以外の言語で使いたいのですがWSHというのでJavaScriptを使うくらいしかないですか?
なんか難しそうなので扱えるかはわからないですが
なんか難しそうなので扱えるかはわからないですが
884名無し~3.EXE
2016/05/21(土) 07:18:01.83ID:KwoUOh5H VBA使えるならVBScriptはほぼ同じ
885名無し~3.EXE
2016/05/21(土) 15:46:05.82ID:r5Tb0hTU ActiveXObject(
886名無し~3.EXE
2016/05/23(月) 19:28:44.88ID:OI4UmGVD Win10 64-bit で、WSCの登録を、
64-bitで行えば、32-bitアプリから起動したスクリプトで使えず、
32-bitで行えば、64-bitアプリから起動したスクリプトで使えず。
後から登録したほうだけが有効になる。
どうしたものか。
64-bitで行えば、32-bitアプリから起動したスクリプトで使えず、
32-bitで行えば、64-bitアプリから起動したスクリプトで使えず。
後から登録したほうだけが有効になる。
どうしたものか。
887名無し~3.EXE
2016/05/25(水) 13:06:05.60ID:p984sqbS どっちかに統一してwscriptなりのパスを絶対パス指定すりゃいいんじゃないの
今後bit幅判定は避けて通れないだろうし
今後bit幅判定は避けて通れないだろうし
888名無し~3.EXE
2016/05/25(水) 17:08:32.50ID:LNEVb08i 32bit(64bit)で起動されたかを判断し違ってたら起動し直すってのは検索すれば出てくるので、
WSCをどっちかでのみ処置するようにするか、両方で別々に32bit用、64bit用の両方登録するかとか
WSCをどっちかでのみ処置するようにするか、両方で別々に32bit用、64bit用の両方登録するかとか
889名無し~3.EXE
2016/05/26(木) 01:13:50.51ID:c8sEm+SQ JScriptでreplaceによる正規表現の置換で、
置換後文字列にキャプチャ文字列参照の特殊変数とその直後に数字を書きたい場合
どのように書けばいいですか?
例えば、$1で参照した文字列の直後に0を書きたいとかで
"$10"とやると、10番目のキャプチャ文字列の参照になっちゃう
他環境だと、"${1}0"と書けるみたいだがWSHでは参照にならない
置換後文字列にキャプチャ文字列参照の特殊変数とその直後に数字を書きたい場合
どのように書けばいいですか?
例えば、$1で参照した文字列の直後に0を書きたいとかで
"$10"とやると、10番目のキャプチャ文字列の参照になっちゃう
他環境だと、"${1}0"と書けるみたいだがWSHでは参照にならない
890名無し~3.EXE
2016/05/26(木) 04:54:10.50ID:2Z2dZzlv $010
891名無し~3.EXE
2016/05/26(木) 18:15:27.58ID:c8sEm+SQ892名無し~3.EXE
2016/05/26(木) 19:15:53.60ID:Am4E4DkT t
893名無し~3.EXE
2016/05/28(土) 16:48:01.65ID:8bw60KMu C:\Windows\SysWOW64\cmd.exe
から
C:\Windows\System32\wscript.exe
を実行したら、
C:\Windows\SysWOW64\wscript.exe
が起動された。
C:\Windows\System32\cmd.exe
から
C:\Windows\SysWOW64\wscript.exe
を実行したら、これが起動した。
択一なら、32bitに統一する方が汎用性が高いということか。
そうしておくよ、ありがとう。>>887-888
から
C:\Windows\System32\wscript.exe
を実行したら、
C:\Windows\SysWOW64\wscript.exe
が起動された。
C:\Windows\System32\cmd.exe
から
C:\Windows\SysWOW64\wscript.exe
を実行したら、これが起動した。
択一なら、32bitに統一する方が汎用性が高いということか。
そうしておくよ、ありがとう。>>887-888
894名無し~3.EXE
2016/06/20(月) 19:48:39.36ID:r7gHHjMI おいぽまいら教えろ下さい、dotnetのライブラリを叩く際にだね
これは動かない
var random = new ActiveXObject("System.Random");
random.Next(1, 10);
これは動く
var random = new ActiveXObject("System.Random");
random.Next_2(1, 10);
上が動かないのは分かる、型宣言が出来ないからだ
じゃあ下は何故動くんだ、この_2は何を意味するの
これは動かない
var random = new ActiveXObject("System.Random");
random.Next(1, 10);
これは動く
var random = new ActiveXObject("System.Random");
random.Next_2(1, 10);
上が動かないのは分かる、型宣言が出来ないからだ
じゃあ下は何故動くんだ、この_2は何を意味するの
895名無し~3.EXE
2016/06/20(月) 20:14:06.28ID:FmZLWojr さあ
896名無し~3.EXE
2016/06/20(月) 21:44:37.70ID:r7gHHjMI ああ何となく事故解決した、オーバーロードなんて仕様ないからケツに数字付けて区別するのか
型宣言とか全く関係なかった、数字の振り方の規則性がこれまたよく分からんがトライアンドエラーしかないのか
ちなみにSystem.Randomだとこうなるみたい
Next()→Next()
Next(Int32)→Next_3(Int32)
Next(Int32, Int32)→Next_2(Int32, Int32)
型宣言とか全く関係なかった、数字の振り方の規則性がこれまたよく分からんがトライアンドエラーしかないのか
ちなみにSystem.Randomだとこうなるみたい
Next()→Next()
Next(Int32)→Next_3(Int32)
Next(Int32, Int32)→Next_2(Int32, Int32)
897名無し~3.EXE
2016/07/18(月) 13:49:40.77ID:FluRcm0P すみません、全くの素人です。
アプリのアプリケーションキーの「(T)」を出力するだけのファイルを作りたいです。
どう書いたらいいですか。
アプリのアプリケーションキーの「(T)」を出力するだけのファイルを作りたいです。
どう書いたらいいですか。
898名無し~3.EXE
2016/07/18(月) 14:58:15.83ID:FluRcm0P 自己解決
Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 50
objShell.SendKeys "%(T)"
Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 50
objShell.SendKeys "%(T)"
899名無し~3.EXE
2016/07/20(水) 11:55:20.08ID:XFWp37Gp vbsを使って社内システムへの自動ログイン処理をしたいと思っています。
yahooへは問題なくidpassを入れてログインできるのですが、社内システムの場合はエラーが表示されidpassも表示されません。
"エラーを特定できません"のエラーが表示されます。
どうも信頼済みサイトに登録されていることが原因というようなwebの記載を見つけました。
この場合は回避策はないのでしょうか。
yahooへは問題なくidpassを入れてログインできるのですが、社内システムの場合はエラーが表示されidpassも表示されません。
"エラーを特定できません"のエラーが表示されます。
どうも信頼済みサイトに登録されていることが原因というようなwebの記載を見つけました。
この場合は回避策はないのでしょうか。
900名無し~3.EXE
2016/08/15(月) 00:25:29.97ID:TKUFVv53 クリップボードを加工する処理を書いています
内部はユニコードなので
SJISの範囲を越えた文字がクリップボードに入っていることがあります
それをEchoで表示させてみたりしても普通に表示されますし
文字列の結合をしても特に問題ないようです
しかしソースコードがSJISなので、
その文字に関する処理をソースコードの中に書けません
こういう場合どうするのがいいでしょうか?
クリップボードへのアクセスをUTF-8に出来たら
コードもUTF-8に出来るのですが、この処理はSJIS決め打ちですよね?
内部はユニコードなので
SJISの範囲を越えた文字がクリップボードに入っていることがあります
それをEchoで表示させてみたりしても普通に表示されますし
文字列の結合をしても特に問題ないようです
しかしソースコードがSJISなので、
その文字に関する処理をソースコードの中に書けません
こういう場合どうするのがいいでしょうか?
クリップボードへのアクセスをUTF-8に出来たら
コードもUTF-8に出来るのですが、この処理はSJIS決め打ちですよね?
901名無し~3.EXE
2016/08/15(月) 01:25:58.62ID:ikN7gcf7 >>900
案1:スクリプトをunicodeで書く。
案2JScript:SJISに無い文字は String.fromCharCode(code1, code2, ...) を使う。
案3VBScript:SJISに無い文字は ChrW(code) を使う。
案1:スクリプトをunicodeで書く。
案2JScript:SJISに無い文字は String.fromCharCode(code1, code2, ...) を使う。
案3VBScript:SJISに無い文字は ChrW(code) を使う。
903名無し~3.EXE
2016/08/28(日) 13:24:08.21ID:F3dIMYRn // 以下のような例で * が消えてしまうのはなぜでしょうか? バグ?
var FS = WScript.CreateObject('Scripting.FileSystemObject');
WScript.Echo(FS.GetAbsolutePathName('C:\\Windo*'));// → C:\Windo*
WScript.Echo(FS.GetAbsolutePathName('C:\\Window*'));// → C:\Windows …なぜ?
WScript.Echo(FS.GetAbsolutePathName('C:\\Windows*'));// → C:\Windows*
var FS = WScript.CreateObject('Scripting.FileSystemObject');
WScript.Echo(FS.GetAbsolutePathName('C:\\Windo*'));// → C:\Windo*
WScript.Echo(FS.GetAbsolutePathName('C:\\Window*'));// → C:\Windows …なぜ?
WScript.Echo(FS.GetAbsolutePathName('C:\\Windows*'));// → C:\Windows*
904名無し~3.EXE
2016/08/28(日) 14:14:26.23ID:RFOn9Wqp ?
905名無し~3.EXE
2016/08/28(日) 22:43:27.34ID:Kf2zaCfx *が1文字のワイルドカードとして使えるということかね。
906名無し~3.EXE
2016/09/20(火) 18:40:36.65ID:sx0yUGEz 2016/9/1 jscript.dll がwindows updateされたせいで
今までいけていた win7/32bit(@職場)/wsh(jscript)で
エラーが多発するのは俺だけ?
今までいけていた win7/32bit(@職場)/wsh(jscript)で
エラーが多発するのは俺だけ?
907名無し~3.EXE
2016/09/20(火) 19:13:25.75ID:oUfFAkCw うん
908名無し~3.EXE
2016/09/20(火) 21:20:41.02ID:SISECv8l まずそのエラーを書かない事には何とも
909906
2016/09/22(木) 00:14:32.72ID:rDMTp48z そうですよね。失礼しました。
こちらも、職場でのエラーメッセージまで覚えていないので
解決はあきらめて、情報をカキコだけしますが。
エクセルでInputBoxを使うやつで、
変数のvar 宣言が厳密?になったような印象で
動くやつとエラーで動かないやつとInputBoxが出ないパターンあるような。
var objXL = WScript.CreateObject("Excel.Application");
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var f = fs.GetFolder("\\\\file01\\○○課\\....\\Afoldername");
var folderlist = "";
//すべてのサブフォルダ
var subfc = new Enumerator(f.SubFolders);
for(; !subfc.atEnd(); subfc.moveNext())
if ( ((subfc.item().Name+"").indexOf("e"))==-1 ) folderlist += subfc.item().Name + "\r\n" ;
var strRet = objXL.InputBox(folderlist, "選択", "otamesi");
objXL.Quit();
のたぐいのやつです。
こんなことがあったということで。
こちらも、職場でのエラーメッセージまで覚えていないので
解決はあきらめて、情報をカキコだけしますが。
エクセルでInputBoxを使うやつで、
変数のvar 宣言が厳密?になったような印象で
動くやつとエラーで動かないやつとInputBoxが出ないパターンあるような。
var objXL = WScript.CreateObject("Excel.Application");
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var f = fs.GetFolder("\\\\file01\\○○課\\....\\Afoldername");
var folderlist = "";
//すべてのサブフォルダ
var subfc = new Enumerator(f.SubFolders);
for(; !subfc.atEnd(); subfc.moveNext())
if ( ((subfc.item().Name+"").indexOf("e"))==-1 ) folderlist += subfc.item().Name + "\r\n" ;
var strRet = objXL.InputBox(folderlist, "選択", "otamesi");
objXL.Quit();
のたぐいのやつです。
こんなことがあったということで。
910名無し~3.EXE
2016/09/28(水) 07:10:47.91ID:f6JqvkoF Windows7にて、管理者権限(High)で起動しているプログラムから、
別のプログラムを標準ユーザー権限(Medium)で実行する方法はないでしょうか?
具体的には、
管理者権限で常駐しているAutoHotkeyから、
標準ユーザー権限でWSHスクリプトを起動したいと考えています。
管理者昇格で実行する方法は検索すれば出てくるのですか、
その逆は見つからなくて・・・
ログオンスクリプトから実行されたプログラムも
全部管理者権限になってしまいます。
これも解決したいと思っています。
別のプログラムを標準ユーザー権限(Medium)で実行する方法はないでしょうか?
具体的には、
管理者権限で常駐しているAutoHotkeyから、
標準ユーザー権限でWSHスクリプトを起動したいと考えています。
管理者昇格で実行する方法は検索すれば出てくるのですか、
その逆は見つからなくて・・・
ログオンスクリプトから実行されたプログラムも
全部管理者権限になってしまいます。
これも解決したいと思っています。
911名無し~3.EXE
2016/09/28(水) 09:32:39.60ID:s4DNr100 runas 使うとかじゃダメ?
912名無し~3.EXE
2016/09/28(水) 15:53:59.78ID:nx81DFKK 「管理者として実行」されたコマンドラインから、「標準ユーザとして実行」する。
ttp://scripting.cocolog-nifty.com/blog/2010/01/post-5259.html
ttp://scripting.cocolog-nifty.com/blog/2010/01/post-5259.html
913名無し~3.EXE
2016/09/28(水) 18:43:38.23ID:f6JqvkoF914名無し~3.EXE
2016/09/29(木) 00:25:50.89ID:bbWzxn0/915名無し~3.EXE
2016/09/29(木) 21:34:09.19ID:QE0CrBwY CreateObject("Shell.Application").ShellExecute("hoge.exe", "", "", "runasuser")
>>912と違ってユーザー名とパスワードを入力する必要があるのが面倒
>>912と違ってユーザー名とパスワードを入力する必要があるのが面倒
916名無し~3.EXE
2016/09/30(金) 07:05:04.86ID:DKhen0Tu >>915
> CreateObject("Shell.Application").ShellExecute("hoge.exe", "", "", "runasuser")
おお、runasuser という引数で可能だったのですね。
今まで知りませんでした。ありがとうございます。
確かにユーザとパスの入力にはリスクがありますし、配布には不向きですが、
場合によって使えそうです。
> CreateObject("Shell.Application").ShellExecute("hoge.exe", "", "", "runasuser")
おお、runasuser という引数で可能だったのですね。
今まで知りませんでした。ありがとうございます。
確かにユーザとパスの入力にはリスクがありますし、配布には不向きですが、
場合によって使えそうです。
917名無し~3.EXE
2016/09/30(金) 11:04:40.80ID:MzJ4FbY1918名無し~3.EXE
2016/10/01(土) 21:18:50.03ID:z3fhfQ4h >>917
ありがとうございます。
runas.exeという存在も知りませんでした・・・。
確かにこの方法でも、/userをAdmin以外に指定すれば、
High→Mediumの降格は可能みたいですね!
でもやはり、userとpassまで入力するのがネックですね。
むしろこっちが当たり前で、912の方法はかなり特殊な方法でしょうか。
ありがとうございます。
runas.exeという存在も知りませんでした・・・。
確かにこの方法でも、/userをAdmin以外に指定すれば、
High→Mediumの降格は可能みたいですね!
でもやはり、userとpassまで入力するのがネックですね。
むしろこっちが当たり前で、912の方法はかなり特殊な方法でしょうか。
919名無し~3.EXE
2016/10/02(日) 14:05:33.18ID:ssU5pWdi runasに/savecredオプションを付けるとパスワードが保存されるから
2回目以降はパスワードを入力しなくてよくなる
psexecってツールならユーザー名とパスワードをオプション引数で指定できるから毎回手打ちする必要は無くなる
https://technet.microsoft.com/ja-jp/sysinternals/bb897553.aspx
もちろんそれぞれデメリットもあるからご利用は計画的に
2回目以降はパスワードを入力しなくてよくなる
psexecってツールならユーザー名とパスワードをオプション引数で指定できるから毎回手打ちする必要は無くなる
https://technet.microsoft.com/ja-jp/sysinternals/bb897553.aspx
もちろんそれぞれデメリットもあるからご利用は計画的に
920名無し~3.EXE
2016/10/20(木) 14:58:50.51ID:u2LLUbWG えと、Windows7環境で質問です。
あるアプリが起動している間は、スリープに入らないって
設定ができるでしょうか?
ファイルメーカーなんですが、スリープしちゃうとネット
ワークが切れちゃって再起動しなくてはならないんで。
あるアプリが起動している間は、スリープに入らないって
設定ができるでしょうか?
ファイルメーカーなんですが、スリープしちゃうとネット
ワークが切れちゃって再起動しなくてはならないんで。
921名無し~3.EXE
2016/11/10(木) 23:44:30.12ID:JhfwFP09 >>920
5分ごとにShiftを押す。じゃダメ?ctrl+Cで終了。
Set objShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 1000*60*5
objShell.SendKeys "+"
Loop
メディアプレイヤーをずっと再生しておくっていう手もあるらしい。
5分ごとにShiftを押す。じゃダメ?ctrl+Cで終了。
Set objShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 1000*60*5
objShell.SendKeys "+"
Loop
メディアプレイヤーをずっと再生しておくっていう手もあるらしい。
922名無し~3.EXE
2016/11/11(金) 00:16:12.92ID:6spaSBwY thx
923名無し~3.EXE
2016/12/12(月) 21:47:31.56ID:r+Fb96AV 超亀レスだがShiftじゃキー入力の妨げになるでしょ
マウスの空MOVEを定期的に送るのが常套手段
もろちんwshだけでやる方法はない
マウスの空MOVEを定期的に送るのが常套手段
もろちんwshだけでやる方法はない
924名無し~3.EXE
2016/12/25(日) 00:05:54.11ID:HRoYEPWv /*
cscript.exe //nologo 特定プロセス実行中のスリープを抑止.js
副作用無しの SendKeys(
cscript.exe //nologo 特定プロセス実行中のスリープを抑止.js
副作用無しの SendKeys(
925名無し~3.EXE
2016/12/25(日) 00:23:26.11ID:HRoYEPWv Shiftの代わりにPRTSC(キャプチャ効果無し)を送ってもスリープを抑止できるようだ
926924
2016/12/29(木) 22:26:32.94ID:dAnL9MtL 先日何故か書き込みが途切れたので再書き込み
var exeName = "notepad.exe";
var interval = 60;
var oShell = WScript.CreateObject("WScript.Shell");
var objWMIService = GetObject("winmgmts://./root/cimv2");
while(true){
if(!new Enumerator(objWMIService.ExecQuery("select Name from Win32_Process where Name='" + exeName + "'")).atEnd())
oShell.SendKeys("{PRTSC}");
WScript.Sleep(1000 * interval);
}
WMIって面白い
var exeName = "notepad.exe";
var interval = 60;
var oShell = WScript.CreateObject("WScript.Shell");
var objWMIService = GetObject("winmgmts://./root/cimv2");
while(true){
if(!new Enumerator(objWMIService.ExecQuery("select Name from Win32_Process where Name='" + exeName + "'")).atEnd())
oShell.SendKeys("{PRTSC}");
WScript.Sleep(1000 * interval);
}
WMIって面白い
927名無し~3.EXE
2017/03/11(土) 22:14:40.13ID:+HikkRSv JScriptで再帰的なマッチを高速に行う方法ってありませんかね?
A(B(C(3),"a"),"$")
みたいな文字列を
({<3>,"a"},"$")
みたいにしたいです。Rubyみたいに再帰処理に対応した正規表現を
持っていれば対応する括弧をマッチさせることが出来ますが・・・
A(B(C(3),"a"),"$")
みたいな文字列を
({<3>,"a"},"$")
みたいにしたいです。Rubyみたいに再帰処理に対応した正規表現を
持っていれば対応する括弧をマッチさせることが出来ますが・・・
928名無し~3.EXE
2017/05/11(木) 19:46:31.75ID:MLlLpRGo 2017.5.15に今どき、wshの本の改訂版が今ごろ出版されるとか。
929名無し~3.EXE
2017/06/29(木) 16:33:55.92ID:AAx8eHDl >>886の件、
レジストリのCLSID(classid)を、登録した方から登録してない方へコピーするか、
wscファイルの中でCLSIDを指定しておけば、両方で使えた。
思うに、レジストリ上では、ProgID(COMコンポーネントID)は64/32bitで共通なのに対し、
CLSIDは64/32bitそれぞれで登録されているところ、
CLSIDはwsc登録時にランダムで生成されるため、
後から登録した方でProgIDのCLSID情報が異なる値で上書きされてしまい、
先に登録した方はProgIDから元々CLSIDにたどり着けなくなってしまった、
ということなのかなと。
なので、CLSIDが64/32bitで同じになるようにしてやればよいと。
レジストリのCLSID(classid)を、登録した方から登録してない方へコピーするか、
wscファイルの中でCLSIDを指定しておけば、両方で使えた。
思うに、レジストリ上では、ProgID(COMコンポーネントID)は64/32bitで共通なのに対し、
CLSIDは64/32bitそれぞれで登録されているところ、
CLSIDはwsc登録時にランダムで生成されるため、
後から登録した方でProgIDのCLSID情報が異なる値で上書きされてしまい、
先に登録した方はProgIDから元々CLSIDにたどり着けなくなってしまった、
ということなのかなと。
なので、CLSIDが64/32bitで同じになるようにしてやればよいと。
930名無し~3.EXE
2017/07/18(火) 13:58:28.60ID:W4IZXMNS 関数呼び出し、ネスト2,3回位が限界なのかな。
変なところで戻ってくる。
使えない野郎だ、くっそマイクロソフトw
変なところで戻ってくる。
使えない野郎だ、くっそマイクロソフトw
931名無し~3.EXE
2017/09/02(土) 18:09:03.77ID:/D3h/gh4 今更javascriptの学習兼ねてjscript勉強中
inputboxとmsgboxが64bit環境で呼び出せないのが割と辛いね
powershellだとC#埋め込んだりフォーム使い放題なんだよなー
↑スリープ抑止はC/C++/C#でさくっと空SendInput呼んだ方が楽だよ
inputboxとmsgboxが64bit環境で呼び出せないのが割と辛いね
powershellだとC#埋め込んだりフォーム使い放題なんだよなー
↑スリープ抑止はC/C++/C#でさくっと空SendInput呼んだ方が楽だよ
932名無し~3.EXE
2017/09/25(月) 23:32:59.00ID:6nblRiV8 Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Logs")
Wscript.Echo objFolder.Size
→これでC:\Logsのフォルダサイズが取得できるのに
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Program Files")
Wscript.Echo objFolder.Size
→同じスクリプトでC:\Program Filesのサイズが取得できない
なぜなんだぜ? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
Set objFolder = objFSO.GetFolder("C:\Logs")
Wscript.Echo objFolder.Size
→これでC:\Logsのフォルダサイズが取得できるのに
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Program Files")
Wscript.Echo objFolder.Size
→同じスクリプトでC:\Program Filesのサイズが取得できない
なぜなんだぜ? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
933名無し~3.EXE
2017/09/26(火) 02:12:19.86ID:RcmZZAIw 管理者権限で実行しても "C:\Program Files\Windows NT" に含まれるジャンクションにアクセス失敗してエラーになるみたい
934名無し~3.EXE
2017/09/26(火) 21:58:19.45ID:W9uZsk3X 情報ありがとう
こちらでも昨夜というか今朝まで調べて
配下にリバースポイントが含まれるフォルダは
(普通の方法では)サイズの取得ができないとわかったよ
Program Files配下の全フォルダを抽出して
ひとつずつ再帰的にサイズ取得して合計するという案もあったけど
その中にはサイズが取得できないフォルダがあるから
合計したところで数値が合わないんだよね
こちらでも昨夜というか今朝まで調べて
配下にリバースポイントが含まれるフォルダは
(普通の方法では)サイズの取得ができないとわかったよ
Program Files配下の全フォルダを抽出して
ひとつずつ再帰的にサイズ取得して合計するという案もあったけど
その中にはサイズが取得できないフォルダがあるから
合計したところで数値が合わないんだよね
935名無し~3.EXE
2017/09/26(火) 22:00:02.58ID:W9uZsk3X 仕方ないのでバッチファイルで
dir "C:\Program Files" /s /a-d | find "個のファイル" > hoge.txt
ってやって、ファイル末尾の1行を取得する事にしたわ
これだと一応、フォルダのプロパティで見たのと同じ値が取得できる
もはやスクリプトじゃなくなっちまったけども
dir "C:\Program Files" /s /a-d | find "個のファイル" > hoge.txt
ってやって、ファイル末尾の1行を取得する事にしたわ
これだと一応、フォルダのプロパティで見たのと同じ値が取得できる
もはやスクリプトじゃなくなっちまったけども
936名無し~3.EXE
2017/09/26(火) 22:16:48.97ID:tsUdupnX 重箱の隅をつつくようであれだが、リパースポイントな。リバースじゃなく。
937名無し~3.EXE
2017/12/12(火) 09:06:04.43ID:q0vNjYcg wshで数万行クラスの巨大スクリプト書く人いるかな?
自分で使うちょっとした自動処理ならわずか数行〜数十行程度で済むが、他人にあげることを
想定したものならファイルパス等のハードコードは絶対に避けてコマンドライン引数やXML形式の
設定ファイルから指定させる等汎用性を高めたり、きちんとエラー対策をとったり等、れっきとした
「アプリ」として「開発」するため余裕で数千〜数万行に達してしまう。
自分で使うちょっとした自動処理ならわずか数行〜数十行程度で済むが、他人にあげることを
想定したものならファイルパス等のハードコードは絶対に避けてコマンドライン引数やXML形式の
設定ファイルから指定させる等汎用性を高めたり、きちんとエラー対策をとったり等、れっきとした
「アプリ」として「開発」するため余裕で数千〜数万行に達してしまう。
938名無し~3.EXE
2017/12/12(火) 11:04:42.32ID:/U3t7lMx 自分で使う自動処理が拡張に拡張重ねて数万行クラスになったのはあるよ
939名無し~3.EXE
2017/12/12(火) 11:13:16.48ID:Wr10bU9d 数万行もあるスクリプトを貰っても持て余すなあ
もっと機能を絞って分割するなりして欲しいもんだ
もっと機能を絞って分割するなりして欲しいもんだ
940名無し~3.EXE
2017/12/12(火) 20:43:33.07ID:jyIq4w4s せいぜい数百から一千行程度に小分けしたスクリプト50本くらいを
ひとつのフォルダに入れて連携させてるよ
小分けしとくと色々使い回しがきいてラクだわ
ひとつのフォルダに入れて連携させてるよ
小分けしとくと色々使い回しがきいてラクだわ
941名無し~3.EXE
2017/12/12(火) 21:53:43.20ID:qOP7vFik942名無し~3.EXE
2017/12/13(水) 14:27:28.65ID:KehnvMoz 特に、Classの継承機能のないVBScriptで無理やりオブジェクト指向な
コードを書こうとして、似たような構造のClassを作るため親Classを
コピペしてちょっと改造するって手法を繰り返してたら、
あっという間に数千行に達してしまう
コードを書こうとして、似たような構造のClassを作るため親Classを
コピペしてちょっと改造するって手法を繰り返してたら、
あっという間に数千行に達してしまう
943名無し~3.EXE
2017/12/14(木) 12:08:32.08ID:bq3yY9Fc それはあるね。コピペ部分が結構多くて行数だけインフレしてる感じ
944名無し~3.EXE
2017/12/19(火) 12:46:08.14ID:uzBHC9yI 友達がWindowsで稼げている情報など。ニュースというか参考までに。
⇒ http://kuchibeta.sblo.jp/article/181868190.html
興味がある方のために書きました。
M60W6DP7X5
⇒ http://kuchibeta.sblo.jp/article/181868190.html
興味がある方のために書きました。
M60W6DP7X5
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE [Ailuropoda melanoleuca★]
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE ★2 [Ailuropoda melanoleuca★]
- 首相、自民幹部にコメ高騰対策策定を指示 [首都圏の虎★]
- トランプ大統領、日本への自動車輸出少ない現状に改めて不満示す [首都圏の虎★]
- 【テレビ】テレ東『大食い王』に批判殺到、手掴み食いに生煮え肉…汚すぎる食べ方に視聴者「食欲失せた」 [ネギうどん★]
- 【川崎・20歳女性死体遺棄】「あさひを返せ!」県警の説明に親族、友人ら90人が署に集まり猛抗議「嘘ばかり、謝れば済むことなのに」★16 [ぐれ★]
- 【悲報】石破総理「大阪万博ですら失敗してるのを見ると首都の移転先は西日本はパスだな…東日本でオススメある?」なんて答える? [257926174]
- 【文春砲第2弾】永野芽郁と田中圭の不倫LINE流出wwwwwwwwwwwwwwwwwwwwww [839150984]
- 大阪万博、11日に万博会場で1万2000人以上のマーチングを実施!ギネス世界記録に挑戦!!! [683847785]
- 【文春砲】永野芽郁さんと田中圭さん、燃え上がる不倫LINEが流出
- 【速報】石破、自民党幹部にコメ高騰・物価高対策を指示 「備蓄米放出後も米価下がった実感出ず」 [668970678]
- 大阪万博+57000 [931948549]