VBScriptについて必死に話し合ってください VBS以外はスルーの方向で(・∀・) ※質問スレではありません、質問は最低限し抑えましょう※
なんでぇぇぇぇぇぇぇぇぇぇぇっ いまさらぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁっ!! ぶぃっ・う゛ぃーっ・すくりぷとぉぉぉぉぉぉぉぉっ なんでっすかーーーーーーーーーーぁぁぁぁぁぁあああああああああああ ぱわあああああああああぁぁぁぁぁぁぁっっぉああああああああああっ しぇるぅじゃなくてぇぇぇぇぇぇぇぇぇぇぇーーーーっ!! みたいな感じでよろしいでしょうか。
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
>>3 お前らゴールデンウィークの間なにしてたんだよ。
休んでもいいけど、アイちゃんのコンソールをそのままにして行くなよ。
5 :
デフォルトの名無しさん :2009/05/18(月) 10:38:03
VBScriptのよさを全世界に広げるためには まずIE以外のブラウザで使えるようにすべきだと思うんだ。 VBScriptはJavaScriptのように変数や命令を大文字小文字を分けて書く必要もなく、 エラーが出てもOn Error Resume Nextで全部エラーを無視してくれる。 こんなすばらしい言語なのになぜIE以外で使われないのか理解できない!!
6 :
デフォルトの名無しさん :2009/05/18(月) 22:22:23
7 :
デフォルトの名無しさん :2009/05/25(月) 08:56:39
msscrdbg.exe というのがあったがまともに動かない。 そもそもデバッグ開始ができない。
悪用法しか思いつかない
9 :
デフォルトの名無しさん :2009/05/31(日) 08:48:58
そこでPowerShellですよ
VBSで、ブートローダの設定を切り換えるって可能? 例えば、XPとVistaをデュアルブートしてたらXPを無効にしたり。
11 :
デフォルトの名無しさん :2009/06/08(月) 18:42:35
ふつうのVBとVBSってどのような特徴があるのですか? 全くの初心者ですが、今からプログラムを始めるならばどちらが適していますか?
両方とも適してない
言語には用途ってもんがある。 プログラムで何がしたいんだ?そこが重要だ。 回答によってはVBもVBSも候補になりうる。
サーバーサイドvbscriptで開発してるが、 ・クラス機能がしょぼ過ぎる ・try catchを実現するために、関数を1つかまさなきゃらないのは面倒過ぎ ・ショートサーキット評価のないif文(おかげでネストが深くなる) ・Null引数で落ちる組み込み関数多過ぎ ・Set 〜 = New のせいでオブジェクト型/その他を混在で返す関数が作れない くらい最悪
なんでサーバーサイドの開発で VBScript を選んだの?
それを聞くのはヤボだろ。既存のシステムの維持拡張させられてるって可能性もあるわけだし。 え?新規?死んでください。
18 :
デフォルトの名無しさん :2009/06/22(月) 23:09:01
vbscript って、visual studio でプログラムを書けないの? サクラエディタとか秀丸とか必要なの?
19 :
デフォルトの名無しさん :2009/06/23(火) 01:11:04
エディタありゃ書けるよ。つまりVisualStudioでももちろん書ける。
20 :
デフォルトの名無しさん :2009/06/23(火) 04:38:22
>>19 ありがとう。vbscriptの拡張子はなんにすればいいですか?
*.vbs だよ、なんでググれないの?
22 :
デフォルトの名無しさん :2009/06/23(火) 20:00:29
まぁ、どうせ糞スレなんだ どんな書き込みだって許せる板さ(´_ゝ`)
24 :
デフォルトの名無しさん :2009/09/03(木) 23:28:32
最近使い始めたけど、面白いね 文字列を実行コードに出来るんて新鮮だった これ使えばテンプレートみたいな事出来そう カオスになりそうではあるがw
25 :
デフォルトの名無しさん :2009/09/09(水) 23:33:34
文字列を返す関数の戻り値を変数の参照にする方法はありますか?
VBScriptプログラムを学習するのに、個人的にこの本は良かった。
VBScriptハッカーズ・プログラミング
http://www.amazon.co.jp/dp/4896272838 ただamazonの評価にあるように、これは学習用の教科書として使う。
サンプルをとにかく試したいならサンプル集を探した方が良い。
っていうかサンプル集は本を買うよりググった方が良いと思う。
VBScript は徐々に消えつつあるけど、PowerShell は普及してるんかね
なんのかんの言ってもVBScriptが現在の標準だろ 少なくともWindows 2008でも標準インストールされないPowerShellを普及してるなどとはとても言えない
>>27 俺もその本で入った。
サンプル見ながら色々できるし、最初は便利だよね。
VBScript+HTAで色々やるんで、辞書みたいなのが欲しいんだけど、
良い本知ってる人居ますか?
機能逆引きできて、書式が出てればそれでOK(サンプルとか不要)な感じなんですが。
名前は忘れたけど、白地に文字の表紙で、10x20cmくらいの縦長の薄い本で
VBScriptの簡易リファレンスみたいなのがあって便利だったんですが、
今は絶版だったと思います。
WSHとVBScriptで別々に買うのが良いのかな。
VBScriptはHTAと組み合わせるとかなり色々できるようになるよね。 Windows上ならメモ帳で書いて、ほぼどこでも動作可能、 言語的にも色々な面でお手軽な所が好き。 クリップボード使えたりD&Dでの読み込み出来たり 文章や画像の表示もIE使えばIEで出来るだけ表示できるし 思った以上に色々できる。 ノートン先生に「悪意のあるプログラム」扱いされるのが許せん。 悪意は無いのに(´・ω・`)
ノートン先生使ってないけど オレオレ署名入れてもだめ?
33 :
デフォルトの名無しさん :2009/09/22(火) 02:33:00
MSXML2.XMLHTTPを使ってWebページの自動取得をしています。 Refererで制限かかってるページあるんですけれど、 VBSで偽装できますか?
調べたけど、久しぶりにDLLヘルを見た
>>32 俺も使って無いからよく知らないが、
ノートン先生入れてる友人にVBScriptで作ったプログラム渡したら
「悪意のあるプログラムなので隔離しました」
とか出たらしい。
悪意はねぇよな。
自己レスだけどポケットリファレンスVBScriptって本が割りとよかった。
よく探したら家にあった。
>クリップボード使えたり htmlfileは、about:blankのセキュ設定次第なんだよな ナンか回避方法ないかと、てstしたがムダだった
>>37 今は、インターネッツのセキュ設定を変更しない方法で、IE使ってる
もちろん、HTAも使えるんだけど
要は、アウトプロセスじゃなくインプロセスでやりたくなったわけ^^
39 :
33 :2009/09/23(水) 16:57:22
33です。 CreateObject("InternetExplorer.Application")して Navigateメソッドで自己解決しました。 ところで取得したDocumentオブジェクト内のImageオブジェクトを そのままファイルに保存すること、できませんか?
VBScriptとHTAでファイルのバックアップを自動で取るプログラム作ったんだけど、 作業途中で止める方法をどうするかで困ってる。 何か良い方法ないかな。 ループで指定フォルダ下のファイルを、まぁちょっと色々加工してから自動的に別の場所にコピーするんだけど、 処理中はHTAのボタンとかは弄れないし・・・ 別のHTAで識別用ファイルを生成して、そのファイルを発見し次第、緊急停止 という方法を思いついたけど、どう考えてもスマートなやり方じゃないよね。
>>40 処理中止後の後処理が不要であればCScript
[CTRL]+[C]で処理を止めることができる
>>41 ありがとう。
わりと大事なファイルのバックアップで、
DVDへの書き込みとサーバー上へのファイル移動を行なうから、
出来るだけ強制終了的な終わり方は避けて、
何らかの方法でループ中に判定で正常終了したい。
あと、HTAで使ってると、WScriptやCScriptと違ってmshtaとして動くから
そういうショートカットキーとかは使えないんじゃない?
>>42 HTAのボタンを常に押せる状態にしたければ、実処理を別プロセスにする方が良い
私ならCScriptで作った「バックアップ処理」と「ロールバック処理」をキックするけどね
[CTRL]+[C]を使わない場合は↓のようにしてEOF検出変化を利用する
待ち側:判定用ファイルをリードオンリーで開きっぱなしにして定期的にEOFを判定
指示側:判定用ファイルに追記
>>43 実処理を別プロセスにする というのが良さそうですね。それで試してみます。
バックアップ処理自体はCScriptに投げてHTAの方の処理は終了、
緊急停止などGUI操作専用にするって感じですかね。
一つのファイルを開いておいて中身で判定というのも、ファイル自体の存在チェックよりは良さそうですね。
値の受け渡しも出来るし、進行状況の表示にでも使おうかな。
これまでCユーザでしたが、最近業務でVBScriptを使うようになり現在勉強中の者です。 VBScriptを使っていて、ちょっと不便だなと思ったことがあります。 それは、関数にオブジェクトのプロパティを参照渡しすることができないということです。 たとえば、call swap( obj1.x, obj2.y )を実行して、obj1.xとobj2.yの値を 入れ替えようしても、うまくいきません。 うまくオブジェクトのプロパティを参照渡しする方法は無いのでしょうか? よろしくお願いします。
46 :
デフォルトの名無しさん :2009/09/26(土) 14:37:30
すみません。ageさせてください。m(_ _)m
>>45 無理。
プロパティは事実上、Get/Setという2つの関数からできているのと同じ(正確にはSetRefの場合もあるが)。
そういう意味で変数と違うから参照渡しはできない。
VBSだとCallByNameも使えないしねえ。
48 :
デフォルトの名無しさん :2009/09/26(土) 20:47:02
だな
ASPが出た頃はこれからVBScriptが主流になると思っていたが 今では書店でもあまり見かけなくなった
50 :
45 :2009/09/27(日) 17:19:57
WSH Lab.掲示板の過去ログ読んでたら、vbsからインプロセスで窓オブジェを使う方法がわかった 先人恐るべし
オブジェを飾ってどうするつもりだ
つまらん
IEを操作するクラスを作っています。 IEからのイベントに応答する場合、 CreateObject("InternetExplorer.Application","IE_") などと書きますが、 コールバックされる IE_ から始まるプロシジャを自作クラス内に置くことはできませんか? あるいはc++でいうスタティックなプロシジャにするにはどう書けばよいのでしょうか。
VBSで二重起動防止ってどうやればいいでしょう? Mutexとか使えると良いのですが・・・
VBScriptの機能拡張はCOM一択
>>55 fso.opentextfile(wscript.scriptfullname,8)
>>54 executeglobal "set IE_hoge=getref(""hoge"")"
scripting.dictionaryは順序ほ保持してくれる連想配列ですか?
できないことは多すぎるくせに、キッチリすることを偏執なまでに要求するひどい言語だった
>>1 には悪いが、モダンな言語使った方が絶対楽だ!
一体何をやろうとしたんだ?
scripting.dictionaryはVBScriptと関係ないな
64 :
デフォルトの名無しさん :2009/12/30(水) 21:47:15
Win7になってなにか変わった?XPの時に使ってたvbsが使えなくなったんだけど XPでは、右クリック→送る から以下のvbsでファイル更新日を変えてたんだけどWin7では更新日が変わってくれなくなった。なんでだろ? もちろんcygwinはちゃんとセットアップしてあるし、touch.exe 単体で更新日は変えれてる。 option Explicit Dim objFSO Dim objWshShell dim objArg Set objFSO = CreateObject("Scripting.FileSystemObject") Set objWshShell = CreateObject("Wscript.Shell") for each objArg in Wscript.Arguments if objFSO.FileExists(objArg) then ' 更新日変更 objWshShell.Run "C:¥cygwin¥bin¥touch '"+ objArg + "'", 0 end if Next
おぉ 変更できないのか
67 :
64 :2009/12/31(木) 10:41:22
どうもcygwinのtouch側の問題みたい。 パスに日本語があるとダメッぽい。Pathがアルファベットだけなら更新日が変わってくれた。 ディスクトップのパスは「c:¥User¥[xxx]¥Desktop」と英語表記だからOKなのかな? XPの時はどうだったろ? この前、cygwin自体がUTF8対応で変更されたみたいだからその影響かな?
>>64 なんでshell.applicationで更新日を変更しないの?
69 :
64 :2009/12/31(木) 22:30:07
う〜ん、やっぱりvbs側かなぁ パスに日本語があると exe 側に渡される引数が「'」で挟まれた状態のまま渡されてくる 'C:\Users\myname\Desktop\aあ' C:\Users\myname\Desktop\a 「'」で挟まないとパスに空白があると上手く動いてくれないし >68 >なんでshell.applicationで更新日を変更しないの? どの関数を使うの?
71 :
64 :2010/01/01(金) 18:19:34
vbs以前の問題としてExplorerの段階で「"」で挟んだ文字列が作られてくる
専用の改造版touch.exeを作って対応するかなぁ
単純な「"」を打ち消すだけのラッパでOKかな
>>70 >
>>69 > なんで「"」でパスを挟まないの?
>
「"」で挟んでも一緒だった
なんで質問ばっかなの?
どれが質問なの?
>>69 なんでtouchのショートカットにしないの?
てか、VBScript開発でなんでIDEなんて要るのか 疑問に感じる
なんでtouchのショートカットにしないのるのか 疑問に感じる
VBScriptとJScript 実行速度は同じ?
>>78 VBScriptの方が若干高速
実行速度より性質の違いを気にするべきだと思うけど・・・
PowerShellはIE操作出来ないからな。 やっぱVBSしかないか〜
VBSなら一応Windows95やWindowsNTでも使える。 外部コマンド関連などWindows9x系とWindowsNT系で挙動が微妙に異なる場合もあるが。
BrowseForFolder について質問なんですが Optionsに&H4000を指定して ファイルも表示出来る状態にした場合に 選択されたファイルのパスを取得する方法はありますか?
ない
SHBrowseForFolder()
89 :
デフォルトの名無しさん :2010/04/25(日) 18:54:39
代わりに 8856F961-340A-11D0-A96B-00C04FD705A2 か 55136805-B2DE-11D1-B9F2-00A0C98BC547 を使えばやりたいことはできるんじゃないか
getref、クラスの中のメソッドも参照しろよ!
91 :
デフォルトの名無しさん :2010/06/05(土) 18:12:50
>>90 クラスの中からexecuteglobalでglobal contextに作ればよい
93 :
デフォルトの名無しさん :2010/06/12(土) 13:48:17
やりたいこと WSH(VBS)から別途準備したxlsファイルのA列のデータの入っている最終行の行番号の取得 理由 xls内でマクロ(VBA)があるとファイルを開くたびに有効するかの問い合わせがある為 xls内にはマクロを組まず、外部からvbsで取得をしたい。 わからないこと xls内でVBAで取得する場合には、"Range("A65536").End(xlUp).Row"で取得できる。 しかし、外部のVBSからはEnd(xlDown)が使えないようでエラーしてしまう。 同様に"SpecialCells(xlLastCell)"もダメ・・ 教えてほしいこと 何か良い方法がないか教えてください。 ------ こんな気持ち悪いコードしか思い浮かばない・・・・ Set getExcel = WScript.CreateObject("Excel.Application") getExcel.Workbooks.Open("C:\book1.xls") For i = 65536 To 1 Step -1 If getExcel.Worksheets(1).Cells(i, 1) <> "" Then e = i Exit For End If Next WScript.echo("last row:" & e)
ExcelVBAの定義(xlDown,xlLastCellなど)はvbs側でそのまま使えない vbs側では「自分で定義して使う」or「値を直接入れる」しかない
95 :
sage :2010/06/12(土) 14:24:07
>>94 サンクス!
今のところ、上の気持ち悪いコードしか思い浮かばないので、もう少し考えてみる。
自分で定義・・か、少し時間がかかりそうだな。俺には
ありがと
WSFでExcelへの参照を明示する手もある。拡張子wsfでたぶんこんな感じ。 <?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?> <job> <reference guid="{00020813-0000-0000-C000-000000000046}"/> <script language="VBScript"> <![CDATA[ Set getExcel = WScript.CreateObject("Excel.Application") getExcel.Workbooks.Open("C:\book1.xls") For i = 65536 To 1 Step -1 If getExcel.Worksheets(1).Cells(i, 1) <> "" Then e = i Exit For End If Next WScript.echo("last row:" & e) ]]> </script> </job>
97 :
デフォルトの名無しさん :2010/06/12(土) 19:28:01
>>95 今回は自分で定義する必要は無いかな。
>>94 さんの言うとおり、値を直接入れれば終わり。
msgbox getExcel.sheets(1).cells(65535,1).end("-4162").row
で動くはず。
試してみて。
ExcelやVBの定数を調べる時は、
イミディエイトウィンドウに ?xlup
と入力してリターン押すと値が表示されるよ。
>>95 一応動作確認したよ。きちんと動いてくれました。
VBSはあまり触らないんだけど、workbookをsetさせるのって出来ないのかな。
あまりスマートじゃない構文になってしまって、ちょっと悲しい。
dim Ex
dim a
const BkPath = "ブックのパス"
const BkName = "ブック名"
set ex = createobject("excel.application")
ex.workbooks.open(bkpath& "\" & bkname)
a= ex.sheets(1).cells(65535,1).end("-4162").row
ex.workbooks(bkname).close
msgbox a
何とかブックを開かずに取得出来るとスマートですね。
excel4macroでブックを開かずにデータを取得出来たはずなので、
そっちも少し試してみようと思います。
excel4macroだと、セルを直接指定しないと取得出来ないので、できないかもしれません。 スレ汚し失礼しました。
a="10" b=20 if a > b then wscript.echo """10"" > 20" else wscript.echo """10"" <= 20" end if で、 a > b が真になるのは、どういう理屈からでしょうか?
>>101 どうもありがとうございます。
"10" > 20 は偽なんですよね。悩ましい…
明示的に数値か文字列かどちらかに変換するしか
なさそうですね。
>>102 VBSはVartiant型しか宣言出来ないのだから、
やはり型変換の手間が必要な時もあるよね。
105 :
デフォルトの名無しさん :2010/07/07(水) 09:24:08
スクリプトで、「そのドライブが存在するかどうか」を判定するには どうすればよいのでしょうか? 存在するか否かを判定させて、処理させるか否かを分岐させたいと思っています。 ネットワークドライブに分かり易く名前を付ける為、バッチファイルの中で ------------------------------------------------------------ NET USE F: \\ochinko\chinchin /USER:kintama penis NET USE G: \\192.168.0.69\共有 /USER:hiv aids c:\ND_rename.vbs ------------------------------------------------------------ と記載し、ND_rename.vbsの中で ------------------------------------------------------------ strDrive = "F:\" strName = "Fカップ" With CreateObject("Shell.Application").NameSpace(strDrive) .Items().Item().Name = strName End With : :(以下ドライブ分同様の記述) ------------------------------------------------------------ としています。 これだと、相手のPCが落ちている場合等、毎回VBScriptのエラーが 出てきて精神上よろしくないのです…そのドライブが存在しないのならば 処理を飛ばせればよいのかと思いました。
>>105 cscript c:\ND_rename.vbs
メモリにアクセスして書き換えるってどうやるの? ゲームやってるときに限界突破とかしたい
109 :
デフォルトの名無しさん :2010/07/29(木) 11:57:16
自分で書けばよかろう 何がしたいんだ?
On Error Resume Next がいまいちよく解りません… 「実行時エラーを発生させたス テートメントの直後にあるステートメント、または、On Error Resume Next ステートメントが入っているプロシージャから最後に呼び出しを行ったステー トメントの直後のステートメントに制御を移動」… つまり、どっからどこまでがエラー処理が必要で、どこからが通常通りエラーメッセージ吐いて終了してくれるんでしょうか
on error resume next は on error goto 0 で閉じるもの。 2つセットで覚えておくと良いよ。 resume next ってのは、例えエラーを吐いたとしても無視して次の行に移動するって事。 エラーが起きるって事はプログラムの不備なので、しっかりプログラミングが出来れば、 ”基本的に” on error resume next を噛ませる必要は無いよ。 エラー処理面倒だから無理やり動かしちゃえ!ってのは最悪のケース。
使えれば素直にそれを使ったんですが On Error GoTo 0 が無い&ネット接続不可の環境なんです(つまり書き込みしてる環境とは別の環境です) 色々なサイト読むと Resume Next だけでも安全なコードは書けるっぽいのでそれで何とかしようと思ったんですが… イマイチResume Nextの有効範囲がよく判らない(どうやらコードの最後までという訳ではないらしい?)ので質問しました
いや、最後までだろ?
>>113 関数/サブルーチン内なら該当の関数/サブルーチン終了まで
関数外なら最後まで
だと思う
On Error GoTo Next
は基本的にエラー処理のモードを変更するような意味合いなので、
自分で明示的に再設定しない限り勝手に戻ったりはしない
よくわからんなら、必要なところだけセットで括るようにすればいいじゃん。 他の言語での例外処理はそういうやり方になってるんだし。
>>115 ありがとうございます。関数/サブルーチン終了までですね
エラー処理部分だけサブルーチンに括るようにします
超基本的な質問で悪いんだけど 文字で「"」を扱うにはどうしたらいいですか? 改行はvbcrなのは分かったんですけど「"」は vbscript 「"」で検索してもだめだ・・・
chr(34)
ふおぉぉおありがとうございます!!!
""""
ImageMagickをVBscriptで使いたいのですがインストール後
Set im = CreateObject("ImageMagickObject.MagickImage.1")
のところで
「ActiveXコンポーネントはオブジェクトを作成できません」という
エラーが出てしまいます。
どうしたらVbscriptでImageMagickを使う事が出来るのでしょうか?
OSはwindowsvistaです。
以下をやってみたけどやはり同じエラーが出続けます
インターネットオプションのセキュリティのタブで
レベルカスタマイズからActiveX関連の部分を有効にする
regsvr32 /c /s "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll"の実行
ImageMagickのアンインストールと再インストール
インストールフォルダーをC:\Program FilesではなくC:\にして管理者権限でインストール
ImageMagickについていたTEST用の.vbsを実行してみましたが
同じSet im = CreateObject("ImageMagickObject.MagickImage.1")で
同じエラーが出るのでこの文章自体は間違っていないようです。
気になるのは
インストール時にppm・・・というエラーメッセージが出た事です。
検索したらvbscriptには関係ないとのことでしたが一応状況を書きました。
↓エラーメッセージのスクリーンショットです。
http://viploader.net/ippan/src/vlippan156229.jpg
123 :
122 :2010/10/10(日) 16:19:07
あの・・・とりあえずVBscriptを再インストールしようと思うのですが どこでダウンロードできますか?? マイクロソフト内が広すぎてどのファイルか分かりませんでした。
>>123 VBScriptは単体ではなく、WSHの一部だよ。
再インストールはできないし、その必要もない。
現在のWSHのバージョンは5.7だろ?
「WSH 5.6」、「WSH 5.7」で検索してみろ。
それでヒットするMSのページがそうだが、必要ないぞ。
まあ落ち着け。
いきなり難しいことに挑戦してるなー。
そもそもImageMagickがCOM(ActiveX)を持ってるとは知らなかったぞ。
>インターネットオプションのセキュリティのタブで
>レベルカスタマイズからActiveX関連の部分を有効にする
これはIEおよびIEコンポーネントの設定。IEというブラウザの話なので無関係。
http://www.imagemagick.org/script/ImageMagickObject.php ここにはこう書いてあるぞ。
The ImageMagickObject is registered if the checkbox, Register ImageMagickObject, is checked at install time.
>ImageMagickのアンインストールと再インストール
途中の6個あるチェックボックスの一番下に
□ Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH
という、チェックの入ってないやつがあっただろう。チェック 入れた?
でも新しいやり方ではなく、今まで通りのコマンドライン実行の方が良いのでは?
実行するのには"WScript.Shell"のExecメソッドとRunメソッドがある。それぞれちょっと違う。
126 :
123 :2010/10/10(日) 21:25:09
>>124 そーなんですか・・・ありがとうございます。
>>125 □ Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH
にはチェック入れました。
コマンドライン?コマンドプロンプトでって事ですか?
とりあえず動かないのも寂しいので
Vbscriptでバッチファイルを自動で作るようにして
ImageMagickでの動作はbatファイルにさせてみましたけど
なんだかなあです。
スマン、またトンチンカンなこと言ってたな。 ImageMagickObjectのインストール自体は出来てるんだな。 regsvr32 /c /s "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll" これを変なオプション付けずに、 regsvr32 "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll" でやったらどうか。 テストするならここのがいいんじゃない。 C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject\Tests
>>128 "Users"ってことは、Vistaか7?管理者で実行してくれ。
132 :
124 :2010/10/10(日) 23:15:22
あら他にも助っ人がいらっしゃるぞ。良かったな。 そう、管理者権限があやしい。 で、もしImageMagickObjectがうまく入ったとしても… こんな問題があるなら一般ユーザーには使いにくいのでは。 >Vbscriptでバッチファイルを自動で作るようにして そこまで出来るんならわざわざバッチファイルを作ってそれを起動するんじゃなく、 VBScriptにoraファイルをドラッグ&ドロップで開始し、いろいろやって、 直接VBScriptからImageMagickを起動すればいいじゃん、て話。 VBScript一本のみにするとなんか問題あるかな??
133 :
123 :2010/10/11(月) 18:27:41
>>131 vistaです。
ありがとうございます!
>>132 たしかにそうおもいますね
いろんな人に使って欲しいから
無理に解決せず
vbscript+バッチでやらせた方が
いいですね。
某所でもアドヴァイスありがとう!!
134 :
124 :2010/10/11(月) 22:45:15
>vbscript+バッチでやらせた方がいいですね。 どうしてもバッチから離れられないんだね(笑) まあ確実な逐次実行ならバッチも良い選択だが。 oratopsd4見たぞ。お疲れさん。短時間でここまで仕上げるとは、たいしたもんだよ。 説明含めていろいろツッコミどころが多いけどね… なんか不要な部分が多いね。Wscript.echoが大量に有る(笑) これ、クリックするのが大変そうだな。まだまだα版てとこかな。 次に進む前にかなり整理した方がいいんじゃない。 最初に一回CreateObjectしたらそれを使いまわし、最後にNothingするとか。 整理できれば複数ファイル対応に拡張するのも容易だろう。 ついでに重箱の隅をつついてみると、 ・chr(34)は""とも書けるよ。好みの問題だけど。 Dir1="""C:\Program Files""" ・wscript.sleep(4000)はいらないんじゃない?objWShell.Run zipname,0,True は終了待ちするから。 というか、今のobjWShell.Runする方法ではダブルクリックしてるのと同等だから、 各ユーザーの環境(インストールされてる解凍ソフト)の挙動に左右されると思う。 ZIPの解凍については「WSH ZIP 解凍」等でググって…もうやってるか(笑)
135 :
123 :2010/10/11(月) 23:45:26
ああ、どうもアドヴァイスありがとうございます。 Wscript.echoは 一応「 ' 」で止めてありますけど の数はエラーを探した回数&またすぐに調べるようにってことで・・・。 オブジェはまったく調べてないので(もう日にちがやばいので・・・orz) もうおまじない的につけまくりましたwww
136 :
124 :2010/10/12(火) 00:31:55
「 ' 」で止めてないのが9個もあるけどそれでいいのか(笑) じっくり取り組めば不可能だったことも可能になると思うよ。 まあゆっくりやってください。
>>136 ぐえっ直しとくよ・・・
指摘ありがとう!
138 :
124 :2010/10/12(火) 01:27:16
139 :
123 :2010/10/12(火) 01:45:42
>>138 それは試したけど駄目だった・・・
というかまだよく分かってないときにやったから
出来なかっただけで
次は出来るかもしれないですね!
ありがとう!!
VBScriptでスクリーンセーバーの「モニタの電源を切る 時間」を設定する方法を教えてください。
sendkeys
powercfg
保護モードで動いているか調べる方法を教えてください
保護モードではできないことをやってみればよいのでは?
たとえば?
c:\ にファイルつくるとか
それってUACと勘違いしてない?
区別してやらないことをやってみればわかるな
きれいなソースだね
151 :
デフォルトの名無しさん :2011/04/02(土) 21:18:03.59
PCがWindows7になると、JoinDomainOrWorkGroupでドメイン参加ってできないですか? MSDNみてもいまいちわからないです。
153 :
デフォルトの名無しさん :2011/04/03(日) 22:24:17.80
>152 レスサンクスです。これをベースにつくったんですけれど、 XPは参加できたけど、7はダメだったんです。 もうちょっと見直してみます。
154 :
デフォルトの名無しさん :2011/04/04(月) 21:22:28.89
Win32_NetworkAdapterConfigurationで IPV6のアドレスを取得条件で省きたいんですが、 可能でしょうか?
うん
>>155 アオマエに聞いてるんじゃネェよ。とっとと失せな!
うん
いかんな‥‥2年かけて158か‥‥必死さが、全く伝わってこない‥‥w
スクリプトでセキュリティゾーンと保護モードを調べる方法を教えてくれー
プロパティを表示して引っこ抜け
161 :
デフォルトの名無しさん :2011/06/07(火) 13:14:19.32
今ASP(クラシック)&VBS勉強してるがダメか?
ラテン語だって勉強していいんだから
全然必死さが足りない
ieのmenuextでクリック箇所のフォント、色、文字サイズを調べるにはどうすりゃいい?
スレ違い それはIEの話であって、VBSの話じゃない ActiveXアプリケーション(IEとかExcelとか、MS以外だとIrvineとか)の話まで VBSの話として扱うと、なんでもありになって収拾がつかなくなるからな
external.event.srcelement.style.font
まったくの初心者です。 自分なりにネットで調べてもよくわからなかったので、よろしければ教えてください。 VBSで"notepad.exe"を起動させたいとき、 Execメソッドを使うと瞬時にメモ帳が起動するのに、 Runメソッドだと2〜3秒たってからメモ帳が起動します。 Runメソッドというのは、もともとそういうものなのでしょうか? Runメソッドを使ったときでもメモ帳を瞬時に起動させることはできないでしょうか? よろしくお願いします。
>>168 ありがとうございます。
Runメソッドを使ったときも、Execメソッドのときのように
一瞬で起動してくれるといいのですが、もともと使い道が違うのかもしれません。
もう少し勉強してみます。教えていただいたURLも参考になりました。 m(_ _)m
runはshellexecute() execはcreateprocess() だから
>>170 ありがとうございます。
shellexecute()、createprocess()というのを
調べてみます。
172 :
デフォルトの名無しさん :2011/11/22(火) 12:55:38.53
調べた結果は?
結果往来
174 :
デフォルトの名無しさん :2012/03/09(金) 12:53:56.73
VBScriptのClassは継承できないのではなく、継承する必要性が全く無い事にようやく気が付いた...orz
175 :
デフォルトの名無しさん :2012/03/09(金) 20:55:28.95
VBScriptよりJScriptの方が配列の扱いが柔軟だし作りやすい けどWindows上でのパスを扱うならエスケープ扱いを受けないVBScriptの方が勝手がいい 自分の中で必死に話し合ってみた
176 :
デフォルトの名無しさん :2012/03/10(土) 11:14:56.41
VBScriptのClassがヤバイほど面白れぇ... 何これ、派生クラスは作れないのに、派生クラス使ってコード書くのとコード量が変わらねぇw
ラブレター
>>176 基底クラスを書かない分むしろ短かったりする
起動してバックグランドでキー監視って出来ませんか? 指定したキーが押されたら処理が始まって終わったらまたキー待ちという処理をしたい。
>>179 VBSにそういう機能はありません。
そういう機能を持ったCOMを自作することで、VBSで目的を実現することは可能ですが
だったらCOM作るより普通にexe作った方が良いでしょう。
あとはAutoHotkeyというスクリプトツールだと、比較的簡単に目的のこと出来ますよ。
「起動したらBGでキー監視」はAHKのデフォルト機能で、起動するだけでやってくれるから、あとは
キー::Run, wscript.exe 〜.vbs
って書けば、AHKが常駐してキーが押される度にVBS実行してくれる。
もちろんAHKの言語覚えて、VBS使わずに全ての処理をAHKにやらせてもいいし。
ありがとうございます。 早速、試してみます。
alt ctrl shiftならバックグラウンドでもsetintervalなどで監視できるよ
標準入力をバイナリで読む方法はないものか……。 読めなくてもファイルにコピーできればそれでいいんだけど。 ぐぐって無変換のテキストとして読む方法はわかったんだけど、 2バイト単位でしか読めないから最後の1バイトがどうにもならない。 Windowsの標準機能だけでファイルアップローダーを作りたいんだ。 IISとVBS(WSH)以外の選択肢があればVBSにこだわりはないんだけど、 別途インストールが必要なものは不可という条件で。
184 :
デフォルトの名無しさん :2012/05/14(月) 12:02:08.37
>>183 JavaScriptでできるっぽくね? 試してないけど…
JSって標準入出力(というか入出力自体)使えるんでしたっけ。 見たところVBSと同じようにオブジェクト作って同じメソッド使うようなものしか見つけられなかったのですが。 いったん最後まで読めてしまえば融通はききそうなのですが……。
クッキーだけじゃね。
html5ならローカルファイルにアクセスできるよ。できるよ。 かけないけどね><
188 :
デフォルトの名無しさん :2012/05/15(火) 17:12:03.61
>>188 IISからの標準入力だとEOF相当のものをつけてくれないらしくて、
ReadAllだと帰ってこなくなっちゃいます。
一緒に長さも送ってくるのでRead()で読めばいいのだけど、
Readで指定する長さはUnicodeでの文字数なので半分にして
使わないといけない。
そして奇数バイトだと最後の1バイトを読もうとするとこれまた
応答がなくなっちゃうという。
ReadAllないし、ストリームからバイト単位で読み出す方法があれば
よいのだけど、JScriptにせよ読み出す部分は同じTextStreamの
メソッドなので、うまくいかない……というのが今までのところ。
参考情報ありがとうございます。これから読んでみます。
無理無駄諦めろ
いろいろ調べてみたのですがやっぱり無理ぽいですね……。 とりあえず用立てるために奇数サイズの末尾1バイトはダミーデータで置き換えることで妥協しました。 なんで文字コード変換しつつ行単位で読み書きなんてのができて無変換でバイト単位の読み書きができないのやら……。
fsoがtextstreamしかサポートしてないからだと思うが? イヤならbinarystreamをサポートするCOMをvb.netでちょろっと書いてやればいい それくらい簡単だろ?
VBScriptがバイト型をサポートしてないからだと思うが?
194 :
デフォルトの名無しさん :2012/05/21(月) 01:06:57.56
これなんで? x = "0" a = 0 WScript.Echo x > a ' True WScript.Echo "0" > a ' False
当然だろ WScript.Echo asc("0") WScript.Echo 48 > a ' True WScript.Echo 48 > 48 ' False
197 :
デフォルトの名無しさん :2012/05/21(月) 23:20:28.01
WScript.Echo 48 > 0 ' True
201 :
デフォルトの名無しさん :2012/05/22(火) 20:17:23.97
潜在的バグ潜みそうすなぁ… x = "0" a = 0 WScript.Echo x > a ' True WScript.Echo x > 0 ' False
潜在的バグなら潜みそうすなぁ… あほか
良くいわれるだろ。 … あほか
x = "0" a = 0 WScript.Echo( x > a )// False WScript.Echo( x > 0 )// False WScript.Echo( x == a )// True WScript.Echo( x == 0 )// True
ソースがブログ … あほか
あほか 基本常識だからそこらにあるんだろ 真性のあほだな
あほか ソースがないんならスルーすればよいのに 真性のあほだな
あら恥ずかし外でも使ってんのか?あらかわいそう誰も教えてくれないのか?
外でっつーか、ビジネスメールでも使っているのかねぇ。 相手に鼻で笑われるかもしれないのに。
人にソースを示すときにブログの URL を貼る馬鹿が何を言っても無駄。
>>208 こういう奴がTwitterでデマ拡散とかしてんだろうな…
基本常識のソースで何だ? ?十年も日本語使ってりゃ分かりそうなもんだが? そっかテレビゲームばっかで使ってないのか
人にソースを示すときにブログの URL を貼る馬鹿が何を言っても無駄。
何このバカ? そんなにソースが欲しいのか? ほら喰らえ
>>201
そんなに痛いか? だから誰も教えてくれなかったのね? 知らぬは一生の恥 を続けてればいいよ
ソースとしてブログを持ち出した後、基本常識連呼! 客観的にこれがどう見えるか、基本常識をお持ちなら分かりませんか?
認めなよ、自らの過ちを。見苦しいだけだよ。
だからソースじゃないと言ってるだろ? なんで基本常識にソースが要るんだ?あほには分からんか?かわいそうにな
> ブログ(笑) 底なしのアホですね かわいそうに
>>221 >ソースとしてブログを持ち出した後、基本常識連呼!
これが全てを物語ってるな
惨め過ぎる
ブログにトラウマでもあんのか?
>>208 の馬鹿が今回の件でトラウマになるだけだろ
もしも「基本常識」とやらを持っているのなら
ところでソースがブログだと何なんだ?あほか?
よく世話になるブログがいくつかあるけどな ブログの良し悪しが分からんのか?
ソースがブログだと何なんだ? … あほか
馬鹿晒しage … あほか
> ところでソースがブログだと何なんだ?あほか? 底なしのアホですね かわいそうに
お前馬鹿って良くいわれるだろ。
お前馬鹿ってよく言われるだろ。
ソースにブログのURLを貼って馬鹿にされると「基本常識」連呼。 ついには「ソースがブログだと何なんだ?」と開き直り。 これはないわ。
お前馬鹿って良くいわれるだろ。
お前基本常識がないってよく言われるだろ。
ついにコピペに走ったか… これ以上何を言っても馬鹿を晒すだけだと気付いたか。
ブログでも読んで日本語勉強しろよ
お前、馬鹿と岩猿追えない、とか、思ってんだろ?
>>208 なかなか良さそうなサイトなのでサイト検索でブックマークしときました
ウサギ美味しい とか思ってんだろ?
こいつらは必死に話し合っていてスレタイをよく理解しているようだが肝心の部分が読み抜けてる。
こいつ等は必死に話し合って居てスレタイを良く理解して居る様だが肝心の部分が読み抜けてる。
>>245 お前は朝鮮人か。
読点の位置が間違ってるぞ。
岡崎洋三 『日本語とテンの打ち方』 を読め。
そこに間違いと書いてあるのか?そんなバカな
>>250 岡崎洋三 『日本語とテンの打ち方』 を良く読め。
コピペにマジレスしてる馬鹿は何なの?
岡崎洋三 『日本語とテンの打ち方』 を良く読め。… あほか
岡崎洋三 『日本語とテンの打ち方』 を良く読め。… あほか … あほか
257 :
デフォルトの名無しさん :2012/06/10(日) 17:06:10.77
vbsからsqlを発行するプログラムを作ってます。 この時sqlの「in( )句」にvbs内で可変長に作成する文字列変数を 渡して検索することってできるでしょうか? 変数a = "'11','12','13',・・・" ←個数は可変 ・・・ where colum in( 変数a ) ↑こんな感じです 昔C#で似たようなことしようとしたんですけど、エラーだかでできませんでした。 確かカンマも文字列で認識されるから?とかだった気が。。。
259 :
デフォルトの名無しさん :2012/06/21(木) 01:03:47.94
あげわすれ
>>258 SQLを発行していると言うことは、最終的に文字列にしていると言うことだろ。
だったら、エスケープするなどの工夫は必要かもしれんができないわけはないな。
>>258 データベースによっては数が多すぎるとエラーになるな
VBScript歴3ヶ月のおいらが必死にレスしたいのだが良いか?
是非
ありがとう…では…。 VBScript は「出来るようで出来ない子」という話から。 Visual Basic for Script Editon の意味を最初はあまり理解できなかったのだが、 Wn32API を呼べない、OLE オートメーションを呼べてもそのプロセスIDすら取れない、ことに気付いてからの理解は早かった。 VBScript はバッチファイルの置き換えを意図したものに他ならず、 1. 定型的なバッチ処理 2. 対話的なバッチ処理 以上のことをやろうとするとべらぼうにハードルが上がる。 基本的にリアルタイムイベント処理が不可なのである。 WMI や .NET のクラスを VBScript から使おうとすると感じる疎外感はすさまじい。 非同期処理を求められるクラスのインスタンスがことごとく使えない。 System.IO.FileSystemWacther さえ使わせてくれない。 これはこのクラスに COM インターフェイスが無いからであるが、にしても冷遇過ぎる。 ていうか __InstanceOperationEvent クラスがどの程度 VBScript から使えるのかという情報すら無い。 調査中だが、キーボードやマウスからの入力イベントは多分キャプチャできない。という予感がしている。
IE オブジェクトの OnUnload イベントに GetRef で関数を代入して、 IE オブジェクト変数に Quit させてを IE プロセスを破棄する時にキーイベントを取るとかいう…。 そんな不毛なことしかできないのかよこれ…。 ていうか、できないよな…調べたけど…。 絶望した!VBScript に絶望した!!
>>9 PowerShell のコマンドレットから OS やアプリの機能を呼ぶ、という点においては変わりなくない?
俺は PowerShell 良く知らないから聞くのだけど。
>>10-14 流れの通りで。
以下、流れの通りには返さない。
>>15 逆に考えるんだ、バッチスクリプトでやらされるよりはマシだと考えるんだ。
>>24 逆に eval 出来ないスクリプト言語の方が珍しい。
あるサイトで「VBScript には eval が無い」とか書かれてて、慌ててリファレンスで Eval 関数探したわ。
あってホッとした。
>>25 意味不明。
>>27 面白そうだが評価が真っ二つだな…。安いから買ってみるか…。
>>28-29 少なくとも、2012年段階では C#より普及してないと思う。
「Windows にあらねば OS にあらず」というようなある種の開き直りが見て取れるから。
C# は mono でコンパイルして JIT 抜きの VM 込みで配布すれば iPhone でもイケるらしいし。
>>30-31 個人的には HTA には全く未来が無いと思うのでやらない方がいいと進言する。
セキュリティに穴を開けまくって実現している機能なので、予告なしに消える可能性が高い。
>>32 俺は一般ユーザー権限で動くものしか作らないという信条なのでその辺は知らん
>>33 何故だか Byte Array に変換しないといかんらしいが、ヘッダはいくらでも作れる。
今日はこんなところで。とりあえず必死に語ってみた。
まだそのレベルか まあ今が一番面白いというかハマる時期なんだろうな
書こうと思って書き忘れてた。
俺の調査によると、Long 型で表現できる以上の数を Mod しようとするとオーバーフローする。
Currency 型に強制キャストしても無駄だった。
色々調べたが、日本語、および英語サイトのどこにも情報を見つけることができなかった。
Project Euler の問題を解いていてつまづいたんだが…。
何でこんな基本的な情報がどこにも無いんだ?
つうか WMI を調べてると「WMI Fun」とかいうゴミサイトがノイズになってイライラする。
wbemtest やら WMI Code Creator やらが吐くテストコードを転載しているだけのくせに。
絶望した!Scripting Guys が
「自分たちもこれらのクラスをどれくらい使えるのかわからない」
と言ってる時点で絶望した!!
どんだけ C++/C# 優遇なんだよ?
余談だが、
一応IT関係の仕事してますブログ
http://teruterublog0700.seesaa.net/ も相当ノイズになって腹が立つ。
「○○さんのブログの手順でやってみました」
「できました!」
だけのゴミブログ。
条件が少し変化しただけでものすごく苦労させられる課題に関してもこの調子だからムカつく。
>>270 VBScript でどこまで行けるのか教えてほしい。
今日は本当にこんなところで。
> 俺の調査によると、Long 型で表現できる以上の数を Mod しようとするとオーバーフローする。 これはネットに情報があった。 恐らく、ヘルプでの調査とネットでの調査を混同していた。 お詫びして訂正する。
今日のお題は、 「OLE オートメーションのメソッド呼び出しにカッコが要ったり要らなかったりするのが気持ち悪い」 ということ。 VBScript を書き始めて3ヶ月、自分なりのスタイルを構築してきた。例えば、 1. 式はカッコでくくる(For 分は除く) 2. Wihie 〜 Wend は使わない。Until もできるだけ使わない。 3. Not 演算子はできるだけ使わない。<>演算子を使う。 等である。 優先順位は 1. > 2. > 3. だ。 何故 1. > 3. > 2. ではないかというと、Not 演算子の位置が気持ち悪すぎるから。
普通は If (objHoge Is Not Nothing) Then と書きたい。しかし、 If (Not objHoge Is Nothing) Then と書かなくてはならないのは苦痛だ。できれば If (Not(objHoge Is Nothing)) Then と書きたいがカッコがややこしくて別な意味で不細工になる。 まぁでもこいうのには慣れた。
なんか前回より話題のレベル落ちたなw 完全に初歩的な勘違いの領域になっちまった
さて本題である。 1. カッコを付けて怒られるパターン a) 引数が1個の場合はすんなり動く b) 省略可能な引数を省略せずに書くと「Subプロシージャーは…」というエラーが出る。 2. カッコを付けないと怒られるパターン 「行の終わりが不正です」と怒られる。 ちなみにこれらには規則性が全く無い。 同じ OLE オートメーションのメソッド間でも統一性が無い。 一応、「カッコを付けないで書いて、怒られたら付ける」というマイルールを作ったのだが、 何故こんなことが起こるのかが分からない。
>>276 どこを勘違いしているのかを教えてくれれば助かる。
C系で育ったので、VB系の構文は慣れるまで非常に苦痛だった。
引数付きコンストラクタが書けないとか、 クラスメソッドやクラス変数が使えないとか、 そういうのは Cっぽく名前空間で逃げれば何とかなる。 言語単体では標準入出力すらできないくらい OLEオートメーションに頼った設計のくせに、 頼みのそいつらを VBScript からどれくらい操れるのかという情報が、大抵の場合、ない。 MSDN を見ても C++、C#、VB しか相手にしてませんのよ、ごめんあさぁせ、と言われているような錯覚に陥る。 結果、メソッドをチマチマ叩いてみるしかない。(引数の型で予想できる場合もあるにはある) IE オブジェクトの ClientToWindow メソッドは VBScript からは使えない。 Visible = False な IE オブジェクトに仕込んだ JavaScript にお願いして…ってしなきゃいけないの? WMI は多分単に解像度を返してくるだけだし、ツールバーを考慮に入れた描画領域を得るのにまた調べものか…。 ていうか、何かやろうとする度に延々調べて不毛なテクニックを得なければならないなんて…。 パトラッシュ、僕疲れちゃったよ
最近 PowerShell や C#、.NET がおいでおいでをしている。 確かに、COM や .NET の世界の入口を探訪できた経験は貴重だったが、 思い切って行っちゃおうか… 来年、つまり Windows XP のサポートが切れる1年前に行こうかと思っていたのだが…。 何で MS は Microsoft Update で強制的に XP に PowerShell や .NetFramework を入れないんだろう。 絶望した!これらをオプションインストール扱いにする MS に絶望した!!
きっとバカなんだね 所謂、勉強の出来るバカ、テストの点数は良いバカ アレも出来ない、コレも出来ないと扱き下ろしだけは一人前だが 自分が間違っていて規則性のあるエラーが出ても規則性に気付けず統一性が無いとか言っちゃって 自分の書いた論理式の論理的におかしい部分にも気付けない 一つ覚えたら凝り固まっちゃって、仕様の違いも調べず、「これで出来るはず」という勘違いを押し通して それでエラーが出たら、貧弱だ不適切だと自分の無能を棚上げして言語を批難する 君には、臨機応変に多数の言語や実効環境を使いこなすのは無理だ
>>35 署名の有無で挙動が変化するかは分からないが、2012現在、メーラで普通に弾かれる。
>>36 有名な解法を。
objIE.Navigate "about:blank"
With objIE
.Document.Body.InnerText = "クリップボードに入れたい文字列"
.execWB 17, 0
.execWB 12, 0
.Quit
End With
>>39 その Image が指す URL の画像ファイルを直に取ってきて保存すればいいんじゃない?
MSXML2.HTTP で取ってきてエンコードしてバイナリストリームに変換して保存。
HTA 関係はパス。
>>281 言語そのものは批判してないんだけど?
「一定の逃げ方、書き方」を確立すればいいし、それでも無理ならそこが言語としての限界でしょ。
COM の呼び出しメソッドに関しては、「何故そうなるのかが分からない」と言っている。
恐らく COM 側のインターフェイスの都合なのだろうが、どの資料を見れば分かるのか?
調べたつもりだが本当に分からん。
> 自分の書いた論理式の論理的におかしい部分にも気付けない
Not のことか?Not "ブール式" という仕様なのは理解してるし、VBScript を使うなら納得するしかないし、
でも個人的にはなるべく使いたくないから使わない記法をマイルール化というだけの話。
SQL は IS NOT と書くからね。
というか「絶望した!」というフレーズを本気にしたら駄目だよ。 さよなら絶望先生のセリフだから。 今日はこのへんで。
あ、そうそう、このスレでの自分はかなり縛りをキツくしてレスしている。 ・VBScript から使えるものしか使わない。 ・一般ユーザー権限で使えるものしか使わない(管理スクリプトは例外)。 ・Windows XP の最小構成でやれることの限界を目指す(だから Excel 経由で〜や、.NET のクラス経由で〜も無し) VBScript は 周りの助けを借りて動く言語なので、構成と権限を最小にした環境を「言語環境」だと思っている。
言い訳ばっかり ダメだこの子
さて、可愛そうな
>>286 を放置して我々は先へ進もう。
何故なら、
>>286 に VBScript を食わせても多分、というより確実に動かないからだ。
つまり
>>286 の価値は VBScript より下である。我々にとっては Err.Description の方がよほど有用なのである。
今日のお題は「VBScript の良いところ」である。
1. Windows2000 以上だったら(ほぼ)確実に動く。追加インストールは不要
2. OLE オートメーションが呼べる
3. 古式ゆかしい BASIC に慣れた人々にも優しい
… 3. はかなり無理をしている。
でだ。
>>281 の人はものすごく勘違いしているのだが、1. のメリットが無ければ VBScript の魅力の 80% は失われる。
自分の書き方が悪かったのかもしれないが、C系で育った、というのは自分的には UNIX 的思想で育った、という意味もある。
(主に中括弧文化という意味で)
Perl も PHP も AWK も bash もイケるんだが(Ruby と Python は書けない)、最小を想定すると Perl と PHP は外さざるを得ない。
Emacs しか使えないと客先に vim しかないと窮するから使えた方がいい、というのと似ている。
「どの環境でも動く」というのは美しい。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これを忘れた輩が昨今多いのは嘆かわしいことであるが、実は Win 厨に多いのも事実である。 VB で納品されたアプリが正直に「With ステートメントでエラーが出ました」て吐くか普通?いや普通ではない。 COBOL が分かる人間は減ったが相変わらずメインフレームで動いているので、育児がひと段落した元コボラーの主婦でも雇う流れはまだある。 とは言え元コボラーで現C使い、てな人間は目が腐るようなコードを書いてくる。 見たくもないがオブジェクト指向COBOLなんてものもあるらしい。 これからはラムダ式や匿名関数、匿名オブジェクトバリバリの時代が来るのは、まぁ、分かっている。 C# の進化っぷりを見れば予想はつく。
ならば VBScript を踏み台にして Windows の底なしに暗く、深い闇に眼を投じてみようではないか。 自分は WScript.Shell クラスにはほとんど興味が無い。多分10分で使えるようになるから。だから執拗に COM に執着してきた。 普通のテキストバッチ処理は普通にバッチスクリプトで普通に出来ることが多い。 仕事上でのテキスト処理はほぼ Perl でやっているが、配布するとなるとまず使わないし、使えない。 そのような理由で Win に関わるようになって VBScript に興味を持ったのだが。まぁそれも終わりだ。 あらかじめ絶望していた!VB系の連中のレベルの低さに絶望していた!! 予想斜め45°下の低さっぷり!ありがとうございました!!
遺体、板杉
何がどのように痛いのかを指し示すことができなければお前が最上に痛い。 VB系の自称プログラマの底辺っぷりをさらすのみ。 きちんと反論しろよオラ?
ちなみに
>>281 の人間が言う「論理式」という言葉は BASIC 系以外ではまず出てこない。
C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
「ブール式」もしくは「ブール型を返す式」としか言わない。
というところで「すら」底辺っぷりを晒すお前ら。
生きてて恥ずかしくないか?
というところで、 「VBScript がスクリプト言語として負わされた悲しみというべきもの」 言うなれば、 「遊びで付き合った女に中出ししてできちゃった結婚したものの、嫁が過去のトラウマを背負った○○だった」 そういう悲劇めいた喜劇に踊らされている者達よ。 VBScript に罪はないが、お前らのスキルの低さは万死に値する。 今夜はこんなところで。
今夜はってまた来るのかよ。 大好きじゃん。
感想を書きたいのか
VBScriptユーザを貶めたいのか
>>263 の目的がわからなくなってきた
>>292 フレーズ検索の使い方わかる?
"論理式" "C言語" 約 11,300 件
"論理式" 約 185,000 件
"ブール式" 12,300 件
論理式 ブール代数 ブール値 がごっちゃになってるんじゃないか?
まあ、ここはおまえの日記帳だから好きなだけ吠えて行けよ。
ここで恥をかいたってリアルの知り合いにバレるわけじゃないし、君が生きてることを恥じる必要はないよ。
さて、今日のお題は「さようなら、Sub プロシージャ」。 ちなみに、自分に対する罵詈雑言があるだろうから無視して書く。 その前に、Call ステートメントという意味不明なステートメントを呼ばないと Function が Sub 扱いになることを知らなかったことを ここにお詫びして訂正する。 「こんなもんは呼び出しを明示的にするだけのもんだろ」と思っていたら甘かった。 何の発想はモダンな言語であれば至極当然なのだが、さすがは古い因習の怨念に取りつかれた BASIC 系言語。 これは、「式文」という概念が VB 系言語にはない、ということの証左である。 式が値を返さない場面があって当然、というのは圧巻である。今時有り得ない。 自分はこれで「Set」という意味不明なステートメントがある理由や、「=」という記号が場面によって意味が違うという気持ち悪さを納得した。 一律で「Call」と書けばよいところを、何で Sub があるかという話だ。 「Call」と書けば Function の取りたくもない返り値を捨てることもできる。 だがさすがは VB系、伊達に過去の負の遺産を背負ってはいない。
厳密に言えば、全ての式文は値を返す。 が、void を返したりして意味が無いので捨てて当たり前な場面が多々ある、というのが実情である。 「だったら Sub プロシージャ、いらない子じゃん」 普通はそう思うが、Sub 君はどうやら私生児ぽい扱いらしい。 大文字小文字を区別しない処理系同様、この子も変に互換性やしがらみを背負わされたっぽい。 だがこれは実に迷惑な話だ。
>>297 どうでもいいけど俺の直上にあったからレスしとく。
ともかく、「返す値がブール値」という意味でしか使ってないから。
Google の検索結果?それとも Bing?
ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。
「式文という概念がない」というのは、自分にとって VB系の意味不明さを氷解させるポイントだった。 「各個のステートメントが状態遷移上で個別に処理されている」ということが分かれば話は早い。 VB系言語はもう 終 わ っ て い い ところが Linux の sh系シェルは実は似たような処理系ながら死ぬ気配が無い。 OS の違いは別として、決定的な違いがある。 「グールー言語としての魅力に天と地との差がある」 ということだ。
sh系シェルの構文は、処理する側から見るとすごく「酷い」代物だ。 Win のバッチスクリプトと考え方は変わらんからだ。が、 あれは「ものすごく酷い」。 引数すらまともにコマンドに渡せない代物だからだ。 土台がおかしいとその上もいびつになる、という好例である。
ということで、俺は VBScript を3ヶ月で網羅的に会得した。 別個にブログしているが、グダグダここに書いたのはここがまさに便所の落書き所だからだ。 ウンコしながら考えを整理するくらいにしか実際役に立たなかったし。 結論: VB系でプログラミングを覚えた連中はカス。 ム板もマ板もカス。 俺のウンコ食ってろ。
すげぇ、世の中楽しいだろうなぁ。
このレベルで、これだけ自己陶酔出来る奴ってのも珍しいよね ある意味幸せな奴だw
>>299 式に含めてはならないプロシージャを宣言するのがSub
式に含めるべきプロシージャを宣言するのがFunction
>>300 お前は >292 で自分で言ったことを、自分で理解してないんじゃないか?
> ちなみに
>>281 の人間が言う「論理式」という言葉は BASIC 系以外ではまず出てこない。
> C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
> 「ブール式」もしくは「ブール型を返す式」としか言わない。
これがどうして
> ともかく、「返す値がブール値」という意味でしか使ってないから。
こういう解釈になるんだ?
> ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。
同情してくれてありがとう。
それで、「論理式」という単語を使う奴は生き恥をさらしてて、「ブール式」と書き換えるべきだと、
ネットで「論理式」という単語を使っているすべての Web ページに対して主張するわけ?
ネット以外の世界(例えば教科書とか)では、「論理式」が多数派で、「ブール式」と間違えている
のは少数派という主張でいいのね?
amazon で「コンピュータ・IT」カテゴリから "ブール式" と "論理式" で検索してみたところ、
ブール式はわずかに一件。Erlang に感謝しな。"論理式"は 86 件。
もう一回、>292 を読み返してみたらどうだ。
>>301 「グールー言語としての魅力に天と地との差がある」
グールーって、もしかして glue ?
さて今日のお題は「VBScript において、配列はどんな夢をみるか?」である。 結論から言おう。 配列は、原始型でもオブジェクト型でもない中間的な夢を見る。 近年の言語では、配列は鬼っ子である。 型ではないし、とはいえクラスでもない、中間的な何か。 プロトタイプベースな言語では割と自然な形で取り込めなくもないが、クラスベースだとかなり不自然な存在である。 我らが VBScript でも、かなり鬼っ子的扱い(逆に言えば特別扱い)になっている。 VBScript における配列の扱いは三種類あると自分は考える。 1. 純然たる配列 2. 配列しか格納できない縛りのあるバリアント型、に格納されている配列 3. 何でも格納できる上で、配列も格納できるバリアント型、に格納されている配列 何でこう考えるかって? プロシージャの引数や返り値に配列を混ぜてみればこう考えざるを得ないのだ。 1. は古式ゆかしい配列である。プロシージャの引数で ByRef するとプロシージャ内で ReDim もできない。 が、ByVal なら ReDim できる。 これは何故か。 ここから先を読むには、「わっふるわっふる」と書き込んでください。
↓自演の「わっふる」
>>309 VBScriptの場合、配列どころか変数すら、原始型でもオブジェクト型でもないじゃん
>>311 そんなことはない。バリアント型というメタ型だ。
バリアント型に格納できる変数をよくよく追いかけてみると C の構造体だ。
あーさて何の話だったかな。
あぁそう、VBScript における配列の話な。
VBScript における配列は、言語内唯一の「データ構造」として扱われる。
スカラー値しか扱えなかった C言語だが、C89 で構造体をスカラーっぽく扱えるのと似ている。
1.、および 2. は古式ゆかしい BASIC を引きずっている。
しかし VB ライクな使い方はどう考えても 3. だ。
ちなみに VBScript は引数(ByValの場合)も戻り値もバリアント型(に格納できる型)を要求してくる。
(VBScript にはそれ以外の型は無いので普段気にする必要はない。)
そこで行われるのは、まぎれもなく「コピー」なんだよね。それ以外の何者でもない。
由緒正しそうなサイトでも「Function プロシージャは内部で生成した配列を返せない」という、間違った情報が載ってたりする。
Function プロシージャで内部生成した配列を返しても問題ない。
ただし、巨大な配列を返すと酷い目に遭う。
よって、「巨大な配列を受け渡ししたい場合は ByRef 推奨。ただしこのやり方はイケてなさが漂う」のである。
Dictionary オブジェクトがクソみたいに遅い。Please die now! 的遅さ。
再帰もクソ遅いし、やっぱこの手には向いてない。この言語。
ttp://projecteuler.net/problem=14 最初にブルートフォースで解いて 4分。
探索済みシーケンスを Dictionary に放り込み&再帰で書いたら Corei5 で 40分。
再帰を解いてループに直して 20分。
業を煮やしてブルートフォースに直して 4分。
答えを投稿して他の回答者のコメントを見たら
「ハッシュテーブルを使って高速化したよ」
C/C++ 使いならそうなるよなぁ。
ちなみに巨大配列を用意してハッシュテーブルの代わりに使う、は典型的 NG。
.NET に同様のクラスがあるのは既知である。
しかし縛りをかけているので自分は使わない。
XP が死亡したら .NET クラスを堂々と使うけどな。PowerShell から。
最近触る時間が無い。 OLEオートメーションはある程度見捨てたので、あとはどんだけ言語としての面白さを楽しめるか、だ。 さてどこまでが限界やら。
VBScriptの深淵を見つめたいなら、Classを極めないと駄目だろうな...
>>316 ありがとう。それは薄々気づいていたところだ。
Project Euler の問題が段々難しくなってきていて、BigInteger クラスを自前で実装しないとこの先キツいかなと思っていたところだ。
しかし心配はしていない。
名前のスコープが
1. プロシージャ
2. ファイル
の二段階しかいないC言語方式!!
幸い GetRef があるので色々と面白いこともできそうだ…。
VBScript のクラスはかなり C の構造体に近い扱いでイケると思っている。
まぁ、来月からですかな。
318 :
デフォルトの名無しさん :2012/09/19(水) 13:23:43.04
質問宜しいでしょうか。
動画のエンコードにAviUtl Controlという物を使い、それに
標準でついていたvbsを使用して録画後自動処理を行なっ
ているのですが、こちらの記述を フォルダ全体を対象に
処理するのではなく、読み込んだ動画 ファイル一つだけを
対象に処理させる方法はないでしょうか?
理由としては、1つ目のエンコード処理が終わっときに2つ目
の動画ファイルが録画中だと、エラーを吐いて処理が止まって
しまうからです。
ttp://www.dotup.org/uploda/www.dotup.org3437483.txt 『' キャプチャしたファイルがあるフォルダが空になるまで繰り返す』
『' SOURCE_FOLDER で一番古いファイルを探す』
といった辺りの文を削除して実行した所、エラーが出て止まっていましました。
行:78
文字:1
エラー:ステートメントがありません。
コード:800A0400
ソース:Microsoft VBScript コンパイルエラー
正確にはどう削除するのが正解でしょうか、教えてください。
>>318 While - WendをDo While - Loopに替えてExit Doで抜けちゃったらいいよ
' キャプチャしたファイルがあるフォルダが空になるまで繰り返す
Do While Fs.GetFolder(SOURCE_FOLDER).Files.Count > 0
……
' エンコードが終わったファイルを移動する
Call Fs.MoveFile(input, MOVE_FOLDER)
Exit Do
Loop
>>313 Dictionaryを変に使ったんじゃねえの?そんな時間かかるわけないだろ。
>>319 ありがとうございます。無事希望通りの動作を実行できました。
322 :
デフォルトの名無しさん :2012/09/19(水) 21:36:48.81
すみません、重ねて質問させて下さい。
>>318 の書式で、処理するフォルダに入っているサブフォルダ内
のファイルも処理対象にする方法はありませんでしょうか。
' キャプチャしたファイルがあるフォルダ(最後の文字は"\")
Const SOURCE_FOLDER = "F:\video\"
デフォルトだと、上記の通り一個の指定したフォルダしか対象にできません。
325 :
デフォルトの名無しさん :2012/09/24(月) 07:53:48.89
>>324 わかった、俺のセロリンさんが全力出して50分かかった。
328 :
デフォルトの名無しさん :2012/10/09(火) 22:53:41.23
JScriptに対するアドバンテージって何よ?
鯖管がwin鯖だけで済むはずないんだから、SSJSを使えと思うんだけど どうすれば世界からVBScriptを抹消できるでしょうか?
>>329 ・参照渡しができる
・ローカル変数を宣言せずに使用できる
・巨大な配列の生成速度が速い
・参照カウントでオブジェクトを破棄しちゃうのでCOMと相性がいい
・無限ループの構文がきれい
・配列を使うときに[]を書かなくていい
・;を書かなくていい
・クラスを作成できる
>>331 どれも大した長所じゃなくね?
むしろ、ひとつの言語であれもこれも弄れた方が嬉しいのに
336 :
桃白白 :2012/11/15(木) 19:53:58.92
(゚д゚ )・・・* (:) 殺(:) ミミミ <(::)ヽ二ゝ ミミミミミ / ̄ヽ二二二二ーー、 ヽ_ノ三三二二ニニ′三二ニ ブイ〜ン どうも桃白白です。バイナリーサーチツリーをVisitorパターンを使って実装したいんです。 ノードの追加と削除をVisitorに丸投げしたいんです。エンタープライズランゲージVBScriptで できないことはないと思うんです。どう実装すればいいですか?教えてください。 桃白白困っています。教えてください、お願いします。
337 :
桃白白 :2012/11/27(火) 14:34:12.00
338 :
デフォルトの名無しさん :2012/11/27(火) 14:40:51.17
&nbsp;
339 :
桃白白 :2012/11/28(水) 06:38:32.42
>>336 できたわ!
CTANとかCPANとかあるじゃん?VBScriptにもそういうのがあればいいと思うんだよね。
VBSAN、超いい名前じゃん。もしあれば桃白白もコード提供できると思うんだよ。
桃白白じつはバブルソートには自信があって、エリートバブリストなんだよね。
バブりたくなったらいつでも呼んで。桃白白バブっちゃうからさ。
バブルソートなんてくだらないものに自信を持たれてもなぁ。
341 :
桃白白 :2012/11/28(水) 18:28:13.46
ラッキーソートこそ最速のアルゴリズム
>>341 うん、下らない。交換回数で選択ソートに、比較回数で挿入ソートに劣る。
基礎として学ぶこと、改良すること自体は悪くないけれど、>341はこれといった改良も見られない。
悔しかったらせめてコムソート位ものにしてから言ってくれ。
344 :
桃白白 :2012/11/29(木) 18:54:49.23
>>343 バブルソートプロフェッショナル桃白白がくしで髪をととのえたら超魅力的ってことでしょ。
つまりこういうことでしょ。
Friendpaste - combsort
friendpaste.com/3srgnFOCGUoBtcI1UyT65m
まともなGUIを作れない?
作れるよ。GUI系のCOM使えばね。 逆にCOM使わなかったら、ファイルの読み書きも出来ないし ネットアクセスも出来ないしで、GUIに限らずまともな処理というか 大した処理は出来ない ただ、ファイル読み書きとかのCOMは標準で入っていて 逆にGUIを自由に作れるCOMは標準では入ってないし かなりマイナーな部類だけどね まあ、InputBoxの入力欄をドロップダウンリスト(コンボボックス)に したいという程度ならまだしも、まともなGUI作ろうとしたら、フリーの GUIアプリ開発環境使った方が遙かに手軽に作れるし
>InputBoxの入力欄をドロップダウンリスト(コンボボックス)に ゴクリ
あれをこうしてああやってWin32API使えるようにしてSendMessageで えいっ ですの?
HTA最悪
352 :
124 :2012/12/06(木) 22:07:26.88
昔IEで、なんちゃってコンボボックス作ったことあるよ。 見た目、使い勝手で特に問題なかった。
VBSでちょっと凝ったUIを提供しようと思ったら中でIE生成だよな。 本格的なアプリケーションを作りたいならHTAだな。HTAはなかなか頭いい。
VBSの実行中にIEで実行中ダイアログ出して、そのIEが閉じられたら 実行も中断するようにしてたんだけど、処理実行中にSleep仕込まないと イベント取れない(っていうかスクリプト終了まで待たされる)のね。 今までどこかしらに待ちを含んでたみたいでさっぱり気づかなんだ。
イラつく文章だな
汎用的な小さなプロシージャをファイルにまとめてる?common.vbsとかで。 頂戴!>n<
357 :
桃白白 :2012/12/14(金) 15:50:54.20
>>356 じゃあ桃白白があ・げ・る。
Sub Say(o)
Call WScript.StdOut.WriteLine(o)
End Sub
vbsではなくwscにまとめてる 作るのはvbsより多少手間がかかるが 扱いやすさは断然上なのでいろんなところで頻繁に使う物はwsc 長いスクリプトをモジュール分けするような場合はvbsでインクルードするけどね
>>358 wscってHTMLタグみたいなのを記述して
このファイルはこういうプロシージャとかこんなプロsryて明示するやつだっけ(ggrks)
扱い易いならちょっと興味あるわサンクス
俺にうpろだを紹介しようかどうしようか。ゴクリ
x 俺に o お礼に
>>358 wscを調べてみた...Classステートメント涙目だなw
Classを使いこなせてない奴らしい意見だなw wscをガンガン使ってる上でClassも手放せないほど便利で 全然涙目状態にはならないんだがなw
classもwscも使わんなあ
364 :
桃白白 :2012/12/24(月) 21:27:26.57
>>363 マジで〜? グローバルな関数ごっそりな感じ?
まあそっちのほうがわかりやすいこともあるよな。
まあまともなプログラム言語もやってる奴は 効率化や再利用性を考えるからクラスやインクルードファイルやwscを活用するが VBSしか使わないような人は動けばOKで、より使いやすくしていこうって発想は無いことが多いからな
つーか、VBSだからこそ、再利用性を確保しなければならないと思うが...
367 :
桃白白 :2012/12/25(火) 10:06:13.21
お前らおはよおおお、そしてクリスマスおめでとおおお /⌒\ ○⌒):::::::\ ノ::::::::::::::\ ⊂ニニニニ⊃ | ノ ヽ / ● ● | | ( _●_) ミ 彡、 |∪| 、`\ / __ ヽノ /´> ) (___) / (_/ | / | /\ \ | / ) ) ∪ ( \ \_)
368 :
デフォルトの名無しさん :2012/12/26(水) 23:47:19.73
どこで質問したか忘れてしまったので再カキコ Windows.Formsを呼び出せるCOMってないですかえ? なんでCollectioはCOMの相互呼び出しできるのに Formsはできないんだよ
つか使い捨てのちょっとしたスクリプトぐらいにしかVBS使わないんだが
PowerShellの実行ポリシー無ければVBSなんか使わないんだが。 さすがにキッティング屋なんかは勝手にポリシー変えられないだろうな。
使い捨てるから、真面目に組む必要があるんじゃん 同じ人物の発想なんて、基本的に対して変わらんじゃないか 所謂、オブジェクト指向の世界だろ
>>371 起動オプションで実行ポリシー設定すればいいんでない?
>>366 関数レベルで管理してる。
インクルードだとファイル数が増えて配布する際に色々と面倒だし。
# JARみたいなのが作れると楽なのに
サーバに置いておくとクロスサイトスクリプティングだ何だと言われるし。
当然、保守性は下がるので、
バージョン管理ソフトだけでなく grep & WinMergeとか無いとやっていけない。
375 :
デフォルトの名無しさん :2013/01/19(土) 07:04:19.34
あれ?format関数って使えないんだ。メンドクセ
使えないこともないけどね 使えるようにするのと、使わないで処理するのと どっちが面倒かで各自が決めれば良いこと
もうぶっちゃけhtaで作った方が
378 :
桃白白 :2013/02/17(日) 08:01:16.98
htaで2chブラウザって作れないのかな。お前ら技術力あるんだからできるだろ。 スレをソートするところで桃白白が持つバブルソーティングインプリメンテーションも活用できると 思うんだよね。誰か作ってよ。
作れるけど、作るメリットが無いよ HTA+VBSで忍法帖対応書き込みできるブラウザ作ったら その丸見えのソースから書き込み部分を抜粋して厨房でも荒らしスクリプトを作れるという 荒らしを目論む厨房にとってのメリットはあるかもしれないが あと板によってはスレッド数が数百にもなるのに、バブルソートみたいに簡単だけど遅いアルゴリズムは使わないってw というかバブルソートごときで独自開発した革新的なアルゴリズムを持っているかのような書きっぷりは何なの?
380 :
桃白白 :2013/02/17(日) 09:31:56.51
>>379 メリットはVBScriptがより多くの人に使われるようになることだよ。
うまくいけばVBScriptの普及に貢献したってことでマイクロソフトから表彰される
かもしれないよ。このスレのみなさんと桃白白さんがVBScriptの普及に貢献してくださいました
本当にありがとうございますと言われるかもしれないよ。製品がもらえるかもしれないし
マイクロソフトから認められることがうれしいしすごいことじゃん。
だから名誉を得られるっていうメリットがある。
ごときってなめたようなこといってるけどいっとくけど桃白白はバブルソートを
そらで実装できるレベルにあるからね。本とか見ないでそらで実装できるからね。
もう桃白白が開発したようなものだよ。
過去に2度MicrosoftMVPを受賞した経験者として言わせて貰えば 固有掲示板用じゃどんなに高機能にしても無理で、もっと汎用性が高く 革新的なモノじゃないと評価されないし、荒らしにより多く使われるようになっても嬉しくない それでもやりたければ、他人を当てにせず自力でやったらいいじゃん 自力で出来ないなら、自分の器以上のものを求めようとするな それでも求めたければ自分の器を磨け
つ PowerShell
>そらで実装できるレベルにあるからね。本とか見ないでそらで実装できるからね。 >もう桃白白が開発したようなものだよ。 まるで、ロミオとジュリエットを諳んじることができるからロミオとジュリエットは私が書いたと言わんばかりの馬鹿だな。
384 :
デフォルトの名無しさん :2013/02/17(日) 15:41:25.13
>もう桃白白が開発したようなものだよ。 最後はちょっとだけ笑ったかな 今後はもう少しコンパクトにしてくれると引き続き読むけど 毎回長いようならスルーすることになるわ
385 :
桃白白 :2013/02/17(日) 22:00:58.50
>>381 (; ・`д・´)へーもう受賞してるんだうける・・・
>>382 PowerShellのGuiてWindows Forms?桃白白は.NETに対してはわりと
敵愾心をもってるからPowerShellはあまりあれだな。難しそうだし。
>>383 まさにロミジュリをそらでいえるのはシェイクスピアくらいでしょ。
じゃあ桃白白がVBScript界のシェイクスピアということでいいじゃん。
>>384 ぐぬぬ・・・
386 :
デフォルトの名無しさん :2013/02/17(日) 23:58:20.27
>そらで実装できるレベルにあるからね。 ソラって普通?サラって言うんだけど・・・
387 :
桃白白 :2013/02/18(月) 00:54:39.40
388 :
デフォルトの名無しさん :2013/02/18(月) 13:07:46.09
>>387 Twitterのユーザー検索で「桃白白」多すぎワロタ
全部お前か?
389 :
デフォルトの名無しさん :2013/02/18(月) 17:20:37.13
>>381 ってかそんなヤツ普通に特定できるだろwこの馬鹿
390 :
桃白白 :2013/02/19(火) 07:24:35.00
>>388 桃白白はTwitterやってないから全部違う。みんなTwitterやってんのかな。
桃白白使い方わかんないからさ。つぶやきたいことがあったらここに書く。
それが桃白白の誇り。
つまらねぇ誇りだな。埃の間違いじゃね?w
392 :
桃白白 :2013/02/21(木) 22:33:35.00
みなさんこんばんわ。桃白白のお時間です。 VBScriptにはVBAで使えるCollectionオブジェクトがないんだよ。 これは由々しき事態だよ。この事態を打開するためにスキップリストが実装されるべきだよ。 VBAのCollectionを凌駕するにはそれしか道は残されてないよ。マイクロソフトから認められた ガチのエンジニアの人もいるみたいだしやってできないことはないと思うんだよね。みんな作ってよ。
Dictionaryじゃ駄目なんでしゅか?VBA. Collectionは何が出来るんでしゅか?
394 :
桃白白 :2013/02/21(木) 23:13:28.91
>>393 DictionaryはVBScriptでも使えるからダメだ。DictionaryがCollectionだというのであれば
Collectionが存在する意味がないわけだからCollectionをDictionaryに置き換える
のはさながら桃太郎がいなかったから浦島太郎に鬼を退治しておくれといってなかばむりやりに
浦島太郎を送りだすようなものだ。しかも浦島太郎は竜宮城から帰ったあとの浦島太郎だからね
完全におじいちゃんだからね。蛮勇をとどろかす旅路どころかもはや鬼ヶ島への島流しだろ。
イヌサルキジは介護するためにおともするわけじゃないんだよ。
スベったな桃白白 15点
要するにCollectionの特異性、優位性は何でしゅか?
397 :
桃白白 :2013/02/22(金) 00:33:40.65
>>396 桃白白はスキップリストをご所望なの。必要なのはその情報だけでじゅうぶんでしょうが。
Collectionについて知りたいのなら自分で調べなさいよ。聞いたらなんでも答えてもらえる
と思ったら大間違いよ。甘ったれんじゃないわよ。スキップリストをお作りになったらいいじゃないのよ。
> 聞いたらなんでも答えてもらえる > と思ったら大間違いよ。 紙に描いてモニターの横にでも貼っておけ>桃白白
399 :
桃白白 :2013/02/22(金) 05:45:52.71
>>398 やだ。モニターがベタベタになるじゃん。
ところでさ、VBScriptって継承ができないじゃん。どうしてる?
プライベート変数に親のインスタンスを持っておいて委譲したりしてる?
みんなどう書いてんだろ。
>>399 継承は出来ないが、多態性は持っているので気にした事が無い
桃白白って継承解るの? 具体的に言うなら、継承使える言語は何を使っているの? それとも継承なんて使ったこと無いし良く知りもしないけど なんか便利そうな機能でVBSでは使えないって言うからシッタカぶってみただけ?
402 :
桃白白 :2013/02/23(土) 13:09:38.55
>>401 もうVBScriptの話より桃白白の話になってるじゃん。別にいいけどさ。
四六時中桃白白のことを考えてくれちゃったらいいけどさ。桃白白に
恋してくれちゃったらいいけどさ。お前は桃白白は継承わかると思う?
それとも桃白白は継承わからないと思う?お前が思う桃白白ってどんなの?
コテ名乗ってるからコテで名指しただけで 単に「質問者は〜」と質問者の理解度を確認してるだけの話じゃん
404 :
桃白白 :2013/02/23(土) 13:53:05.07
>>403 気休めでもいいから桃白白のこと好きっていってくれたらいいじゃん。
これじゃあ桃白白ピエロじゃん。勝手に勘違いしただけのピエロじゃん。
むしろ桃白白のほうがお前に一方的に気があるみたいじゃん。
>>404 大好きだよ
桃白白は俺にとって超お気に入り
…の玩具
406 :
桃白白 :2013/02/23(土) 15:24:01.42
>>400 共通の処理をくくりたいときってあるじゃん?
別々のクラスにそれぞれ書いてたら修正するときめんどうだしさ、
そういうときBaseクラスを用意して処理を委譲したりしない?
ところでさ、桃白白いまランダムで悩んでるんだけどスキップリストで
ランダムな数を使うらしいんだよね。0が出る確率は1/2で、1が出る確率は1/4で、
31が出る確率は1/2^32で、0から31までの乱数をえたいの。桃白白困ってるの。教えて。
0が1/2で50%、 1が1/4で25%、 2が1/8で12.5% 3と4が1/16でそれぞれ6.25% なら 1〜分母の最大値(16)の範囲の整数乱数返して(0〜15でもいいが) 1,2,3,4,5,6,7,8なら0、(8/16=1/2=50%) 9,10,11,12なら1、(4/16=1/4=25%) 13,14なら2、、(2/16=1/8=12.5%) 15なら3、16なら4、(1/16=6.25%) とすれば、狙った確率で出るようになるけど、 こういうのは変動する規則数であって乱数とは呼ばないよ 乱数がいくつの時に、どの規則数を返すかは算術演算でやってもいいけど 32パターンくらいならSelect Caseでもいいんじゃね? というか分数と比率を習う小学4,5年生程度の頭があれば この程度の算出方法くらい簡単に思いつくと思うんだけど、なんでこんなので悩んでるの?
408 :
桃白白 :2013/02/23(土) 16:37:30.28
409 :
桃白白 :2013/02/23(土) 17:05:52.12
>>407 よく考えたら桃白白がやりたいのは違ってた。すまん。
0が1/2
1が1/4
2が1/8
3が1/16
4が1/32
5が1/64
……
30が1/2147483648
というふうに出したいの。
問題ないじゃん
411 :
桃白白 :2013/02/23(土) 17:47:21.93
>>410 コード教えてほしいな〜桃白白コード教えてほしいな〜
コード教えてもらえたら桃白白超うれしいな〜
集計しやすいVBAで確認してみた Const MaxValue = 5 Const Counter = 10000 出現回数 出現率 目標出現率 0 5168 51.6%. 50%. . . 1/2 1 2504 25.0%. 25%. . . 1/4 2 1240 12.4%. 12.5%. 1/8 3 . 619 . 6.19% . 6.25% 1/16 4 . 312 . 3.12% . 3.12% 1/32 5 . 157 . 1.57% . 1.56% 1/64 ---------------------- Const MaxValue = 9 Const Counter = 100000 出現回数 出現率 目標出現率 0 50249 50.2%. . 50%. . . . 1/2 1 24837 24.8%. . 25%. . . . 1/4 2 12552 12.5%. . 12.5%. . 1/8 3 . 6185 . 6.18%. . 6.25%. 1/16 4 . 3170 . 3.17%. . 3.12%. 1/32 5 . 1614 . 1.61%. . 1.56%. 1/64 6 . . 753 . 0.753% . 0.781% 1/128 7 . . 358 . 0.358% . 0.390% 1/256 8 . . 193 . 0.193% . 0.195% 1/512 9 . . . 89 . 0.089% . 0.097% 1/1024
413 :
桃白白 :2013/02/24(日) 07:21:10.74
>>412 承知した。そのコード桃白白がもらいうける。
どうぞどうぞ アルゴリズムを作り上げるところでコードは9割以上完成してるので その9割以上まで完成したコード、勝手に貰っていって勝手に使ってくださいな
415 :
桃白白 :2013/02/24(日) 08:20:30.43
>>414 なにいってんのかよくわかんないけど、コード貼ってよ。
?
VBAのRndは精度悪いから使い物にならないぞ。 Sub test() Dim val As Double Dim count(31) As Double Dim r As Double Rnd -1 Randomize 999 Dim i As Long For i = 0 To 2 ^ 31 - 1 r = Rnd() If r = 0 Then val = 31 Else val = Fix(-Log(r) / Log(2)) End If count(val) = count(val) + 1 Next '最後オーバーフローでエラー Stop End Sub
418 :
417 :2013/02/24(日) 11:44:12.65
Num結果理論値差 010737416961073741824-128 15368709125368709120 2268435584268435456128 3134217600134217728-128 467108864671088640 53355456033554432128 616777216167772160 783884808388608-128 8419430441943040 9209715220971520 10104857610485760 11524416524288128 122621442621440 131310721310720 1465536655360 153264032768-128 1616384163840
419 :
417 :2013/02/24(日) 11:46:16.79
すまん、tabが消えた Num 結果 理論値 差 0 1073741696 1073741824 -128 1 536870912 536870912 0 2 268435584 268435456 128 3 134217600 134217728 -128 4 67108864 67108864 0 5 33554560 33554432 128 6 16777216 16777216 0 7 8388480 8388608 -128 8 4194304 4194304 0 9 2097152 2097152 0 10 1048576 1048576 0 11 524416 524288 128 12 262144 262144 0 13 131072 131072 0 14 65536 65536 0 15 32640 32768 -128 16 16384 16384 0
420 :
417 :2013/02/24(日) 11:47:08.31
Num 結果 理論値 差 17 8192 8192 0 18 4096 4096 0 19 2048 2048 0 20 1024 1024 0 21 512 512 0 22 256 256 0 23 256 128 128 24 0 64 -64 25 0 32 -32 26 0 16 -16 27 0 8 -8 28 0 4 -4 29 0 2 -2 30 0 1 -1 31 128 0.5 127.5
酷ぇw
422 :
桃白白 :2013/02/25(月) 01:12:00.83
>>417 RndはSingle型の値を返して、Single型の仮数部の最大値は(2 ^ 24) - 1で、
0 - 16777215
の値を
0 - 2147483647
の範囲に割り振っちゃったら多少の誤差は仕方がないと思うの。桃白白そう思うの。ドンマイ。
423 :
桃白白 :2013/02/25(月) 06:18:55.37
みんなちょっと聞いて。VBAのCollectionの連想配列機能は質が良すぎるの。 Dictionaryでもかなわないレベルだわ。桃白白てっきり線形探索でも やってるんだろうと思ってたわ。どん引きだわ。 Collection 65536 1.08 131072 2.32 262144 4.949 524288 10.494 1048576 21.871 Dictionary 65536 0.34 131072 1.191 262144 4.43 524288 18.58 1048576 90.939
>>423 >てっきり線形探索でもやってるんだろうと思ってたわ
その結果をみると、Collectionは件数と時間がほぼ比例してる
つまり、Collectionは線形探索だと予想されるわけだが
お前、線形探索って理解してるのか?
425 :
桃白白 :2013/02/25(月) 19:49:22.57
>>424 Collectionが線形探索だとすると線形探索より遅いDictionaryは
どんな探索方法なんだろうかと思わないでもないんだけれども、
自然数の和の公式n(n+1)/2ってのがあるっしょ。nが2倍になれば
和は約4倍になるっしょ。1 〜 Nの値を取得するのにかかった時間を
桃白白さんは出力されたんだと考えれば数字と桃白白の言葉の整合性
はとれるっしょ。じゃあそういうことでいいんじゃないでしょうか。
まるっきり解ってないのかよw
427 :
デフォルトの名無しさん :2013/02/25(月) 22:54:24.80
桃白白さん、僕と結婚して下さい。
428 :
桃白白 :2013/03/01(金) 19:35:35.23
これってどうしてできないの?エラーが投げられちゃうの。 桃白白困ってるの。教えてください。お願いします。 Microsoft VBScript 実行時エラー: 型が一致しません。: 'TestProperty' Call Test() Sub Test() Dim o Set o = New TestClass Call o.TestMethod() End Sub Class TestClass Sub TestMethod() Set TestProperty(0) = New TestClass End Sub Property Set TestProperty(ByVal index, ByVal value) Call WScript.StdOut.WriteLine("TestProperty") End Property End Class
Set Me.TestProperty(0) = New TestClass
430 :
桃白白 :2013/03/02(土) 09:28:54.07
解す必要はない、ただ仕様に従えば良いだけ それが嫌なら自分で新規言語作れ
432 :
桃白白 :2013/03/02(土) 10:21:34.27
>>431 それはそうだろうけど、なんでそういう仕様なのかわかる?
桃白白はそれを知りたいの。うちのしきたりに従えないんだったら
でてけとどなりつけるいじわるご主人さまにつかえる超絶かわいい
メイドさんの気分だよ。
なら、ご主人様(Microsoft)にお伺いを立てろ 開発に関わってない奴が、仕様の内容ならまだしも そういう仕様にした理由まで知るわけ無いだろw
434 :
桃白白 :2013/03/02(土) 11:28:14.19
>>433 仕様には明記されてるの?もしあるならそれ教えて。
そっから桃白白が推理してみるから。
推理したいなら邪魔はしないので勝手にどうぞ
436 :
桃白白 :2013/03/02(土) 14:00:42.43
>>435 仕様に明記されてるんだったらそれを教えてほしいなって思ったの。
勝手にどうぞといわれてもそれがどこにあるかわからないから桃白白は
聞いてるわけで、桃白白はいまちょっとまってよというお気持ちでいっぱいです。
白白少し黙ってなさい
438 :
桃白白 :2013/03/02(土) 18:01:56.68
>>437 いやだ、桃白白はぜったいに黙らない。
・・・・・・。
439 :
桃白白 :2013/03/05(火) 14:52:26.52
ドシーン ドシーン パオーン / ̄ ̄ ̄ ̄ ̄\ | ・ U | | |ι |つ U||  ̄ ̄ ||  ̄  ̄ みんな聞いて。桃白白、トライを実装したいんだけど難しすぎてできないの。 手取り足取り教えてくれる人いない?
Try-Catch-Finally? その話題、 少し前VB6スレですごく荒れてなかった? だったら論破厨が大暴れするからやめれ。
441 :
桃白白 :2013/03/05(火) 15:08:44.49
>>440 うんにゃ、データ構造のトライのほう。Trie。
442 :
デフォルトの名無しさん :2013/03/05(火) 22:19:44.70
桃白白さん、僕と結婚して下さい。
443 :
桃白白 :2013/03/14(木) 00:22:20.62
∩___∩ | ノ ヽ _ / ● ● | //ヽ | ( _●_)_ / / | 彡、 |∪|r'` { 〔 ̄() < みなさんこんばんは、ホワイトデーおめでとう / __. ヽノ|.__ { ~~〕 (___) Е) \\_/ | /|~|  ̄ | /\ \~ | / ) ) ∪ ( \ \_)
え?円周率の日ですよ
>○< 桃白白にキャンディあげる
タオパイパイはデータ構造とかをちまちま実装して勉強してる真面目系初心者なんだろうけど
わかったふりしてレスされても、前提がデタラメだらけで混乱するんだよ
だがそれがわかってしまえば無害なんだけどね。
むしろ
>>431 とか、実際周りにいたらちょっと嫌な感じなのはこっちだw
>>428 >>429 >>430 vbsでClassめったに書かないからやってみた
・クラスブロックにおける自身のメンバへのアクセス時のMeの有無
Property Set
Publicプロパテイを呼ぶときはMeをつける。それ以外は全部エラー
Property Let と Get
Privateプロパティを呼ぶときにMeつけるとエラー。それ以外はどっちでも可
Fucntion と Sub
Meをつけるとエラー
変数
Private変数はMeつけるとエラー。Public変数はどっちでも可
けっきょくMeはつけるの?つけないの?
448 :
桃白白 :2013/04/03(水) 12:45:10.54
>>447 思うに、Me.は自身のインスタンスを表す特別な修飾子ではなくて
単純な自身のインスタンスへの参照なんだろうな
>Publicプロパテイを呼ぶときはMeをつける。それ以外は全部エラー
プロパティは実質関数呼びだしだから、自身のプロパティへの代入はできない
インスタンス参照が必要だからMe.が無いとエラー
>Privateプロパティを呼ぶときにMeつけるとエラー
PrivateなプロパティにMe.をつけてると、Me.の参照してるインスタンスのPrivateなエリアなんだからアクセスできない
>Fucntion と Sub
>Meをつけるとエラー
これがよくわからんな。Privateなファンクション呼んだんじゃないのか?
450 :
桃白白 :2013/04/03(水) 16:31:28.21
>>447 >>449 桃白白ちょっと聞いてほしいことがあるの。
Setプロパティに値をセットするときにSetステートメントを
使用しなかったらMeを付けずに呼び出せるみたいなの。試してみて。
Setステートメントは.演算子と一緒に使うものですよーみたいな制約がありそうじゃない?
>>450 何言ってるかわからん
ちょっとコード書いてみろ
期待してた動作ではないが、これでも一応通るな。 Dim TestProperty(1) Set TestProperty(0) = New TestClass
453 :
桃白白 :2013/04/05(金) 20:40:24.23
>>453 たしかにおかしな動作するな
おかしなのは2点
引数つきProperty Setがちゃんと呼べない
引数つきPropertyにSetなしで(Letで)代入してProperty Setが呼ばれる
試しにProperty SetとProperty Let作るとちゃんとProperty Letが呼ばれてる
Property Letが無いと勝手にProperty Set呼ぶのか?エラーにならんとダメなはずだが
VBAでは想定通りに動くっぽいからVBScriptのバグじゃね?
マイクロソフトに問い合わせてみたら?
455 :
桃白白 :2013/04/06(土) 18:33:45.19
>>454 でしょ、おかしいっしょ。
えーでも桃白白マイクロソフトに知り合いいないしさ。
サポートインシデントも持ってないしさ。やましいところもあるしさ。
桃白白がマイクロソフトに問い合わせるのは無理だよ。
このスレにはMVPの人とかもいるみたいだしマイクロソフトの中の人と
知り合いの人もいるんじゃない?MVPの人とかだったらマイクロソフトも
無下にできないと思うんだよね。ちょとーどういうことなのよーて言ってもらえないかな。
桃白白からのお願いです。
2*2*2*2 は 2の4乗 で 2^4 と記述する 累乗じゃん。 2+3+4+5 は 階乗だっけ?どうやって記述するの? あと、2+4+6+8 (for i = 2 to 8 step 2 sum = sum + i)みたいなのは 階乗じゃなくてなんていう?これも階乗って言っていいんだっけ 簡単な記述の方法ってある?VBSあんま関係なくてごめん
階乗は5なら1*2*3*4*5 2+3+4+5や2+4+6+8には特別な算術名称は無いと思う 故にそれを計算する関数も無い でも別にForでいいじゃん 一度書いてしまえば使う上では一緒だし、自作関数にすれば使い回せるし (2 + n) * (n / 2 / 2)とか無理して書くよりForの方が解りやすいし
458 :
デフォルトの名無しさん :2013/04/08(月) 21:37:08.62
>>456 「等差数列の和」としか言いようがないな
459 :
桃白白 :2013/04/10(水) 10:10:58.11
>>456 桃白白がクールなコードを教えてあげちゃう。
Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep)
If lngStart <= lngEnd Then
Sum = lngStart + Sum(lngStart + lngStep, lngEnd, lngStep)
Else
Sum = 0
End If
End Function
>>459 再帰はクールだけど、スタックオーバーフローで再起不能
桃白白 = Sum( 0, 1, -1 )
Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep) lngA = lngEnd - lngStart lngB = lngEnd - ( lngStart + lngStep ) If lngA <= lngB Then Sum = "桃白白" Exit Function End If If lngStart <= lngEnd Then Sum = lngStart + Sum(lngStart + lngStep, lngEnd, lngStep) Else Sum = 0 End If End Function
末尾再帰にしてみたが最適化はやってくれないな .NETでコンパイルして、64bitCLRで動かせば最適化してくれるはず Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep, ByVal lngSum) If lngStart <= lngEnd Then Sum = SumT(lngStart + lngStep, lngEnd, lngStep, lngSum + lngStart) Else Sum = lngSum End If End Function
464 :
桃白白 :2013/04/12(金) 11:10:26.00
∩___∩ | ノ ヽ / ● ● | みんなー!! | ( _●_) ミ 彡、 |∪| 、`\ / __ ヽノ /´> ) (___) / (_/ | / | /\ \ | / ) ) ∪ ( \ \_) 関数で複数の値を返したいときってみんなどうしてる? 戻り値用のオブジェクト作る? 参照渡し使っちゃう? どうしてる? 桃白白どうしようか悩んでるの。みんなどうやってるのか教えて。
;' ':;,, ,;'':;, ;' ':;,.,.,.,.,.,,,;' ';, ,:' : :、 ,:' \ ,,. 、./ ノ( ::::::::', :' ● ● ⌒ :::::i. 場合によるだろ i ''' (_人_) '''' * :::::i 初心者かお前は : {+ + +} :::::i 具体的なケースを書けよ `:,、  ̄ ̄ ::::::::: / ,:' : ::::::::::::`:、 ,:' : : ::::::::::`:、
466 :
桃白白 :2013/04/12(金) 12:05:00.89
>>465 そんな怒んないでよ。場合によるって参照渡し使ったりオブジェクト作ったり
混在させちゃうの? じゃあどういう場合に参照渡し使うの? みんなが
どういうときにどういうやり方をするのか桃白白教えてほしいな。
それぞれメリットデメリットがあるので どのメリットを取りたいか、どのデメリットを避けたいかで使い分けるだけの話だろ 因みに、それぞれにどういうメリットとデメリットがあるかはググれ
468 :
桃白白 :2013/04/12(金) 14:26:38.30
>>467 Googleさんの意見が聞きたいならGoogleさんに聞くよ。
桃白白はいまこのスレにいるみんなの意見を聞きたいの。
みんなの経験にもとづく苦労話やスーパーハッピーストーリーに桃白白はお耳を傾けたいの。
桃白白のかわいらしいお耳はそのためにあるものなの。じゃましないでちょうだい。
Googleに聞くのは意見じゃなくて仕様、特徴 「どのメリットを取りたいか、どのデメリットを避けたいかで使い分ける」が意見 以上
VBScriptをクラスベースでバリバリ使うって人はまた違った意見だろうが VBScriptなら返値クラス作るのはないな まあまずは複数値もどす設計がVBScriptで妥当か検証する 参照渡しするぐらいならグローバルな変数使う方が多いんじゃないかなぁ それで見通せないようなサイズのスクリプトは書いたことないし書く気もないから
VBScriptの場合、変数は全部バリアントなんだし、 多値関数の戻値は配列でよくない? function foo(i) foo = array(1.5, 2,"hello", i*2) end function
472 :
桃白白 :2013/04/12(金) 17:30:00.40
>>470 参照渡しは基本的に使わないタイプ?参照渡しは変数が影響を受ける範囲が
直感的にわかりづらいところがあるから、その点グローバル変数を使う方が
わかりやすいかもしれないな。そういうこと?そういうことじゃないのかもしれないけれども、
グローバル変数使っちゃう派ね。
>>471 そのやり方スタイリッシュっすよね。PythonやHaskellといった昨今人気のある言語で複数の値を返すときに
使われるタプルみたい。
昨今?だいぶ前だろ・・・ Objective-Cをsublime textで書くのが最もナウいらしいよ オワコンのvbsなんてやめてpowershellでもやろうぜ また5年後にはじめるのか?
474 :
桃白白 :2013/04/14(日) 20:02:53.81
>>473 PowerShell使ってる?難しそうなんだよね。桃白白全力で及び腰。
VBScriptこそが最高の言語だよ。
powershellスレなくなったかな? あれはスクリプト言語なのか、管理ツールなのか はっきりしないのが流行らない原因のような気がする。 利用者もシステム管理者なのかプログラマなのかも不明だし。
ちゃんとあるけど?現在Part4 というわけでPowerShellの話はPowerShellスレで
windows板にあった、そっち行ってくる
リファレンスを見ずに書けるほど簡単ならいいのだが(まあ自分の勉強不足なんだけど)。 cmd.exeもCreateObjectとかそれを扱えるだけの表現力があればいいんだが、 どうにも帯に短し襷に長しで。
479 :
桃白白 :2013/04/22(月) 11:51:38.40
みんな聞いて。桃白白教えてほしいことがあるんだけど、 このHumanの配列をNameでソートしたりNameとBloodtypeでソートしたり 実行時にフィールドを指定してソートしたいときってどうすればいいの? フィールドの組み合わせごとにソート関数をこしらえるのは嫌なの。そんなの桃白白無理。 どうやるのか教えてほしいの。 Class Human Dim Name Dim Bloodtype Dim Likecolor End Class Sub Sort(ByRef Humans) End Sub
Cだと関数ポインタ、いまどきの言語だと高階関数を渡すところかね。 VBScriptだと無かったんだっけ?
桃白白って、知識はそこそこ付いてきたけど 応用力は全くないままなんだな 詰め込み型の勉強はそこそこ出来るが 根本的に頭の回転が悪いタイプ、所謂 偏差値そこそこでIQ低いってやつかな
482 :
桃白白 :2013/04/22(月) 16:05:32.76
>>480 GetRefがある。GetRefでSortに比較関数を渡すことはできるんだけど、
そうすると比較するフィールドの組み合わせごとに比較関数を用意
しなきゃいけないの。超大変なの。
ないのもねだりしたってしょうがないだろ クラスに、名前かインデックス受け取って該当するプロパティ値を返すメソッド作れよ
>>482 >GetRefでSortに比較関数を渡すことはできる
こんなことホントにできるのか?
具体的なコード書いてみてくれ
485 :
桃白白 :2013/04/22(月) 17:29:32.79
>>483 桃白白は実行時にフィールドを指定してソートする方法を教えてほしいの。どうやるのか教えて。
486 :
桃白白 :2013/04/22(月) 17:32:59.65
>>484 GetRefでググればわかんだろ。甘ったれんな。出直してこいはなったれ。
>>485 フィールドを指定したらその値を返すメソッド作れって言われてるんだろ
実行時にそのメソッドの値でソートするだけじゃないのか?
488 :
桃白白 :2013/04/22(月) 18:21:58.80
>>487 桃白白に聞かれてもわかんないよ。桃白白バカだから。
実行時にフィールドを指定してソートする方法を教えてほしいの。
どうやるの?具体的に教えてよ。コード書いて。
>>488 ググればわかんだろ。甘ったれんな。出直してこいはなったれ。
490 :
桃白白 :2013/04/22(月) 20:09:08.54
>>489 それは桃白白が言った台詞だよ。尊敬してる人の言動は感染するって言うけれど、
桃白白にあこがれてるの?桃白白は他人の真似事をするんじゃなくて確固たる
自分を持っていてダンディでアダルティな人が好き。
「自分を棚上げして、何言ってるんだ?」という指摘であることに気付けないのかな?
492 :
桃白白 :2013/04/22(月) 20:30:36.33
>>491 え? どういう意味? もっかいちゃんと説明して。
493 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/22(月) 20:43:05.91
フィールド集合を配列にして比較関数でインデックスを用いて比較
494 :
桃白白 :2013/04/22(月) 23:01:16.95
>>493 〃〃∩ _, ,_
⊂⌒( `Д´) < ヤダヤダ!
`ヽ_つ ⊂ノ
コード書いてくれなきゃやだーわかんないー
495 :
桃白白 :2013/04/22(月) 23:03:18.43
>>481 頭の回転が良くて応用力のある人が考えた回答はまだなの?
桃白白首を長くして待ってるんだけど。このままじゃ桃白白あの動物になっちゃうよ?
496 :
桃白白 :2013/04/22(月) 23:12:10.89
497 :
デフォルトの名無しさん :2013/04/22(月) 23:15:40.52
◆じゃあのさんの入れ知恵◆
じゃあのさん来た! 次スレ
26:以下、名無しにかわりましてVIPがお送りします[]
2013/04/22(月) 22:59:02.35 ID:8TN30C6y0
じゃあ、こっからが情報戦レクチャーに入るぜwww
敵の資金源をおまいらでも一枚噛んでぶっ潰す方法だwwww
不買運動やデモは単なる手段でしか無いwww
俺が求めるのは更にその先だwwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366637744/
Class Human Dim Fields(1 To 3) End Class Sub Sort(ByRef Humans, FieldIndex) ... result = Compare(Humans(i).Fields(FieldIndex), Humans(j).Fields(FieldIndex)) ... End Sub
パイパイおやすみ よい眠りを
(永眠的な意味で)
501 :
桃白白 :2013/04/23(火) 19:14:31.05
____ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/_ノ ヽ、_\ ( もう・・・私のばか・・・・!!!
. / (● ) (● )\ ( また本心と・・・・違うこと・・言っちゃったお・・・
///////(__人__)///\ ◯ ほんとは・・・素直になりたいのに////
| | 。O  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄
\ /
ノ \
/´
>>500 ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
502 :
桃白白 :2013/04/23(火) 19:16:43.13
503 :
デフォルトの名無しさん :2013/04/23(火) 22:14:31.98
配列じゃなくてADOのインメモリレコードセット使うと楽ちん 高機能すぎて鼻血出る
505 :
桃白白 :2013/04/24(水) 00:39:00.67
>>503 .NETのDataTableみたいなもの?ちょっと使ってみようかな。
ADOは本来の用途じゃないから楽ではないよ あとから何やってるかわからなくなるし
507 :
桃白白 :2013/04/24(水) 17:22:47.03
>>506 ちょっとまってて桃白白使ってみるから。
鼻血出るほどと言われて試さないのは大和魂じゃないよ。
508 :
桃白白 :2013/04/25(木) 01:29:56.44
ADODB.Recordsetを使ってみたのだけれども、桃白白がやりたかった 複数のフィールドを指定してソートすることが簡単にできた。
ADODB.Recordsetって あどーどぶ れこーどせっと であってる?
ADODB = ADO + DB 三文字、二文字で区切ったほうがいいのでは?
日本人って、頭文字繋げた略称を 単字読みしないで新たな名前付けるの好きだよね いや、外国でもローマ字読みとかですんなり読める場合は 単字読みしない場合も多いけど、日本人ほどなんでも無理矢理ってことは無いよな
お前が感じただけのことをさも日本人全部がそうのように言われても あと外国でのローマ字読みってどういうやつなんだ?
National Aeronautics and Space Administration を、「NASA」と略して、アメリカでも「ナサ」と読むだろ?
ADOもOLEもMSではそのままエイ・ディー・オー、オー・エル・イー もっともOLEはサードパーティが勝手にオーレと呼んでたな
だよな
option Explicit は オプション エクシプリシットであってる?
外国(笑)
悔しかったの?
519 :
デフォルトの名無しさん :2013/04/26(金) 00:43:49.76
>>514 公式でオーレって言ってたぞ
DAOはダオって言う人多いのにADOがアドじゃないのはなぜだ
IEEE,SAP,ISOなんかは半々くらいだな
IEEEはまた別物だろ 公式が、単字読みでもローマ字読みでもなく 「アイトリプルイー」なんだから つーかIEEEは何と半々だって言うんだ? 「アイトリプルイー」以外の読みを聞いたことないんだが・・・ 「アイイーイーイーw」と半々?「いえええw」と半々? どっちもネタ以外では一度たりとも聞いたこと無いけど
>>516 あってる。けど、Google翻訳さんの音声を聞くと、ィエクスプリスォだった。つまり、ggrks
アルファベットで読もうよ! ADODBはエーデーオーデービーだよ! ISOはアップルだよ!わかっかな!?
それ、面白いつもり?
524 :
桃白白 :2013/04/26(金) 13:24:19.78
525 :
桃白白 :2013/04/26(金) 23:24:20.43
|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ __|__
|┃ ノ// ./:::\:::/:::\
|┃三 / <●>::::::<●> \ うおおおおおおおおおおお!!
|┃ / (__人__) \ こんばんわーーーーーー!!!
|┃ | l;;;;;;;l |
|┃三 \ l;;;;;;;l /
|┃三 / ̄ ̄ヽ`ー'ノ ̄ ̄ ̄\
桃白白、Recordsetのプロパティをながめてたんだけどさ、意味深なことが書かれていることに気づいちゃったんだよね。
これなんだけど。これどうやってんのかな?配列のソートでも同じことできる?誰かやり方わかる人いる?桃白白にも教えて。
Sort プロパティ
http://msdn.microsoft.com/ja-jp/library/cc426789.aspx * データは、物理的に並べ替えられるわけではなく、
* インデックスで指定されている順序でアクセスされるだけなので、
* ソート処理は効率的です。
>>525 その直前に
>インデックスがない場合、Sort プロパティに指定された各フィールドに対して一時インデックスが作成されます
って書いてあるのが読めないのか?読めるけど意味がわからないのか?
桃白白はなんでVBScript使ってんの? Cとか使ったほうがいいんじゃない?
528 :
桃白白 :2013/04/27(土) 15:45:24.70
>>527 Cはポインタが難しいって聞いてます。コンパイラ用意しなきゃいけないし。
桃白白簡単なのがいいからさ。VBScriptはWindowsインストールしたらすぐに使えるでしょ。
メモ帳で書いて即実行できる。
確かに環境整っている唯一PCの場合、VBSで作りこむ必要も無いが、 移植や現地デバッグを加味した場合、VBSの魅力は高いわなぁ。
まあそれはわかる でもそれでアルゴリズムやデータ構造の話?してるのって なんか目的と手段がごちゃまぜになってる感じっぽいなー
>>530 だよな
>>528 みたいな実用主義でいくなら
結果さえ出せればいいはずなのに、何故か過程に無駄に拘るよね
532 :
桃白白 :2013/04/27(土) 23:23:22.33
実用主義ではないんだろうが、知識がいい加減でちゃんと勉強してない 自分の理解したいものだけ理解する感じだな
534 :
桃白白 :2013/04/28(日) 00:52:49.86
>>533 いいかげん気付こうよ。相手を下げることによって自分を上げようとするのってサイテーだよ。
いくら桃白白をバカにするような発言しても賢く見えるわけじゃないんだよ。
恥ずかしいだけだよ。桃白白がかわいいから桃白白に劣情を抱いてしまって
そうしてカッコつけてるつもりなんだろうけど、桃白白はそういうの嫌いだよ。
>>528 バブルソートプロフェッショナルならポインタくらい余裕だろ
536 :
桃白白 :2013/04/28(日) 01:49:32.26
>>535 バブルソートプロフェッショナルってなにそれ、ダサいよそういうの。やめなよ。
桃白白がクラウドだったら迷わずそう言ってるよ。
ダブルクリックしてWSでの実行時、毎回タスクバーに表示するようにしたいんだけど可能?どやんの?? タスクリスト開いてプロセス探して強制終了するのめんどいの!
できるよ。Googleに聞けばわかる
>>536 じゃあ訂正するよ
エリートバブリストならポインタくらい余裕だろ
最近の桃は感情の防波堤決壊気味でますます可愛い
とあるテキストファイル二つ(txtA、txtB)があって、 それぞれ文字列が何行か入っている。 txtA txtB ------------------------ ごりら しまうま らいおん きつね とら らいおん 桃白白 かば txtAの各行の文字列が、txtB中に存在するかを判定するかを 判定するようなものを作りたいんだけど、簡単にできる? 色々な処理をVBSで作りこんでるんだけど、この処理だけが 面倒でエクセルに飛ばしてブイルック判定して結果出力して 再度VBSの処理に戻るみたいなナンセンスな形だから止めたいんだけど。 結果として ×ごりら ○らいおん ×とら みたいな物が得られれば何でも良いんだけど とりあえず桃白白、揺ぎ無い唯一回答教えれ。
542 :
桃白白 :2013/05/01(水) 01:07:51.22
>>541 なんで桃白白限定なの。やっぱりさー、掲示板の醍醐味はみんなであーでもないこーでもない
とワイワイガヤガヤやるところにあると思うんだよね。そっちのほうが絶対楽しいし、
考えを広げることができると思うんだよね。じゃあさみんなで意見出し合おうよ。
543 :
桃白白 :2013/05/01(水) 01:28:51.98
544 :
桃白白 :2013/05/01(水) 18:58:09.08
>>541 Bを配列格納してAの1点1点を検索とかは?
ADOかDAOだと思ふ ところで、ByRef/ByValをつけなかった場合、ByRefになるって本当?
chinko = "min" msgbox manko( chinko ) sub manko( chingching ) chingching = "max" end sub
すみません、訂正します。 chinko = "full" call manko( chinko ) msgbox chinko sub manko( chingching ) chingching = "empty" end sub
vb,vba,vbs :ByRef
vb.net :ByVal
>>548 sub manko( chingching )
if chingching = "full" then
chingching = "empty"
end if
end sub
551 :
541 :2013/05/02(木) 15:51:21.00
>>542-545 サンクス。
とりあえずいけそうな感じで組みあがって、全く別問題に躓いた。
知ってたら教えれ。知らんかったら調べてから教えれ。
実はこの>541のテキストファイルのtxtA、とあるバイナリファイルを
無理やりテキストで数文字分取得したもので、取り出したテキストに
一部スペースが入ってたりするんだけど、このスペースでとらぶった。
単なるスペースに見える部分の一部が、バイナリエディタでは
00と20の2種類有る事がわかったんだけど、これをうまい具合に
同じ20のスペースとして取り扱う方法教えれ。
わかりにくいからイメージな。
txtAをテキストエディタで開くと
らいおん[_][_][_][_][_][_] ([_] = スペース)
バイナリエディタで開くと[_][_][_][_][_][_]の部分が
20 20 20 00 20 20
見たいな感じで00が混じってる状態な。
ちなみにtxtBはバイナリからの読み込みとかではなく、全てのスペースが
バイナリエディタ上で20の状態。
全く同じ文字列に見えて、検索ヒットしねぇから原因調べるまで
3時間食ったわ。
桃白白、揺ぎ無い唯一回答を即答でくれ。
552 :
桃白白 :2013/05/02(木) 16:05:30.71
>>551 だからなんで桃白白限定なの。
桃白白「解せぬ」
553 :
桃白白 :2013/05/02(木) 17:12:35.22
>>551 邪道だけど、IEに取り込んだ文字列を表示させて保存するとかは?
IE.Document.body.innerHTML
= IE.Document.body.innerHTML & らいおん[_][_][_][_][_][_]
IEだとスペース勝手に削るから、00も20もなくなるかも
後はこれをテキストファイルに保存
試してないからうまくいくかわからないわ
554 :
桃白白 :2013/05/02(木) 17:17:51.25
555 :
桃白白 :2013/05/02(木) 17:27:25.13
556 :
桃白白 :2013/05/02(木) 17:33:33.43
危なく答えるところだった 桃白白がんばれよ
558 :
桃白白 :2013/05/02(木) 19:52:22.85
お前ら全員偽者、コードを見れば一目でわかる。
見ろ、これが本物のコードであり、本物の桃白白だ。
>>551 friendpaste.com/7LSSIkxjeQp0eIIts3cANJ
559 :
桃白白 :2013/05/02(木) 19:55:38.29
>>557 答えなよ、桃白白の名が示されたとき、それは最大限の礼儀をもって
対応しなければならないときなんじゃない?
桃白白が言ってることなんか間違ってる?(間違ってない)
560 :
桃白白 :2013/05/02(木) 20:30:16.77
>>551 ADODB.Streamはヌル文字が含まれているときに行の分割がうまく行われないね
friendpaste.com/LTUTgTw1AHdJO3sjAZkrK
Chr()でやれ
Chr()とAsc()とReplace()と
エンコーディングの前提が無い時点で正確な議論は出来ない
とりあえずヌル文字が入ってる時点でテキストファイルとは認めん
565 :
桃白白 :2013/05/03(金) 17:51:23.52
566 :
デフォルトの名無しさん :2013/05/04(土) 01:37:12.18
バカか? バイナリやん
567 :
桃白白 :2013/05/04(土) 02:21:46.43
>>566 文字ゆうてるやんか。バイナリやったらヌルバイナリゆうはずやろ。
ヌル文字は文字や。
UTF16やUTF32は文字の中に NULL文字が入っているけど 普通にテキストだよ。
文字の一部バイトが00でも、普通はそれをヌル文字とは言わない
570 :
桃白白 :2013/05/04(土) 12:22:12.60
いるよな意味論を理解できない奴
573 :
デフォルトの名無しさん :2013/05/04(土) 20:47:51.82
>>572 体の一部が男性器だったらその人は男性でしょうが。
バカにしないでくれる?桃白白そんな話じゃないってわかってるから。
574 :
桃白白 :2013/05/04(土) 20:48:42.18
':, ', _____,,.. -‐ ''"´ ̄ ̄`"'' ー 、., / ':, ', >' ´ `ヽ. / し バ ':, / ヽ. ,' な カ ':, ,:' / / ,'´ ヽ. ':,/Ti i. い に . \ ,' / / ,' ! ; ', ヽ__ /::::| | | で \ / ,' ,'! /! ! ; /! i 「:::|'´::::::::| | .!. く ∠__,! / !メ、」_,,./| /! / ! ハ! |__」<:::::」」 |. れ `"'' 、..,,_ ! / ,ァ7´, `iヽ| / |ヽ、」ニイ、 | ! |^ヽ、」」 |. る i,/レイ i┘ i. レ' 'ア´!_」 ハヽ| | | ∠ ! ? ─-- / ! ゝ- ' ! ! ! | | `ヽ. / 7/l/l/ 、 `'ー‐ '_ノ! | i | ` ' ー--- ,. -──-'、 ,人 `i`ァー-- 、 /l/l/l | !. | | ヽ.ソ `: 、. レ' ', u ,/| | ! | そ 知 i /ーナ= 、 '、 ノ ,.イ,カ ! | | の っ .|ヘ./|/レへ`>-r =ニi´、.,_ | i ハ ! ,' く て ! _,.イ´ヽ.7 / /:::| /レ' レ'レ' ら る | /7:::::! ○O'´ /::::::レ'ヽ. い .わ .| / /:::::::レ'/ムヽ. /::::::::/ ヽ. ! ! よ ! ./ ,':::::::::::!/ ハ:::::`´:::::::::::;' ',
575 :
デフォルトの名無しさん :2013/05/04(土) 22:56:07.27
桃白白=うんこ
576 :
桃白白 :2013/05/05(日) 03:02:12.66
>>575 桃白白うんこじゃないけど、Javaなどのようにコンパイル時に型のチェックが
行われる言語だとクラスの代替に連想配列を使うことはあまりないけど、
VBScriptは型が違うことによるエラーが実行時にならないとわからないから、
連想配列を使うことによるデメリットがなくて、連想配列をもっと積極的に
使うべきなのかも知れないよね。そこんとこどう思う?
>>575 的にはどう整理してる?
>>576 業務ではDictionary使わないことがないくらい使ってるよ
大量のデータを扱う場合めちゃ遅いけど
コードの簡潔さとトレードオフでDictionaryを選ぶ てか使え、独自の検索アルゴリズムやらはバグの元だからやめれ、あるものは使え
C++のmapみたいに捕らえて使ってるからDictionaryのDictionaryなんて当たり前な感じ
ただ関数の戻り値でDictionaryを返す場合はちゃんとDictionaryのKey, Valueの型をコメントしておかないと
後で読んだとき何が入ってるのかわからなくなるからコメントだけはしっかり書くこと
あと、桃白白=うんこ
578 :
桃白白 :2013/05/05(日) 04:19:47.12
>>577 なるほどー。ところでDictionaryのキーの順番が追加した順に保持されることは
アンドキュメンテッドじゃん?それってどうしてる?気にせずキーの順番が保持されることを
前提に使ってる?それともラップしてキーを別に管理してる?どうしてる?
桃白白前から疑問に思ってたんだよねー、詳しそうだからさ、教えて。
俺もAdd順ていう情報は信じていいものか分からなかったから キーの順序が重要な場合はDictionaryとペアでCollectionにkeyを追加してったものを使ってる でもまあAdd順じゃねえの
ってVBSか 配列にでも突っ込んどけばいいと思う
581 :
桃白白 :2013/05/05(日) 05:05:02.68
>>580 Keyの順番はDictionary外で管理する派ね。なるほどー。
配列は追加する数が決まってないと大変なんだよね。あれはね、諸刃の剣だわ。
CollectionがVBScriptにもあったらいんだけどね。
誰かマイクロソフトに怒鳴り込んでくれないかな。ちょとーCollection使わせなさいよーて。
そうは言うけどこういうの作っとけば割と楽よ Function CreateArray() CreateArray = Array() End Function Sub AddArray(a, e) ReDim Preserve a(UBound(a)+1) If IsObject(e) Then Set a(UBound(a)) = e Else a(UBound(a)) = e End If End Sub [ Sample ] a = CreateArray() AddArray a, "1" b = CreateArray() AddArray b, new RegExp
583 :
桃白白 :2013/05/05(日) 19:49:43.23
>>582 なるほどー。桃白白それ使うことにする。
>>576 >VBScriptは型が違うことによるエラーが実行時にならないとわからないから、
>連想配列を使うことによるデメリットがなくて
実行時に(型の不一致による)エラーがでる(可能性がある)ことはまさにデメリットなんだが
ただしそれは連想配列に固有の問題ではない
議論の前提条件としてまったくなりたたないんだが
585 :
桃白白 :2013/05/05(日) 20:22:22.95
587 :
桃白白 :2013/05/05(日) 21:01:50.12
>>586 桃白白はお前のことを友だちが少ない人なんだろうなくらいにしか思わないよ。
他人とまともに会話した経験が皆無なんだろうなって思う。リンク貼るだけで、
言葉を紡いで意志を伝達することができないことからも、コミュニケーションが
苦手な人なんだろうなって思う。その人が一生懸命桃白白と会話しようとしてるんだって
思うと多少同情がわかないではないけれど、桃白白はカウンセラーじゃないからやめてほしい。
会話下手な人の共通点「否定」 | 会話・恋愛・コミュニケーション・人間関係克服ブログ
http://kenjismile.com/601/
588 :
575 :2013/05/05(日) 21:23:01.69
お、俺じゃねーからな!
>>551 正規表現オブジェクト(RegExp)でReplaceすれば?
毎回Testしてもいいけど読み込んで即Replaceしておいた方が後々楽。
テキスト処理なら正規表現は基本だし。
590 :
桃白白 :2013/05/11(土) 02:52:35.98
桃白白VBScriptのプログラムでどう書けばいいのかわからないことがあるのですが、 ここで質問してもいいでしょうか?桃白白困っています。聞いてもいいですか?
591 :
桃白白 :2013/05/11(土) 03:11:09.83
なんでもこいや。
592 :
桃臼臼 :2013/05/11(土) 04:26:18.29
やあ!お元気ですか
593 :
桃白白 :2013/05/11(土) 04:31:08.49
msgbox "元気ですかーっ!"
594 :
桃白白 ◆9Jro6YFwm650 :2013/05/11(土) 04:36:59.08
トリップつけることにした。
>>591 ExcelにMROUNDって関数があるじゃん。桃白白その関数をVBScriptで
実装したいんだよね。そんな欲求が桃白白にあるの。Excel使えっていう
下賎な考えを持つ人もいるかもしれないけれども、桃白白はMROUNDを
VBScriptで実装したいというただただピュアなハートを持っちゃってるわけ。
でもどう実装すればいいのか皆目検討が付かないの。コードを教えてください。お願いします。
>>594 本気で皆目見当がつかないなら小学校の算数からやり直して来い
MsgBox MROUND(10, 3) '10 を 3 の倍数になるように丸めます (9)
MsgBox MROUND(-10, -3) '-10 を -3 の倍数になるように丸めます (-9)
MsgBox MROUND(1.3, 0.2) '1.3 を 0.2 の倍数になるように丸めます (1.4)
MsgBox MROUND(5, -2) '5 と -2 の符号が異なるため、計算結果はエラー値になります (#NUM!)
Function MROUND(Arg1, Arg2)
Arg1 = CCur(Arg1)
Arg2 = CCur(Arg2)
If Sgn(Arg1) <> Sgn(Arg2) Then Err.Raise 5
Dim x, m
x = Fix(Arg1 / Arg2)
m = Arg1 - (Arg2 * x)
If Abs(m) >= Abs(Arg2 / 2) Then
x = x + 1
End If
MROUND = Arg2 * x
End Function
CCurしてるのは浮動小数点の誤差を避けるためな
xが倍率、mが余り
596 :
桃白白 ◆9Jro6YFwm650 :2013/05/12(日) 00:28:47.46
∩___∩ | ノ ヽ / ● ● | みんなーーこんばんわーー!! | ( _●_) ミ 母の日おめでとーー!! 彡、 |∪| 、`\ みんなどうせ母親とは疎遠になってるだろうから / __ ヽノ /´> ) このスレのマザーテレサである桃白白に日頃の感謝の言葉を書き込んだらいいよ (___) / (_/ 桃白白いつもありがとーみたいなこと書き込んじゃったらいいよ、今日の23:59まで受け付けてるから | / | /\ \ | / ) ) ∪ ( \ \_)
597 :
桃白白 ◆5us8T4oj.. :2013/05/13(月) 00:01:09.67
___ _________ ____,../ \ | | | ノ / \ | | | / / | | | | |::.. ...::::| | | ヽ .-一ー_~、⌒)^),-、;;;;:::/|_|_______| ヽ ____,ノγ⌒ヽ)二二二 | | |
桃白白はともかくここ残ってる奴はどういうやつだろうな むたぐち、吉岡らへんはさすがにVBSなんか捨てただろうけど むたぐち掲示板にいた奴らは確実にいそう
599 :
桃白白 ◆9Jro6YFwm650 :2013/05/15(水) 06:57:18.71
>>595 CCurしたら小数点4桁までしか扱えないと思うの(ふるえ声)
600 :
桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 11:48:06.56
∩___∩ | ノ ヽ / ● ● | みんな──!! | ( _●_) ミ 彡、 |∪| 、`\ / __ ヽノ /´> ) (___) / (_/ | / | /\ \ | / ) ) ∪ ( \ \_) 桃白白、文字列を数値にしたいんだけど、いいやり方知ってる? ハッシュテーブル実装したくてさ、できるだけバラけるようなやつがいんだけど、知ってたら教えて。 桃白白困ってるの。
601 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/07(金) 12:17:08.58
hash = 0 for i=1 to len(s) hash = hash * 256 hash = hash + asc(s(i)) next i
602 :
桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 12:24:20.40
>>601 あ、片山さんだ。
ありがとうございます。
hash = 0 for i=1 to len(s) hash = hash * 2 hash = hash xor asc(s(i)) next i こっちの方がいい。あと、オーバーフロー対策が必要
604 :
桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 16:15:28.12
>>603 ありがとうございます。
オーバーフローはあれですよね、ビットの先っちょをあれすればいんですよね。
605 :
桃白白 ◆9Jro6YFwm650 :2013/06/08(土) 15:32:49.00
WSHて
桃白白のおっちゃんどこ行った?
何か自治スレ議論が活発になったころに消えたよなあ タイミングよかったのかよくわkらん
610 :
デフォルトの名無しさん :2013/09/18(水) 17:40:07.28
みんなのために話題提供してたのが桃白白のおっちゃんだけで 外野はカスばっかりだったわ
と、桃白白は思うのであった。
桃白白は、おっちゃんなの?
613 :
桃白白 :2013/09/18(水) 21:36:39.27
おっちゃんです
せっかくのネカマプレイだから、そうあからさまに言わなくても
615 :
桃白白 ◆9Jro6YFwm650 :2013/09/21(土) 09:10:01.86
>>610 桃白白おっさんじゃないけどね。
これ桃白白。
http://www.bigthunder.jp/photo/1/102/102050/big/b0326003.jpg なにか話題ある?じゃあ第1回FizzBuzz大会でも開催する?
VBScriptでFizzBuzzを必死に実装する大会開催するっきゃないっしょ。
やるっしょ?いつやるの?いまやるしかないっしょ!!
じゃあ問題書くよ。
1から1000までの数字で、数字が3で割り切れるときはFizzと出力し、
5で割り切れるときはBuzzと出力し、3で割り切れて5で割り切れるときはFizzBuzzと出力し、
7で割り切れるときはMozukuと出力し、3で割り切れて7で割り切れるときはFizzMozukuと出力し、
5で割り切れて7で割り切れるときはBuzzMozukuと出力し、3で割り切れて5で割り切れて7で割り切れるときは
FizzBuzzMozukuと出力し、3で割り切れず5で割り切れず7で割り切れないときは数字を出力してください。
数字を出力する条件や出力する文字列が変わっても容易に修正できるよう頑張って実装してください。
数字を出力する条件が増えても容易に拡張できるよう工夫してください。
やってみて、桃白白も全力出すからみんなこれやってみて。
白桃、名前空間つかってZIPの圧縮解凍する汎用的な関数作って。変数名は歴代総理大臣や偉人の名前で。関数名は日本史の時代名で。 どのくらいでできる?
>>615 ここは小学校じゃないよ?
君はそれを全力出さないと作れないのか?
618 :
桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 13:24:09.79
>>617 そういうことはまず作ってから言わないと。まず作りなよ。
作ったうえで俺にとってこの問題は楽勝だった小学生レベルだと言うべきだよ。
まあそういうことを言うこと自体ちょっと痛いと桃白白は思うけども、何にも作ってないのに
小学生がどうとかこうとか足をなめたいとかいうのは青少年育成条例に引っかかると思うよ。
倫理的にまずいよ。
>>615 が難しければバブルソートでもかまわないよ。作ってみてよ。
619 :
デフォルトの名無しさん :2013/09/22(日) 14:28:10.94
変更可能なのなんてvisitor作ればすぐだけどvbsだからな・・ 面倒くせえ
FizzBuzz問題は蛇足や無駄の無い無駄なテクニックをたしなむためにある
せめてデフォルトで可変配列があれば。
623 :
デフォルトの名無しさん :2013/09/22(日) 15:41:22.33
624 :
デフォルトの名無しさん :2013/09/22(日) 15:43:54.49
おっぱいのおじさん、次の出して 簡単なやつおね
625 :
桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 15:46:24.39
>>624 VBScriptのスレなんでVBScriptで書いてよ。
626 :
デフォルトの名無しさん :2013/09/22(日) 15:46:47.19
だって知らないもん
627 :
桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 15:47:52.51
>>626 じゃあC++のスレに行くべきだと思うよ。
よ〜し。FizzBuzz定番のあれ行っちゃうよ Wscript.Echo "1" Wscript.Echo "2" Wscript.Echo "Fizz" Wscript.Echo "4" Wscript.Echo "Buzz" Wscript.Echo "Fizz" Wscript.Echo "Mozuku" ' : (省略) Wscript.Echo "Buzz" Wscript.Echo "Fizz" Wscript.Echo "997" Wscript.Echo "998" Wscript.Echo "Fizz" Wscript.Echo "Buzz"
629 :
桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 19:26:58.87
名前空間つかって?クルクルパーなの?
632 :
桃白白 ◆9Jro6YFwm650 :2013/09/25(水) 14:45:15.21
RubyにもPythonにも変数宣言なんてないんですよ!! Option Explicitを付けるべきだって考えそろそろやめませんか? VBScriptは次の時代にすすむべきだよ。
Windows自動処理のための、WSHプログラミングガイド、2012 という本を買った なぜ漏れが突然、WSHをしようと思ったか インターネットの通信量を減らすため、 Win8、IE10で、画像の表示・非表示を、切り替えるのは、 ツール > インターネット・オプション > 詳細設定タブの マルチメディア > 画像を表示する この操作が面倒なので、これを一発で切り替えるツールを、 探したのですが、無さそうなので、自分で作って、公開しようと思った 検索すると、こういうツールを欲しい人は、他にもいるみたい 画像の表示・非表示を切り替えながら、regeditで、レジストリを見ると、 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main のDisplay Inline Images=yes,no ここが、yes,noで切り替わる ここまで調査しますた >632 Option Explicitを付けたほうが、バグが減るのでは?
635 :
633 :2013/09/27(金) 00:16:06.59
>634 買った本は、2009年、初版第1刷発行 2012年、初版第4刷発行となっている 内容は、2009年と同じなのかな? この本には、WSHは今後、メジャーなバージョンアップは行われず、 PowerShellへ移行する、と書いてある WSHは、Win8でも使えるのかな? PowerShellの本は、文字が小さそうで、読めない それにシェルスクリプトは、Linuxのものを見ても、 落とし穴が多く、難しいイメージがある (うかつに空白を入れると、エラーになる) それに比べると、VBScriptのほうが視認性がよく、簡単なんだけど
636 :
桃白白 ◆9Jro6YFwm650 :2013/09/27(金) 20:07:56.85
>>633 Option Explicitでバグが減るならOption Explicitがない
RubyやPythonはバグだらけだよ。でもそうじゃないから
Option Explicitでバグは減らないし、必要ないと思うんだよね。
桃白白Option Explicitつけずにバブルソート実装してみたけど、
バグらなかったよ。試しにやってみてよ。Option Explicit要らないってわかるから。
637 :
桃白白 ◆9Jro6YFwm650 :2013/09/27(金) 20:36:43.73
638 :
633 :2013/09/27(金) 23:48:31.11
>636 Option Explicitを付けないと、次のように、 n、mを書き間違えても、エラーにならないので困る Dim n n = 0 Call MsgBox(CStr(m)) 人間の目に頼ると、神経を使います 心理上ギスギスする、目がしょぼつく もう年だし、ツールを使わせて下さい!
>>636 「必須」ではなく「有用」だよ
この違い、理解できるかな?
そして「必須」だという主張にはその例えで反論になるが
「有用」という主張に対しては、その例えでは全く反論に成らず
むしろ滑稽さを晒しているだけ
640 :
桃白白 ◆9Jro6YFwm650 :2013/09/28(土) 07:21:37.63
>>638 n = 1のテストコードを用意すればいいじゃん。どうせテスト書くんだし。
>>639 プログラムで重要なのはロジック。ロジックを正確に動作させることがもっとも大事なことで、
変数の宣言はロジックと直接かかわりのあるものではないし、いわばノイズ。
バグを少なくしたければコードを書かなければいいということも聞くでしょ。
つまり変数宣言を取り除くことでコードが減り、コードが減ることでバグが減り、
ロジックが簡潔に表現されコードの品質が高まる。だからRubyもPythonも変数宣言が
ないのではないでしょうか?桃白白は滑稽じゃないよ高級なニワトリさんだよ。それはうこっけいでしょうがバカ。
テストってどうやって書くの?
>>641 関数の戻り値と期待値を出力すればいいよ
>>632 RubyもPythonも未定義の変数を読もうとすればエラーが出る
VBScriptはエラーが出ないからOption Explicitを付けるべき
644 :
桃白白 ◆9Jro6YFwm650 :2013/09/28(土) 18:06:28.09
>>643 え、そうなの?桃白白それ知らなかったからさ、じゃあいいけどさ。
馬鹿炸裂
646 :
デフォルトの名無しさん :2013/10/01(火) 11:16:53.00
非常にあたり前の話だが、暗黙の変数宣言で変数を利用する場合 常にグローバル変数が優先されて利用される グローバル変数が存在しない場合のみ、ローカル変数として暗黙に変数宣言がされる コードを再利用したいなら、Option Explicitを宣言しておいた方が(比較的に)安全 コードを再利用しないなら、Option Explicitを宣言してもしなくても、どうでも良い
648 :
桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 11:54:55.92
>>647 そうなんだよねー。グローバル変数撲滅キャンペーンを開催すればいんじゃないかな(名案)
>>648 そんなことするより、暗黙の変数宣言をしないようにする方が簡単
ほとんどクラスの中に入れちゃうとか。マゾいけど。 Class appclass Public x Public Sub main WScript.echo x End Sub End Class Dim a Set a = New appclass a.x = "hi" a.main
>>650 何がマゾいのか知らないけど
クラスは活用すべきじゃないかな?
そして、その例だとグローバル変数は撲滅されて無いよねw
652 :
桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 17:59:41.60
>>650 関数でいいでしょ。どうしてもグローバル変数を使いたいときには
Global_Valueみたいな長い名前にすれば間違って使うことなくなるっしょ。
Main
Sub Main()
WScript.Echo "たおぱいぱーい"
End Sub
on error resume next でエラーはなくなるよ!
>>652 HTMLを吐き出すプログラムを、クラス使わずに関数で作れって言われたらどうする?
努力する。 難しいことを、自分がいま持っている 知識だけで実現する。 努力えらい。
656 :
桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 21:20:30.96
>>654 作ればいいだけだろ?
その言った相手が親しい仲なら、クラス使った方が良いと諭すのもいいが
別に難しいものでもないんだし、どうしても作れって言うなら作ればいいだけの話
俺も金出しての依頼なら、文句言わずに素直に作るよ
すげーな...俺は絶対にお断りだぜ... 個別のタグのプロパティとか、ネストしたタグとか...考えるだけで関数ではやりたくない...
659 :
桃白白 ◆9Jro6YFwm650 :2013/10/06(日) 13:55:09.46
>>658 配列もScripting.Dictionaryもあるんですよ!
660 :
桃白白 ◆9Jro6YFwm650 :2013/10/06(日) 14:50:01.71
ところでみんなVBScript書くときはテキストエディタなに使ってる? 桃白白はねMeryっていうテキストエディタ使ってる。マクロもVBScriptで書くことができる 超絶すてきなテキストエディタ。みんなも使ってみて。
Meryもフリーのエディタとしては他人に薦めやすいが、俺自身は結局EmEditorに落ち着いた。
>>661 EmEditorいいよねー。
この前初めて秀丸を使ってみたけど、これはダメだと思った。
663 :
桃白白 ◆9Jro6YFwm650 :2013/10/10(木) 21:30:39.79
>>661 へーEmEditorは高速で高機能だって聞いてます。
664 :
桃白白 ◆9Jro6YFwm650 :2013/10/10(木) 21:35:33.56
ForやDo WhileやDo Loop WhileはDo LoopとIfで代替できる。 Select CaseはIfで代替できる。 SubはFunctionで代替できる。 そうやってVBScriptで最小限のステートメントのみを使うことを ハードボイルドVBScriptingと呼ぶことにしない?みんなどう思う? こういうのっておもしろいと思わない?おもぶきぶかいよね。
重武器武会
666 :
デフォルトの名無しさん :2013/10/11(金) 16:01:00.57
桃白白は何で代替できますか?
代替する必要無いだろ? 代替ってのは、有用だがデメリットがあり、その有用さを損なわずに デメリットを削減出来る他の物や方法を探す行為 有用性が無いものは、廃棄や排除する方法を探す必要はあっても、 代替を模索する必要性は全く無い
668 :
桃白白 ◆9Jro6YFwm650 :2013/10/11(金) 18:06:42.23
>>666 桃白白はなにものにもかえがたいとおといひとだよ。
かけがえのない桃白白。
桃白白が言うハードボイルドVBScriptingみたいなことは、ロボットでもできる。 ロボットは正確に素早くプログラムを変換できるから、そんなことで 時間を無駄にする桃白白は、ロボット以下。
Do LoopをDo LoopとIfで代替えするんだ... そんで、SubをFunctionにすることで、Subの代替えとなるのか? ハードボイルではなく、考えなしって気がしないでもない まだ、グローバルな関数を捨て、すべてをClassで作成するという方が、ハードボイルドっぽい
671 :
桃白白 ◆9Jro6YFwm650 :2013/11/08(金) 05:20:36.65
/\___/\ / ⌒ ⌒ ::\ | (●), 、 (●)、 ::| あるでんてー、アルデンテー | ,,ノ(、_, )ヽ、, :::| | ト‐=‐ァ' .:::| \ `ニニ´ .::/ /`ー‐--‐‐一''´\
672 :
桃白白 ◆9Jro6YFwm650 :2013/11/08(金) 05:50:57.54
∩___∩ | 丿 ヽ / − − | | ( _●_) ミ 彡、 ヽノ ,,/ 桃白白のVBScript講座始めるよー / ┌─┐´ |´ 丶 ヽ{ .茶 }ヽ r ヽ、__)ニ(_丿 ヽ、___ ヽ ヽ と____ノ_ノ PropertyにDefaultを付けるとプロパティ名を書かなくてもプロパティを参照できる。 Class clsList Dim Value Dim NextList End Class こういう線形リストがあったとすると Class clsList Dim Value Dim m_Link Public Default Property Get Link() Set Link = m_Link End Property End Class Class clsLink Dim NextList End Class こうやってデータと構造を分離できちゃうわけ!やったね!!
それが出来ることはもはや常識レベルだが 「デフォルトプロパティ」というのがバグの温床になりやすいから それを避けるためにあまり使われないだけ 皆が知らないから使われてないのではなく 弊害が大きいから知っていても使わないだけのものを 勘違いしてドヤ顔で「講座」とか、どんだけ出遅れてて どんだけレベル低いんだよw
674 :
デフォルトの名無しさん :2013/11/08(金) 20:05:00.98
675 :
桃白白 ◆9Jro6YFwm650 :2013/11/09(土) 08:41:00.85
>>673 バカにしないでくれる?桃白白バブルソート実装できるんだけど!!
ところでさ、VBScriptって()つけなくても関数呼び出せるじゃん。
Function Test()
Test = Test & "たおぱいぱい"
End Function
こう書いたとき再帰呼び出しなのかわかりにくくない?こういうときどうしてる?
パイパイ、複数テキストファイル一括置換できる?
おそらく勘違いした方法でやらかすのでは?
>>672 基本的な質問なんだが...
class宣言内で、Dimって使えたか?
>>678 使えるよ
デフォルトプロパティと同じで、使わないことが推奨されているので
初心者とおバカさんしか使わないけど
>>679 確認した
Publicと同じか...
...で、全てのメンバー変数をPublicにしてるのに、Defaultキーワードを使う意味はあるのか?
全てのメンバー変数がPrivateである場合にしか、Defaultキーワードを使う意味が無いと思うのだが...
681 :
デフォルトの名無しさん :2013/11/09(土) 22:46:02.60
やっぱり桃白白がネタ振ってるのに 馬鹿とかしか言えない他の奴らがクズすぎるな 晒しあげ
正確にはPublic(Privateでもいいけど)書くとDim省略できるだけだがな DimだけじゃPublicかPrivateか解りにくいから、そっち書けって話 あとPublicかPrivateかとデフォルトプロパティは関係ないぞ
メンバー変数が保護されていないのに、デフォルトの処理もなんもないでしょ... 何のためのデフォルト処理なのかを考えなきゃね... まあ、デフォルトを使うなってのも、オールパブリックなメンバー変数と同じぐらい馬鹿な話だけどな
> 何のためのデフォルト処理なのかを 互換性維持じゃね? あるべき処理ではなくて 過去の互換性を保つための処理。
>>684 バカなことを言ってないで、単語の「Default」の意味を調べなよ...
単語の意味通りに取り扱う必要があるって事だよ
686 :
桃白白 ◆9Jro6YFwm650 :2013/11/10(日) 15:01:37.81
クラスのメンバに基本型も参照型も入れたいんだけどみんなこれどうやってる? If IsObject(V) Then Set M = V Else M = V End If とか書いてる?量増えるとつらくない?苦行じゃない?どうやってるのみんな。
>>685 Defaultの意味?
債務不履行でしょ?
そんくらいしってますよーwww
>>686 SetValue(ByRef M, ByVal V)
689 :
桃白白 ◆9Jro6YFwm650 :2013/11/10(日) 15:25:23.93
>>688 マジサンクス。桃白白マジサンクス。それ使うことにする。
>>687 それを知ってるのに、「互換性維持じゃね」とか言っちゃうんだwwww
empty.bat(メモリの開放)を実行しようとC:\Program\Task Scheduler\の作成した場所に empty.batを実行させようとすると、エラーが出るんですがなぜだかわりませんか? CreateObject("WScript.Shell").Run "C:\Program Files\Task Scheduler\empty.bat",0 が実行vbsファイルですがエラーでます CreateObject("WScript.Shell").Run "empty *", 0 だと通るようですがファイル内を探し回って実行してますかね? 何をして探してるか、何が正しいプログラムかご説明頼みます
スクリプト: C:\Program Files\Task Scheduler\empty.vbs 行: 1 文字: 1 エラー: 指定されたファイルが見つかりません。 コード: 80070002 ソース: (null) とでます このエラーはPCに危害加えますか?
>691-692 質問内容がイマイチ分かりにくいな。とりあえず「メモリの解放」でググったら、 コマンドプロンプトなどで以下のコマンドラインを実行する方法が最初に見つかった。 %windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks ひょっとして、それを実行するバッチファイル"empty.bat"を、"empty.vbs"から呼び出そうとして失敗したという解釈でいいの?
日本語が少し変、というかコミュニケーションの取り方がが微妙におかしいよねー。
メモリの解放か…実際の効果は疑問だが、この1行vbsファイルだけで済ませてもエラーは出ないな。 ↓ CreateObject("WScript.Shell").Run "%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks", 1, true
697 :
ピラフ :2013/11/16(土) 10:14:49.64
>>695 ふむふむなるほどー。Runメソッドの最初の引数には実行ファイル名と引数が指定される。
実行ファイル名と引数はスペースで区切られる。ちゅーことは
CreateObject("WScript.Shell").Run "C:\Program Files\Task Scheduler\empty.bat",0
こう書いたとき
C:\Program という実行ファイルに Files\Task と Scheduler\empty.bat という引数を
渡すと解釈されるんかね。
>>691 囲っちゃえばいいよ!!
CreateObject("WScript.Shell").Run Quot("C:\Program Files\Task Scheduler\empty.bat"), 0
Function Quot(s)
Const Q = """"
Quot = Enclose(s, Q, Q)
End Function
Function Enclose(s, o, c)
Enclose = o & s & c
End Function
スレ立てるまでもない質問はここで 130匹目
http://toro.2ch.net/test/read.cgi/tech/1383105985/937 から誘導されてきました。
ExcelからJavaで作ったフォームを表示したいのですが、
java.swing.JFrameで作ったフォームを起動後、閉じるとExcelが最前面にきません。
Excel上のボタンを押す
->Javaの画面が最前面に起動
->Javaを終了するとExcelが最前面に戻ってくる
としたいのですが、なぜかExcelの上にその下にあったエクスプローラー等が表示されます。
ソースは下記です。実物が見れないので、一部間違ってる可能性はあります。
Sub Test_OnClick()
On Error Goto EEXIT
Application.Interactive = False
Set Shell = CreateObject("WScript.Shell")
Shell.Run "java -jar jframe.jar", True, True
EEXIT:
Application.Interactive = True
End Sub
質問スレではないということですが、宜しくお願い致します。
699 :
桃白白 ◆9Jro6YFwm650 :2013/11/26(火) 19:29:12.46
みんなこんばんわ。lとIと1って区別つかないじゃん? じゃあさ、全部大文字で書くことにしない? VBScriptでは大文字と小文字区別されないし、 全部大文字で書くことをアパースクリプティングと呼ぶことにしようよ!!(提案)
言われてみれば困ったことないかな。悪意をもって i の大文字を使わない限りは困らないかと。 それよりも幾つになっても、単体の d b、q p のうち d q が瞬時に判断できない事がある。 左向きだからディー、キューだな、的な思考が一瞬だけよぎる。
>>698 よく知らないけど、Shell.Runの次の行で、Excelをアクティブにすれば?
>>699 全部大文字で書くと、可読性が悪くなり、
ミスが増えて、品質が悪くなり、時間もかかる
702 :
桃白白 ◆9Jro6YFwm650 :2013/11/27(水) 21:50:11.50
>>700 仕事しすぎなんじゃない?ゲシュタルトなんとかってやつ。
>>701 そんなことない、Iとlの区別がつかなくてもよもよする方がよっぽど大変だよ、
そんな事態を打開しようと桃白白コード書いたからこれ使うといいよ。
SET STDIN = WSCRIPT.STDIN
SET STDOUT = WSCRIPT.STDOUT
DO WHILE NOT STDIN.ATENDOFSTREAM
STDOUT.WRITELINE UCASE(STDIN.READLINE())
LOOP
これをUPPER.VBSという名前で保存して
TYPE INPUT.VBS | CSCRIPT UPPER.VBS > OUTPUT.VBSで変換しまくったらいいよ。
全部大文字だとすげー雰囲気かわるな。 インターナショナル・ビジネス・マシーンズ的な。
大昔のBASICは全部大文字だったような
全部大文字だと大声で話しているようで嫌だな
706 :
デフォルトの名無しさん :2013/11/28(木) 01:23:47.46
バイナリファイルをまるっとビット反転したいんですがVBSでできませんでしょうか
709 :
桃白白 ◆9Jro6YFwm650 :2013/11/28(木) 20:10:57.78
相変わらず酷いな
711 :
デフォルトの名無しさん :2013/11/28(木) 21:25:36.43
あざーす
712 :
桃白白 ◆9Jro6YFwm650 :2013/11/28(木) 22:07:40.81
ところでさ、桃白白考えたことがあるんだけど、 線形リストって一つの値と一つの値を関連付けるわんわんクラスを 具象化したものじゃないかと思うんだよね。こんな感じに。 CLASS ONEONE DIM A DIM B END CLASS CLASS LINKEDLISTNODE DIM OO SUB INITIALIZE(VALUE, NEXTNODE) SET OO = NEW_ONEONE(VALUE, NEXTNODE) END SUB END CLASS あーはいはい、どうせ桃白白わんわん言いたいだけでしょと 思うだろうけど、そのとおりなの!そのとおりなの!!
>>712 ONEONEクラスはともかく、LINKEDLISTNODEクラスのメンバー変数はプライベートにした方がいい
何のために初期化してるのか考えようよ
大文字のうざさたるや
大文字ばかりなのは、実行する上では欠点ではないのでどうでもいいが 白桃は実行する上で欠点のあるコードを書くから、そっちの方が問題だ まあ初心者だから仕方ないと言えば仕方ないのかも知れないが
716 :
デフォルトの名無しさん :2013/11/29(金) 06:57:38.14
大文字はSQLってなぜかすりこまれている
718 :
桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 00:42:11.39
身長と体重と名前と年齢を管理したいときってあるでしょ? わんわんクラスを使うとこんなふうに書ける。 わんわん最強説。これってすごくない?画期的じゃない!? 桃白白すごいものを作ってしまったのかも知れない。みんなも使っていいよ、わんわんクラス。 CLASS HUMAN_ DIM OO PROPERTY GET HEIGHT HEIGHT = OO.A END PROPERTY PROPERTY GET WEIGHT WEIGHT = OO.B.A END PROPERTY PROPERTY GET NAME NAME = OO.B.B.A END PROPERTY PROPERTY GET AGE AGE = OO.B.B.B.A END PROPERTY END CLASS FUNCTION HUMAN(HEIGHT, WEIGHT, NAME, AGE) SET HUMAN = NEW HUMAN_ SET HUMAN.OO = ONEONE(HEIGHT, ONEONE(WEIGHT, ONEONE(NAME, ONEONE(AGE, NOTHING)))) END FUNCTION
配列使えよ
なんかLispっぽいな
,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;>
>>718 レベルのことで喜べた時期が
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f 俺にもありました
~''戈ヽ `二´ r'´:::. `!
>>717 ありがとうございます。
行ってきます。
>>718 だから、メンバー変数は保護しろよ
他の言語と違って、Propertyがある分、単純なゲッターやセッターでも意味があるんだから
724 :
桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:01:45.78
>>723 メンバー変数を保護することで桃白白にどのようなメリットがありますか?
>>724 お前一人だけのおもちゃなんだろ?
メリットなんてないよ
726 :
桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:32:58.12
>>725 桃白白にメリットがないことを桃白白に要求されても困るんで
自分でやったらいいと思うよ。自分ならこう書くっていうのを提示すればいいと思うよ。
>>724 メンバー変数OOに、ONEONEクラス以外の何かが代入される可能性が減る
Property Setで、ONEONEクラス以外のObjectを禁止することも出来るので、メンバー変数OOを必ずONEONEクラスのObjectとして扱える
自分だけで使うものでも、明日の自分が、今の自分と同じ考えであるとは限らないしね
728 :
桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:53:55.39
729 :
桃白白 ◆9Jro6YFwm650 :2013/12/03(火) 19:34:13.73
γ⌒) )) / ⊃__ 〃/ / ⌒ ⌒\ γ⌒)( ⌒) (⌒) \ ∩⌒) / _ノ :::⌒(__人__)⌒ 〃/ ノ ( <| | |r┬( / / )) 桃白白♪桃白白♪ ( \ ヽ \ _`ー‐' /( ⌒) / /
730 :
桃白白 ◆9Jro6YFwm650 :2013/12/03(火) 19:44:59.20
桃白白思うんだけどさー、VBScriptにもJavaScriptのような連想配列がほしくない? 簡単に定義できて簡単なクラスを代替しちゃうような簡便さがうらやましくない? そこで桃白白考えてみたんだけど、どお?これ。 friendpaste.com/1BJ0uvTPV9tji4YnMUl1k2 セルフリターンで超使いやすいっしょ、 完全にJavaScriptに追いついたっしょ。これ使っていいよ。使ってくれたほうが桃白白うれしいし、使って。
javascriptみたいな連想配列が使いたければ、javascriptを使う
WSHには、.vbsと.jsの他に.wsfってのがあってだな・・・・・
wsfはよく管理されたvbsとjsを部品として扱い組み立てるためのあれよね確か そこでhtaですy、うわ、やめろ、なにをする!
>>733 64bitの場合は、htaにすると32bitで動くからjetとかそのまま動いて便利だなと思う
ただ、いつまでサポートされてるのかってのが不安だな...
735 :
デフォルトの名無しさん :2013/12/04(水) 20:08:57.15
XPが完全に死滅したらvbsの時代も終わるのかな
IEでVBSのサポートが無くなったらしいし、そろそろVBS終焉か
オワコン
738 :
桃白白 ◆9Jro6YFwm650 :2013/12/06(金) 07:22:01.19
VBScriptが使えなくなったらみんななにに乗り換える? 桃白白はPythonがいいんじゃないかと思ってるんだよね。使ったことないけどたぶん全部同じでしょ。
PowerShellはだめなの? まぁPythonもいいけどね、何もインストールなくても使えなきゃバッチの意味がないと思うけど
740 :
桃白白 ◆9Jro6YFwm650 :2013/12/06(金) 18:11:08.08
>>739 PowerShellは桃白白には難しすぎるの!難しすぎるの!!
PowerShell 実践システム管理ガイド、2011 という本を買って、軽く読んだが、 PSに関する本が、少なすぎる なんとWin8では、PSが最初から入っている! Linuxへの対抗措置か Linuxだと、誰でもコマンドやシェルスクリプトが使えるから
linuxは標準shとさらにperlも使えるから強いよね
>>742 Windowsでは、標準でVBScriptもJavascriptも使えるから、腐れperlを使う必要性がないよ
何年か前にpower shell良さそうでインスコしたけど使ってないな WMI操作なんかがくっそ楽になりそうだけど 俺は別にactive directoryの管理者でもなかった 他に使い道を見いだせるほどの知識をつけることなくほこり被ってる
745 :
桃白白 ◆9Jro6YFwm650 :2013/12/07(土) 13:28:30.34
なんだかんだでVBScriptが一番かわいいよね
なんとなくそれはわからんでもないな 白桃はうざいが
桃白白のレベルだと、そのくらいが限界だろうからな
つーかVBScriptですら桃白白の限界より上じゃん 実際、桃白白はVBScriptも未だまともに使えてないし
749 :
デフォルトの名無しさん :2013/12/08(日) 14:34:56.32
SAMPLE.xlsのSheet1にボタン cmdbtm1がある。 cmdbtm1をクリックすると、標準モジュール内サブルーチン Sub_CmdBtm1()をコールします。 で、やりたことはVBSからSAMPLE.xlsを起動しSub_CmdBtm1 を実行するVBSのコードを教えてください。 参考になるサイトがあればリンク先だけでも助かります。 よろしくお願いします。
>750 まさにこれです。 ありがとうございました。
752 :
桃白白 ◆9Jro6YFwm650 :2013/12/13(金) 21:48:11.33
strAppPathを複数パス指定するときはどうしたらいいんでしょう? 1.exeと2.exeがCドライブにあるとして、単純に strAppPath = "c:\1.exe" strAppPath = "c:\2.exe" こんな感じで通じてます? あと、strAppPathをフォルダ指定など可能ですか?
>>754 For Each strAppPath In Array("C:\.exe", "C\2.exe")
Next
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Folder")
For Each strAppPath In Folder.Files
Next
根本的に仕様を勘違いしてるか 壊滅的に日本語表現力が無いな
strAppPathって何さ
>>754 一つの変数に覚えさせることが出来るのは、基本的に一つの事だけだぜ
そういえば、Javascriptには、デストラクタが無いんだな...
>>758 それは型次第でしょ
クラスだって定義上は変数の一つだし
連想配列だって、ひとまとめで一つの変数だし
>>760 ちょっと待て、その考え方は危ないぞ...
インスタンスに複数の内容を覚えさせるには、クラスの定義で必要な数の変数を用意する必要があるし
連想配列にしても、1つの要素に入れられる内容は1つだけだぞ
754が会話についてきてるとは思えない話だな
構造体を否定するような話だけど VBは構造体とか使わないんだっけ
>>761 > ちょっと待て、その考え方は危ないぞ...
なにが危ないのかさっぱりわからん
VBScriptってユーザー定義の構造体作れるの? VB6やVBAでは構造体も使うが、VBSではいつもグローバル変数を宣言しただけのクラスで代用してたが
なんでビングらないの?
VBScriptを使うと思うやつはプロジェクト作るのもめんどくさいという怠け物だから
>>766 そもそも、クラスと構造体の違いってなんなん?
771 :
桃白白 ◆9Jro6YFwm650 :2013/12/18(水) 19:12:42.42
∧ ∧ |1/ |1/ / ̄ ̄ ̄`ヽ、 / ヽ / ⌒ ⌒ | | へ へ | ふふ♪ / | / | ( _ | (ヽ、 / )| | ``ー――‐''"| ヽ| ゝ ノ ヽ ノ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
白桃、前にクラスの疑似継承がどうとかやってたけど結論出たんか
773 :
桃白白 ◆9Jro6YFwm650 :2013/12/18(水) 20:42:58.05
>>772 わんわんクラスの話?じゃなくて?え?桃白白なんか言ったっけ?記憶にございません。
5000万円は受領しておりません。
へー、半年振りにこのスレ覗いてみたけど 白桃だかなんだか言う缶詰みたいな奴は 未だ頑張っていたんだな。ちょっと意外だ。
結局、別に目新しいものじゃなかったからな。 初心者なら知らない奴も居るかもしれないが VBSを使い倒してる奴なら大抵知ってるレベルの使い方だし。
まあプログラミング系のスレに長年住みつくのは業界人と相場が決まってるわな。 オレもSE兼PG兼テスターだしw
777 :
桃白白 ◆9Jro6YFwm650 :2013/12/24(火) 18:57:50.35
i;;;;;;;;;;;;;;;;;;;/l;;;/l;ソ;;/ |;;;;;;/| l;;l゙ヾ;;;ト、;;;;;;;;;;;;;i |;;、;;;;;;;;// /,'' / l/ |/|/ ゙l ヾ、゙i;;;;;;::::/ /ヾ;;/ソ , , ヽ l;;l"゙l '、 (ヾ,,===;;;;;;;,,,,,_`il,i゙__,,,,;;;;;=== ,/|lヽ l ヽ、`||ヾi;'(:::::゙'゙:::/;;i=i;;;ヽ:::゙'゙::::)゙i;/ |l'ノ/ クリスマスイブか・・・ /ヽ|l、 ゙i::;;;;/⌒⌒).ヾ..;;;;;;;;;;..ノノ/l.,/\ /;;;/::ミヾ、./ / / ) '゙ /ミ"i;;;;;;;;\_ _,.-;;'";;;;;;;;r‐ ミ/゙ ,/ / /_!/` /,,l;;;ミ/;;;;;;;;;;;;;;;;~\ _,、-‐;;'";;;;;;;;;;;;;;;;;;;;;| / / / /.__,,,..-/ヽ /;;;ミ/;;;;;;;;;;;;;;;;;;;;;;;;;;`;,,、_ ‐'";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;| ノ / .ノ / ,,, / ノ/';;;;ミ/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙'';;;,,、_ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノ/ ノ / /,,,,/ /;;;;ミ /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`
クリスマスイブはコンビニでお菓子やジャンクフードをしこたま買い込んで 部屋に一日中立てこもる日だってじっちゃが言ってた。
その結果
>>778 がこの世に生まれてくることはなく、世界はへいわでした
めでたし めでたし
去年と一昨年は確かクリスマスが土日とかだったんよね。今年は残業だろお前ら しかし今年の正月はカレンダーどうりでもデカイ連休だろ こっちのほうが価値がある!ひゃっはー!27日から10連休! ・・あ、あー、ニートだったはwwwww
今日はクリスマスイブだから忙しくて書き込みできない設定で行くつっといただろ ちゃんと打ち合わせどおりやれよ 何年同じことやってると思ってるんだ
782 :
桃白白 ◆9Jro6YFwm650 :2013/12/25(水) 05:56:53.40
/⌒\ ○⌒):::::::\ ノ::::::::::::::\ ⊂ニニニニ⊃ | ノ ヽ はいどうもー! / ● ● | If 2 And 1 = 1 Then | ( _●_) ミ これって誰もが一度ははまるよねー!! 彡、 |∪| 、`\ クリスマスおめでとー!! / __ ヽノ /´> ) (___) / (_/ | / | /\ \ | / ) ) ∪ ( \ \_)
へんなスレだなここ
hey scripting guysさんが居るから話題が上がりにくいしな
785 :
デフォルトの名無しさん :2013/12/27(金) 13:23:56.57
よし、この年末の忙しい時にみんなでbaidu IMEがインストールされているか判別するVBSを作ろう。 どれくらい早くできるかやってみない?
786 :
桃白白 ◆9Jro6YFwm650 :2013/12/27(金) 13:42:23.04
787 :
デフォルトの名無しさん :2013/12/27(金) 13:43:56.39
baidu IMEのレジストリーキーとかあるのかな
788 :
デフォルトの名無しさん :2013/12/27(金) 14:39:38.47
789 :
デフォルトの名無しさん :2013/12/27(金) 16:03:42.29
HKEY_CURRENT_USER\SOFTWARE\Baidu このキーがあったら黒ということでいいかな
790 :
デフォルトの名無しさん :2013/12/27(金) 16:39:56.06
まずはこんなかんじで判定かな Set objShell = CreateObject("Wscript.shell") On Error Resume Next If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then Wscript.Echo "Baidu IME入ってない。" Else Wscript.Echo "Baidu IME入ってる。" End If
791 :
デフォルトの名無しさん :2013/12/27(金) 16:51:58.34
objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) ってやろうとしたけど管理者権限ないからNGだってめんどいな
792 :
デフォルトの名無しさん :2013/12/27(金) 17:05:23.92
'#-------------------------------------- ' 管理者になーる Dim WMI, OS, Value, Shell do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each Value in OS if left(Value.Version, 3) < 6.0 then exit do Next Set Shell = CreateObject("Shell.Application") Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit loop '#-------------------------------------- Dim objShell Set objShell = CreateObject("Wscript.shell") objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) これでいくねぇ
793 :
デフォルトの名無しさん :2013/12/27(金) 17:42:47.28
Option Explicit '#-------------------------------------- ' 管理者になーる Dim WMI, OS, Value, Shell do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each Value in OS if left(Value.Version, 3) < 6.0 then exit do Next Set Shell = CreateObject("Shell.Application") Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit loop '#-------------------------------------- Dim objShell, ret Set objShell = CreateObject("Wscript.shell") On Error Resume Next If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu2\")) Then ret = objShell.Popup("このパソコンには【Baidu IME】はインストールされていません。", , "【Baidu IME】インストールチェック") Else On Error GoTo 0 ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , "【Baidu IME】インストールチェック", 4) Select Case ret case 6 objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) case else WScript.Quit End Select End If
794 :
デフォルトの名無しさん :2013/12/27(金) 17:44:41.34
popupが最前面に出ないどうしたらいいの?
795 :
桃白白 ◆9Jro6YFwm650 :2013/12/27(金) 18:59:26.91
WSCRIPT.ECHO CSTR(CREATEOBJECT("SCRIPTING.FILESYSTEMOBJECT").FOLDEREXISTS("C:\PROGRAM FILES\BAIDU"))
796 :
デフォルトの名無しさん :2013/12/27(金) 20:21:30.38
はい、桃白白の負け〜〜
別に勝負してるつもりはないんだけど むしろ美しいスクリプトを書いてニュー速にこのスレの実力を見せつけたいのだが
798 :
デフォルトの名無しさん :2013/12/28(土) 20:04:01.12
Option Explicit '#-------------------------------------- ' 管理者になーる Dim WMI, OS, Value, Shell do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each Value in OS if left(Value.Version, 3) < 6.0 then exit do Next Set Shell = CreateObject("Shell.Application") Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit loop '#-------------------------------------- Dim objShell, ret Set objShell = CreateObject("Wscript.shell") Dim winName: winName = "【Baidu IME】インストールチェック" On Error Resume Next If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then ret = objShell.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal) Else On Error GoTo 0 ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) Select Case ret case 6 objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) case else WScript.Quit End Select End If
結局、桃白白は、桃白白でしかなかったって事か
>>797 美しさにこだわるなら(if, If)などの表記ゆれをなくして、
6はvbYesにして、
レジストリの存在チェックとアンインストールとUACエスカレーションを
それぞれ別のスクリプトに書いてアンインストールするときのみUACのダイアログが
表示されるようにするべき。
メッセージはテキストファイルに書くべきかな。
メッセージは外部テキストファイルではなく.wsfにしてresourceタグの方がいいよ テキストファイルだと、CreateObject("Scripting.FileSystemObject")でFSOのインスタンス作って ForReading = 1の定数定義して、OpenTextFileでファイル開いて、ReadAllで読み込んでと たかがメッセージを読み込むだけにしては手間が掛かりすぎな気がする 更にメッセージが複数になれば、メッセージファイルもその数だけ必要になってディレクトリがゴチャるw 1つのテキストファイルにiniみたいなセッション分けして複数のメッセージを書くことも出来るが その場合、指定のセッションのみを読み出すのは更に煩雑になるし .wsf化してresourceを使う場合、コードではなくファイル内容としてみれば、xmlタグなどでややゴチャるが コード、つまりscriptタグの中だけ見れば、かなりスッキリする ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) ↓ ret = objShell.Popup(getResource("msg1"), , winName, vbYesNo Or vbSystemModal) のように簡略化出来るからね 因みに俺は、スクリプトが完成した以降も変更する可能性があるようなものはscriptタグの上 まず変更しないだろうってものはscriptタグの下に書いてる <job> <resource id="val1">AAA</resource> <script language="VBScript"><![CDATA[ ' コード ]]></script> <resource id="msg1">ほげ</resource> </job> ついでに、resourceの値は改行して書けばそのまま改行された状態で読み出せるし &#13;&#10;を入れれば、改行を含むメッセージを1行で書くことも可能 またXMLDOMを使えば、書き換えることだって出来る
>>801 どうせwsfにするなら、script要素で外部ファイル指定して変数読み込ませる手もあるよ
ソース改変していいのでより良いものを提示してください
>>802 手法としてはそれも含めて他にもいろいろあるが
ファイルが複数になったり、変更する時に別ファイル開いたりしなくちゃならないデメリットを考えると
優れた方法とは言えないね
汎用関数やクラスみたいに、複数のスクリプトで使い回しするようなメッセージ文ならそういうのもありかもしれないけど
wsfのresourceにメッセージって、vbsのpublic変数と何か違うの?
vbsをソフト、変数定義ファイルをiniなどで見立てて、include関数でも作った方がマシ
何勘違いしてるの?
808 :
デフォルトの名無しさん :2014/01/03(金) 08:45:25.65
wsfは使ったことがないですが、シンプルになりますか? シンプルが美しいということもあるかと
意味的には、resource文で定義する方が後々忘れないかもしれないねぇ
それぞれ何がシンプルになるかが違う
┌──── コードのシンプルさ
│┌─── ファイル内容(コード+コード以外も含めて)のシンプルさ
││┌── ファイル構成(実行に必要なファイル数)のシンプルさ
│││┌─ 再編集のシンプルさ(しやすさ)
││││
×△◎×:vbs+ベタ書き(
>>798 )
△○×△:vbs+外部テキスト(
>>800 )
◎△◎◎:wsf+resource(
>>801 )
◎○△△:wsf+外部script(
>>802 )
実行に必要なファイル数が増えるのは嫌だと言うなら、
外部テキストやインクルードスクリプトを使う方法は除外されるし
メッセージなんて一度書いたら再編集しないから編集しやすさはどうでもいいと言うなら
その要素は無視して比較して構わない
何を優先するかは人それぞれだからね
811 :
デフォルトの名無しさん :2014/01/03(金) 11:48:45.88
自分はよくこうやるのだけど、こっちのほうがシンプルだと思うけど、だめ? Dim resource:Set resource = CreateObject("Scripting.Dictionary") Call resource.Add("HOGEHOGE", "hello world") WScript.Echo resource("HOGEHOGE")
無駄だろ
>>811 クラスのプロパティみたいなものなら兎も角
定数的な要素の強いものには無駄じゃないかな?
Constで、ファイルの先頭に列挙する方がシンプルな気がする...色々な意味で
だよな ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) ↓ Dim resource Set resource = CreateObject("Scripting.Dictionary") Call resource.Add("HOGEHOGE", このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)") ret = objShell.Popup(resource("HOGEHOGE"), , winName, vbYesNo Or vbSystemModal) どう考えてもこういうケースでは無駄なだけ
シンプルを目指すならconstもやらない方がいいかな
>>810 外部テキストや外部スクリプトはあえてファイル分割してるわけで、
分割が無意味な場合は同一スクリプトの先頭部分に同内容を書けばいいだけだから、
優先度の違いというよりは設計の違いかもね
それ同じ事だよ
819 :
デフォルトの名無しさん :2014/01/03(金) 20:39:45.10
VBScriptの話ならまだ可愛げがあるがwsfの話とかさすがにちょっとね・・・ 効率やメンテにこだわって行き着いたのがwsfとかさすがに・・・ PowerShellでやれ
>>819 何度も同じルーチンを書くのも面倒くさいし、コピペしたとしても、コードが長くなって見づらくなるだけだし
普通の人は、wsfやhtaに流れるだろ
単一ファイルで完結できるのはメリットでそれを好んで使うこともしばしば
それはかなり大きいよね。 特にBaiduIMEのみたいに他人に使わせることを想定している場合は。
csvにメッセージを保存しておいてそれを読み出すというのはどうだろうか? というか誰かcsvリーダーを書いてくれないか?
愚考だろw テーブルデータならまだしも、メッセージを保存するのにcsvって、どう考えても適してない 因みにcsv読み込みはCreateObject("Excel.Application")で出来るし、 フリーのCOMも、サンプルソースも、ネット上に転がってる
>>824 テーブルデータってなんですか?
CSVはテキストエディタで見れるし簡易なデータベースとして最適だとおもうけど。
Excel.Applicationはエクセル入ってないと使えない。
ADODBはドライバないと読み込めない。
フリーのCOMは知らない。
だからVBSでCSVリーダを書いてくれないか?
826 :
デフォルトの名無しさん :2014/01/04(土) 20:42:42.43
resourceって定数なの? 5年前ならXMLスゲーって言ってたと思うけど、 いまどきはなんでもJSONマンセーじゃないの?
>>825 他人の成果物OKならExcelやADODB入れればいいじゃん
CSVなんてトラブルの種にしかならない
>>827 Excelは有料でADODBのドライバはダウンロードしてインストールせにゃならんでしょう。
VBSなら実行するだけですよ。再三言いますがVBSでCSVリーダ書いてくださいよ。
あなたの価値観なんてどうでもいいんですよ。私の価値観を最優先でお願いします。
>>828 どうゆうトラブルですか?あなたはいままでCSVでどうゆうトラブルに遭われたんでしょうか。
それを聞かないことには話がすすまんと思うのですよ。
CSVには一律的な仕様が無いってことも知らないのかな?
何勘違いしてるの?
誰もがRFCを護る理想郷で使うならね。
>>833 自分で使うものだからほかの人がどう考えてようとどうでもいい。
俺はcsvよりはtsvだけど それよりも多用するのがxmlだな
msgならcsvよりiniでよくね
iniはもう出てる
タグかなんかを記述した位置より下を暗号化するやつなかったっけ 処理部分を隠蔽してグローバル変数だけメンテナンス可能にする
デメリットが大きい割にメリットが薄い
842 :
デフォルトの名無しさん :2014/01/05(日) 14:08:41.69
>>842 それはVBAでの手法でしょ
VBSというか、そのホストであるWSH上では、VBSとJSの混在スクリプト書けるんだから
そのリンク先みたいなことやる必要もない
wsfでlanguage="JScript"を上にして、
JScript側:function jsonParse(s) { return eval('(' + s + ')'); }
VBScript側:Set objJSON = jsonParse("{ ""familyname"":""yamada"", ""personalname"":""tarou"" }")
の1行ずつで準備完了
あとは
MsgBox objJSON.familyname
で、そのリンク先のCreateObject("ScriptControl")を使った十数行のコードと同じ結果が出る
だからExcelとかのVBA上ではなくスクリプトでは、そのリンク先のやり方は無駄なだけだし
上記のように簡略化しても、件の1回しか使わないメッセージの格納としては、
>>811 の方法が
>>812-814 で指摘されてる通り無駄しかないのと一緒で、コードを使って格納する分コードが増えるだけで本末転倒
つまり、スクリプトではそのリンク先より遙かに簡単手軽に使える機能なので、別件なら使い所はあるけど、
件のメッセージの話においては実用性無し
生きててもさ、無駄なんだお きっと何しても上手くいかないんだお ただダラダラと生きてるだけだし いっそ本気で死んでしまいたいお ___ / \ / \ /:::::: ヽ |::::: i ヽ::: __/ /:::: \ |::: _) |:::: i \___、_____ ノ _)
845 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/05(日) 21:14:42.29
無駄じゃないよ 失敗した思い出が雪のように降り積もってレモンの皮のような苦味を覚えることができるよ 笑い者が居ないと寂しいよ
不倫はいかんぞ
847 :
デフォルトの名無しさん :2014/01/06(月) 12:24:34.71
Option Explicit Const winName = "【Baidu IME】インストールチェック" '#-------------------------------------- ' 管理者になーる Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7 Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Dim os, v Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each v In os If left(v.Version, 3) < 6.0 Then Exit Do Next Dim APL: Set APL = CreateObject("Shell.Application") APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit Loop '#-------------------------------------- Dim r Dim WSH: Set WSH = CreateObject("Wscript.shell") On Error Resume Next If IsNull(WSH.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal) Else On Error GoTo 0 r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) Select Case r Case vbYes WSH.Exec(WSH.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) Case Else WScript.Quit End Select End If
少し整理した。 もっと単純に美しくなるかな
Option Explicit Const winName = "【Baidu IME】インストールチェック" '#-------------------------------------- ' 管理者になーる Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7 Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Dim os, v Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each v In os If left(v.Version, 3) < 6.0 Then Exit Do Next Dim APL: Set APL = CreateObject("Shell.Application") APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit Loop '#-------------------------------------- Dim r Dim WSH: Set WSH = CreateObject("Wscript.Shell") On Error Resume Next If IsNull(WSH.RegRead("HKCU\Software\Baidu\")) Then r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal) Else On Error GoTo 0 r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) Select Case r Case vbYes WSH.Exec(WSH.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString")) Case Else WScript.Quit End Select End If
単にコードが短いことを美しいとする初心者的な方向性か 可視性、可読性が高いことを美しいとする中堅〜ベテラン的な方向性かで どこをどうするかは全然違ってくるけど、どちらの方向性でも、まだまだ出来ることはあるね
業務の見える化みたいな話でしょ。JSの難読化みたいな話ではない。
ちょっと聞きたいんですが mshta vbscript:execute("WScript.Echo(""あ""):Close") はなぜだめなんでしょうか? やりたいことはウインドウが有るか無いかの判断です mshta vbscript:execute("Set WS=CreateObject(""WScript.Shell""):R=WS.AppActivate(""メモ帳""):Close()") このRを取得したい(バッチの標準出力として得たい) ローカルにファイルを書き出せない状況で、一行VBSに纏める必要があるのですが 何かいい方法があれば教えてください
バカなことやるのが好きな人って居るよね
855 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 20:12:59.34
mshta vbscript:execute("Set SH=CreateObject(""WScript.Shell""):SH.Run ""notepad"": SH.AppActivate ""メモ帳"":SH.Run ""ping localhost -n 1"",0,True:SH.SendKey ""TEST"":Close")
856 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 20:29:56.95
function makesendkeysstring(str) dim i,c,s for i=1 to len(str) c=asc(mid(str,i,1)) if c=chr(13) then s=s&"{ENTER}" elseif c=chr(8) then s=s&"{TAB}" elseif c="+" or c="^" or c="%" or c="~" then s=s&"{"&c&"}" else s=s&chr(c) end if next makesendkeysstring=s end function
857 :
デフォルトの名無しさん :2014/01/07(火) 20:35:44.05
間違い修正 function makesendkeysstring(str) dim i,c,s for i=1 to len(str) c=asc(mid(str,i,1)) if c=chr(13) then s=s&"{ENTER}" elseif c=chr(8) then s=s&"{TAB}" elseif c="+" or c="^" or c="%" or c="~" or c="{" or c="}" or c="[" or c="]" then s=s&"{"&c&"}" else s=s&chr(c) end if next makesendkeysstring=s end function
未だにこんな低次元なことやってるやつ居るの?
WScriptが使えないのはWSHとHTAの違いによる
860 :
852 :2014/01/09(木) 01:27:58.80
>>853 そのサイトはくまなく見ましたが参考になる記事はありませんでした
>>855 実行エラーでてますん
色々やってますが手詰まりです
詳しい方、助けてください
861 :
デフォルトの名無しさん :2014/01/09(木) 01:30:08.02
SendKey→SendKeys
マニュアル使えよ、色々はかどるぞ
mshta "javascript:WSH=new ActiveXObject('WScript.Shell');WSH.Run('notepad');R=WSH.AppActivate('メモ帳');alert(R);close();"
そもそもAppActivateに戻り値あるの?
fso.getstandardstream(1).writeline(R)
みんなで中二病に付き合うスレだなここ 一番の中二病は最近出てきてないが
中二病、言わんとしていることは分かるが、どこかの研究会じゃあるまいしその見方は相応しくなく、それこそ中二病的かと。 それにこのスレだけでなくどこもそう大差ないだろうし、わざわざ言うほどのことでもなかろう。と、桃缶野郎が言いたげにしてると思われる。
869 :
852 :2014/01/10(金) 02:23:02.99
結局無理ってことなんでしょうかね? AppActivateに関わらず一行バッチで戻り値を得るには 他に何か手段は無いものでしょうか
俺は適材適所でCOMなりアプリなりを作っちゃうから 相応しくないもので相応しくないことをなんとかやる努力とかはしないから解らんな 自作アプリを持っていって入れることが出来ないようなところでは バッチやスクリプト書くこと自体は可能であっても、それは「外部メモリ」ではなく「知識」を介するという違いだけで 新たなプログラムを導入するって本質は変わらないので、自作アプリ入れちゃいけないPCでは バッチやスクリプト書くのも控え、どうしても必要ならアプリ導入の許可を取るのがまともな奴のやり方だし そういうケースではなく自由にできるPCなら、一行バッチに無駄に拘るのは愚考でしかないからね
なんつうか... htaで呼び出す理由がわからん... コンソールに出力させるなら、htaじゃないと思うのだが...
>>869 何がしたいのか意味不明なので、答えようがない。
みんな努力してくれてるのに失礼。
最低でも桃缶みたいに笑いも提供しないと
意味もわかってないくせに返信するヴァカがいるスレ てめえのほうがよっぽど失礼だろうが死ねよ
>>872 ちゃんと書いてありますよね。
>やりたいことはウインドウが有るか無いかの判断です
意味不明ってバカじゃないですか?バカに回答を求めてないので
返信してこないでください。すごく迷惑です。
うわあ、しょーもな
ウィンドウがあるどうかの判断させたいだけなのに なぜhtaでないとダメなのか なぜ一行じゃないとダメなのか なぜAppactivateの戻り値じゃないとダメなのか 意味不明だと言っているのにヴァカ呼ばわり 今時の若い子は短気で人の時間使ってやってもらってる意識全然ないのな
ま、エスパー回答を求めているなら エスパーに任せるは、オレはエスパーじゃないから無理 さようなら
878 :
869 :2014/01/11(土) 09:41:39.50
>>872 あるアプリケーションを無人インストールしたいのですが
条件として、ローカルに書き込めない、セットアップ中はウインドウが出ない、ネットワークから実行
インストーラ自体は tasklst | find "setup.exe" で監視できるのですが、最後に OK ウインドウが出てきてしまいます
で、このOKがあれば押しに行きたいのが相談内容の本当の趣旨なわけですが
セットアップ中に外部アプリが起動するとインストーラーがこけるので、UWSCのような外部アプリを用いれません。
ウイルスチェックみたいな感じととらえていただければOKかと思います
そこで苦肉の策としてバッチからウインドウを触りにけ、なおかつもともとOSに入っているWSHを利用したいと思ったわけです
なお、ローカルディスクにはポリシーがあたって書き込み制限されており、何一つファイルを作成できません
バッチでVBSファイルを作成して・・と言う訳にもいかない状態なわけです
ネットワークドライブに入っているバッチを起動する
標準で入っているアプリ以外を利用しない
いつ出てくるかわからない OK ボタンを押したい
なお、OKが出てもタスクは残り続けるので (これが本当に厄介)
OK押したかどうか、ウインドウが出たかどうかでループを抜けねばなりません
無限に押し続けるだけのスクリプトでは意味が無いです
start "" install.exe
:loop
tasklist | find "install.exe"
if %errorlevel%==1 goto loop ;↓一行scriptではこれがエラー
mshta vbscript:execute("Set WS=CreateObject(""WScript.Shell""):R=WS.AppActivate(""TITLE""): WScript.Echo(R) :Close()") | find true
if %errorlevel%==0 goto loopend
goto loop
別の手段があるならそれはそれで歓迎です
> 別の手段 つ まともなプログラム言語
バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。 バカに回答を求めてないので返信してこないでください。すごく迷惑です。
>>876 は意味がわかったところで答えられないという・・・
話を混ぜっ返しただけのバカ。
質問の前提と内容を区別できないアスペ老害が傲岸不遜な態度をとるスレ。
>>878 なんていうエラーが出てるの? 標準出力に出力するのはこうじゃないかな。
mshtaから標準出力へ | さすらいのプログラマ - 楽天ブログ
plaza.rakuten.co.jp/u703331/diary/200704200001/
スパイウェアをうまくインストールしたいって話?
>>884 Q「
こうしたいんですけど・・・
」
>>883 「
(おれにはぜんぜんわからない・・・そうだ!Qがやろうとしてることは
悪いことなんだ、そう考えればおれはわからないから答えないんじゃなくて
悪いことに加担するのが嫌だから答えないと思われる・・・ようし)
スパイウェアをインストールしたいって話?
」
886 :
869 :2014/01/11(土) 13:59:01.56
このインストーラーが
@ インストーラー自体はローカルに保存されていて、バッチはネットワーク上から実行する。
(ローカルにもネットワークにもファイルが書き込めない)
A Install.exe がファイルを配置、ウインドウは見えない
B 配置されたexeファイルが起動してメモリを監視
C インストーラーが cscript を起動して、レジストリ等の設定を行う
D 操作の最後に 「操作が完了しました [OK]」 のウインドウが出る
E Install.exeはシャットダウンまでプロセスが残る
F 再起動後、ユーザーが間違って実行しないように手動でInstall.exeを消す必要がある
(これはRunOnceのレジストリにバッチを書き込むことで対策できる)
よって、インストール+修了確認+再起動を行いたいのですが、[OK] のボタンを押した事を確認したい (ウインドウの確認がしたい)
というバッチを作りたい訳です
>>879 外部プログラムはセットアップ中にみつかるとエラーが出てしまいます
あと、874は私ではありません・・・
mshta vbscript:execute では WScript のCreateObjectメソッドはそのまま利用できるのですが
Echo や Quit 、 Sleep メソッドを利用するにはどうすればよいのでしょう
そもそも、WScriptオブジェクトは、WSH側で用意されているオブジェクトでHTAからは扱えない 扱いたければ、何らかの方法でWScriptオブジェクトを取得しなければならない 以上
>>887 だからその方法を聞いてんだろうが・・・どんだけ無能なんだよ
>>888 コンソールに出力するだけなら既に答えは書かれてるだろ
その上で、WScriptオブジェクトは使えないと教えられてるのに、まだ聞くのか?
...どんだけ無能なんだよ
>>889 >何らかの方法でWScriptオブジェクトを取得しなければならない
これの方法を聞いてんだろ。さっさと言えよ。
お前いまんところわかりきったことをぐだぐだ言ってるだけで
何のアドバイスにもなってないぞ。いい加減にしろよ。さっさと言え。
A「 テストでいい点がとれません。どうしたらいいでしょうか? B「 テストでいい点をとるには何らかの方法でテストでいい点を取らなければならない。以上。 バカかと
例えが不適切で、自分のバカさをアピールしてるだけだと気付いてないっぽいw
893 :
869 :2014/01/11(土) 21:10:40.31
>>889 すみません、そのコンソールに出力する方法を聞いているのですが
これまでのレスで具体的な回答をまだ得ておりません
どれが答えに該当する(もしくは近似する)レスだったのでしょうか。
>>888 =890?
立場的に擁護していただけるのはありがたいのですが
私がお願いしている立場なのに喧嘩腰に要請しているみたいな流れになってしまうので
ここは一つ穏便にお願いします。
しかし言いたいことを一番理解していただけているようで助かります
>>893 >>866 つーか、2chの発言を裏も取らずにそのまま鵜呑みにするのか?
取りあえず、ググレ粕
解決いたしましたのでご報告します 今回たどり着いたコマンドは MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():") になります。 これはこのままではエラーになるのですが MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():") | MORE とやると結果を出力できるようです MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(CreateObject(""WScript.Shell"").AppActivate(""タイトル"")):close():") ^ | MORE | FIND "True" >NUL ECHO %ERRORLEVEL% これでウインドウの判断が出来ました このリファレンスはどのサイトにも記載が無かったので もし今後同じようなことをやりたい方が出たら参考にしてください アプリ非導入環境での完全無人インストールに役立つかと思います 皆様ありがとうございました
>>894 これまではワンコマンドのみで標準出力され、解決すると思っていました
GetStandardStreamで出力してもエラーになります
MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():")
を実際にやってみてください
このエラーが |MORE で取り出すことでエラーにならずに値を取得できる、という点は
どなたも指摘していただけなかったと思います
解決の糸口になったという意味では大変感謝しています
ありがとうございました
なんかこいつ腹立つな 恩着せがましいっつうの?すなおに感謝の言葉だけ言ってればいいのに台無しだな
感謝の振りした自慢だ、ナルっぽいからイラっと来る
>>895 >参考にしてください
すげえ偉そう、傲岸な態度というのはこういうことをいうのだろうな
おかげさまで解決しましたでよさそうなところだなw リアルでも嫌われてるんじゃねwだからこんなところで質問してるんだろ
一番問題なのは、
>>866 が2日も前に答えを出してくれてるのに見逃してるところだろ
真剣に学ぼうとして無いから、答えを示されても気づきもしないのさ
>>894 になぜ「ググレ粕」と言われたのかも理解してないと思われる
元から「俺すげー」がしたかっただけでしょ でも大したことじゃないので周りの反応が冷めてるから 自画自賛して自己満足しましたってオチw
あーよくあるよねwそういうことw
GetStandardStreamの詳細情報 : Vector ソフトを探す! www.vector.co.jp/soft/winnt/prog/se409273.html - キャッシュ - 類似ページ VB6、EXCEL VBA、IE、HTA、WScriptなどのWindowsアプリから標準入出力を使用 する方法.
>MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(CreateObject(""WScript.Shell"").AppActivate(""タイトル"")):close():") ^ | MORE | FIND "True" >NUL > ECHO %ERRORLEVEL% MOREは要らないし ふつうはこっち for /f in ('mshta
さて、誰か口直しにボケて
>>906 自分がボケてるじゃん
と、906がボケてくれたからツッコミ入れてみる
出オチかよorz
910 :
デフォルトの名無しさん :2014/01/20(月) 05:22:29.88
桃白白も逃げ出すくらい本性をむき出しにしてきたな クソ住人共
桃白白のレベルでは、ついて行けなかっただけじゃん
912 :
デフォルトの名無しさん :2014/01/21(火) 13:49:06.22
baidu IMEの話に戻すけど、どうやらアンインストールしても HKCU\Software\Baidu\ このレジストリは残るっぽい。なのでアンインストールしたあとも反応してしまう。 どういう改造をしたらよいと思います?
自分で消しちまえ。
レジストリは下記のものだけのようなので
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME
を利用しないといけませんかね
ただHKLM\SOFTWARE\Baidu\IMEJPのゴミって残しておくべきかな
http://blog.livedoor.jp/blackwingcat/archives/1781259.html HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\BaiduType Converter(JP)
HKCU\Keyboard Layout\Preload
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME
HKLM\SOFTWARE\Baidu\IMEJP
HKLM\SOFTWARE\Microsoft\CTF\TIP\{3A5831D5-489E-4A76-91CA-A69A89ACAF38}
HKCR\CLSID\{3A5831D5-489E-4A76-91CA-A69A89ACAF38}
HKCR\subinstall.btod
HKKM\SYSTEM\CurrentControlSet\Services\BaiduJP_IME_Service_3.3.2.6
HKKM\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_BAIDUJP_IME_SERVICE_3.3.2.6
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0210411
916 :
デフォルトの名無しさん :2014/01/21(火) 15:24:47.75
Option Explicit Const winName = "【Baidu IME】インストールチェック" Const regKey = "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\" '#-------------------------------------- ' 管理者になーる Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7 Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Dim os, v Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each v In os If Left(v.Version, 3) < 6.0 Then Exit Do Next Dim APL: Set APL = CreateObject("Shell.Application") APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit Loop '#-------------------------------------- Dim r Dim WSH: Set WSH = CreateObject("Wscript.Shell") On Error Resume Next If IsNull(WSH.RegRead(regKey)) Then r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal) Else On Error GoTo 0 r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _ "【Baidu IME】をアンインストールしますか?" & vbCrLf & _ "(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal) Select Case r Case vbYes WSH.Exec(WSH.RegRead(regKey & "UninstallString")) Case Else WScript.Quit End Select End If
とりあえずこんな感じで、問題はないけど
918 :
デフォルトの名無しさん :2014/01/21(火) 15:43:24.43
他のスレとか見てたら、とりあえずBaidu IMEはもうよくてhao123とかを駆逐したいみたいな話になってる 駆逐バッチ作る?
タオパイパイ元気出して
920 :
デフォルトの名無しさん :2014/01/22(水) 20:37:06.34
桃白白、死なないで
921 :
デフォルトの名無しさん :2014/01/24(金) 17:33:07.14
おい、桃白白
では、御葬式を始めます
なんみょうほうれんげーきょー なんみょうほうれんげーきょー なんみょうほうれんげーきょー チーン♪
桃白白さん、何で死んだんですか いつも楽しいAA貼って2ちゃんねらーを和ませてくれたことを忘れません 日本のIT業界は貴重な人材派遣を失った ご冥福をお祈りします
925 :
デフォルトの名無しさん :2014/01/24(金) 20:28:23.78
ゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
俺たちは貴重な玩具を失った
927 :
桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 20:18:37.73
桃白白の右手がピンクに光る!コードを書けと轟き叫ぶ!! |┃三 / ̄\ |┃ | | |┃ \_/ ガラッ. |┃ __|__ |┃ ノ// ./:::\:::/:::\ うおおおお!!! |┃三 / <●>::::::<●> \ |┃ / (__人__) \ |┃ | l;;;;;;;l | |┃三 \ l;;;;;;;l / |┃三 / ̄ ̄ヽ`ー'ノ ̄ ̄ ̄\
こすりすぎだろ
929 :
桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 20:21:43.32
自分が欲しいだけ? 違うならまず言い出しっぺから提示しよう まぁググればサンプル有りそうだけどね 言い出しっぺが提示出来なければ、この話は無かったということで
931 :
桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 21:52:58.73
>>930 いまのところは桃白白がほしいだけだよ。
でもみんなでいっしょに作ろうよっていう桃白白の
この指とまれに賛同してくれるひとが現れたらみんなの目標になる。
みんなで力を合わせて一つのものを作り上げる、それってとっても
すてきなことだと思う。作るのを嫌だと思ってるひとに無理強いして作って
もらおうとは思ってないんで作りたくないならそれはそれで別にいい。
考え変わったらまたレスしてよ。桃白白待ってる。
結局、綺麗事並べても本質は物乞いかよw さて、物乞いに踊らされて提供してくれるおマヌケさんは出てくるか否か、、、
二十年後に消えてなくなるような言語でそんなマイナーな符号化しても……すぐ使えなくなる予感がする
934 :
桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 22:18:04.01
936 :
デフォルトの名無しさん :2014/01/25(土) 22:40:42.55
ネタが古くさい。もっといまどきのnode.jsと連動してなんかやってみね とかネタふれよ
937 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 14:55:27.17
>>933 Base16はそんなにマイナーでもないと思うよ。
>>935 Base64じゃないよ、Base16だよ。
>>936 桃白白はnode.jsにまったく興味ないから桃白白がそういう話をふるのは
一生ないけど、
>>936 がそういう話をしたいと思ってるのなら自分で話をふればいいと思う。
こういう話をふれと他人に命令するのは逆効果じゃないかな。心理的リアクタンスっていうの?
そういうのもあるからさ。人間は感情の生き物だからそういうところには気を使わないと。
興味がある人がいたとしてもこいつとは話したくないと思ってしまうかもしれないよ。
命令っていうのは上位の人間が下位の人間に行うものだから命令口調でものを言うっていうのは
自分を上位として扱えと相手に伝えることになるんだよね。ネットの議論でそういう関係って
めんどくさいだけだからこいつと絡むのはやめとこうとかそういうことになると思うんだよね。
>>936 は誰かが話し振ってくれるのを受け身でじっと待ってるんじゃなくて自分から
積極的に動くべきだと思う、もちろん対等に議論するっていう前提でね、頑張って、桃白白応援してるよ☆(ゝω・)vキャピ
もう終った話なんだからどうでもいい
939 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 17:34:17.32
皆解ってることだから、一人くらい解ってない奴が居ても改めて説明する必要なし
941 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 18:43:23.81
>>940 皆わかってることをどうやって知ったの?
じつはここに書き込んでいる人たちはLINEでお友だちの間柄で
俺が言ったことわかるよねと確認したとか?もしそうならおつかれさまです。
>>940 みんなわかってるけどお前だけわかってない
構わず放っておこうというのもみんなわかってる
943 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 18:50:39.50
944 :
デフォルトの名無しさん :2014/01/26(日) 19:38:23.29
俺も解ってるよ( ̄ー ̄)ニヤリッ
945 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 19:39:36.63
君一人が解ってないことを
947 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:19:05.75
>>946 「君一人が解ってない」
この解ってないという動詞を修飾する対象格は何かと聞いてるんだよ。
君は桃白白が何を聞いているのかもわかっていないじゃないかみたいなw
948 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:22:47.87
へたに自分はわかってるんだ、自分は賢いんだみたいな態度をとると 自分の行動のハードルを高めて恥かくだけだから、自分は頭が悪いんだみたいに したてに出るのが得策なんじゃないかと思うんだよね。昔のひともきっと そう考えて日本語に謙譲表現とかが生まれたんじゃないかと桃白白思います。ありがとうございます。
949 :
デフォルトの名無しさん :2014/01/26(日) 21:28:05.22
俺もわかっています。
950 :
桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:29:50.50
桃白白はわかっていません
951 :
デフォルトの名無しさん :2014/01/26(日) 21:31:05.90
じゃあ俺もわかりません。
遊ばれてることに気付かずにマジで返してる本人と 皆で弄って遊ぼうって趣旨を理解して弄ってる奴等
どうでもいい
954 :
デフォルトの名無しさん :2014/01/26(日) 23:03:43.83
復活してそうそう元気だな
ずっと元気だったじゃん 別コテで
956 :
ピラフ :2014/01/27(月) 23:12:34.24
配列の10から20の間にだけ値を入れたいときってあるじゃん? そういうときに使える超素敵クラスをピラフ作ったからこれ 使えばいいと思うよ。 Class DifferenceArray Dim Data Dim First Sub Initialize(Size) ReDim Data(Size) End Sub Public Default Property Get Item(Index) Item = Data(Index - First) End Property Public Property Let Item(Index, Value) Data(Index - First) = Value End Property Sub Copy(Arr, Lower, Upper) First = Lower Dim i For i = Lower To Upper Item(i) = Arr(i) Next End Sub End Class
桃白白って、なんで毎回使えないクラスとか貼って自慢げになってるんだ?
960 :
ピラフ :2014/01/28(火) 22:48:06.51
>>957 ピラフが魂こめて書いたコードが動かないわけがないでしょうが!
本人の想定どおりには動いているんだろうけれど、 仕様がまともじゃないのでまともに動きません。
「仕様: 俺のやりたいことをやる」 なら合致してる いずれにせよゴミ
963 :
ピラフ :2014/01/29(水) 06:07:24.34
>>961 使い方間違ってんじゃないの?どう使ったの?
使い方間違ったら、何をどう間違ったのか表示するのが本物 まあ桃白白がそのレベルに達してないのは知ってるけど
965 :
ピラフ :2014/01/29(水) 22:55:52.64
一度だけセットできるプロパティ Class OneSet Dim Already_ Dim Value_ Sub Class_Initialize Already_ = False End Sub Property Get Value Value = Value_ End Property Property Let Value(pValue) If Already_ Then Err.Raise 1 End If Value_ = pValue Already_ = True End Property End Class
>>963 コードを評価しようにも、評価するレベルに達していない
取りあえず、Copyメソッドを使った場合に、メンバー変数Dataが配列であるという保証がどこにもない
>>965 残念ながら、想定通りには動かないだろう。
968 :
ピラフ :2014/01/29(水) 23:10:43.48
>>966 InitializeメソッドでReDimするからDataは配列だよ。
>>967 動くよ。だから残念じゃないんだよ。
>>956 白桃のコードは嫌いじゃないよ
白桃は嫌い
コードコジキにおいそれとくれてやる所が
>>968 Initializeメソッドが、Copyメソッドよりも先に使われるとは限らない
あと、Already_にFalseを代入すれば、何度でもセット出来るよ
971 :
ピラフ :2014/01/29(水) 23:25:44.63
>>970 ズボンはく前にパンツはくとは限らないといってるようなもの。
ズボンはく前にパンツはけばいいし、
InitializeメソッドをCopyメソッドより先に使えばいいよ。
_が付いてるってことはプライベートな変数だから
触っちゃいけない物だなって予想できるよ。
>>971 ズボンをはく前にパンツをはくとは限らない
というより、パンツをはかずにズボンをはきたいんだからしょうがないだろ?
パンツをはかせたいなら、パンツをはかなきゃいけない状況にすればいいじゃん
_がついたらプライベートなんて初耳だね
Privateと宣言しなければ、Publicであるとみなされる
それがVBScriptのルール
>>972 パンツを脱ぎたくなるような状況を優しく教えてあげてよ
975 :
ピラフ :2014/01/30(木) 05:28:11.79
>>972 たいていの人はパンツをはくから問題ないと思ってます。
パンツはかないのはただの変態だと思ってます。変態のために
ピラフはコード書いてるわけじゃないんです。変態は嫌い。
_が付いてたらそれは触っちゃいけない可能性があるってことを
今日から気をつけるようにすればいいと思うよ。_書く時点で
あれ、これ直接参照したらまずいんじゃないだろうかと思えばいいよ。
アクセス修飾子を覚えられたのならこれもすぐ覚えられると思うよ。
>>975 パンツは履かない主義だが、褌つけてるからOK
> _が付いてたらそれは触っちゃいけない可能性がある
ってことは、触らないと使えない可能性もあるってことじゃん
設計ミスったなプークスクスっていいながら 割り箸でつまむ感覚でいるのがいいよ
手書きのアンケートを1万件位入力してみたら、アクセス修飾子の重要性が理解できる まあ、どちらかというと、人間という生物に絶望できると言ったほうが正確だがな...
> 手書きのアンケートを1万件位入力してみたら そのレベルの話なのかよw
980 :
ピラフ :2014/02/01(土) 14:02:59.15
アンケートとアクセス修飾子にいったいどういう関係が……
>>979 まじで、そのレベルの話だよ
>>980 やってみれば分かるよ
一つ選べって質問に複数選ぶなんて当たり前、質問内容と違う回答を自由記述欄に400字詰め原稿用紙1〜2枚程度書いてたりするし
新たな選択肢を勝手に付け加えて○付けてたりとか
人間ってさ、その程度なんだぜ
最低限アクセス修飾子位つけてないと、どんな責任を負わさせるか分かったもんじゃない
アクセス修飾子というのは仕事とプライベートを厳格に切り離すという文化に基づくもので サービスなんとかの名の下にプライベートを捧げつくす文化では機能しない
983 :
ピラフ :2014/02/01(土) 15:17:08.49
底辺の作業者がアクセス修飾子にこじつけてむりやり愚痴をいってるようにしか思えない ピラフはそういう大人にだけはなりたくない!ピラフずっと子どもでいい!!
子供というか、幼稚なだけというか まだまだアクセス修飾子の本当の有効性も、まるで解ってないし
985 :
ピラフ :2014/02/01(土) 16:00:00.16
アンケートで質問内容と違う回答を書く。 VBScriptのスレでアンケートについて書く。 やってることはさほど変わらないのじゃないだろうか。 書いた本人は関連があると思っている。しかし、読む人間は 関連がないと思っている。ゆえに質問と違う回答だと思えてしまう。 その程度だと思う前に、相手の立場に立って物事を考えていく スーパーソフトハートが必要なのである。ピラフこの論文提出して社会学の博士号もらってくる。
986 :
ピラフ :2014/02/01(土) 16:04:29.22
桃白白って文章に特徴があるから コテ変えてもすぐ解るよね
>>985 > その程度だと思う前に、相手の立場に立って物事を考えていく
無理だね
人間なんて、自分の事しか考えちゃいないよ
989 :
ピラフ :2014/02/01(土) 16:54:21.73
なんか中二っぽいw
第二級戦闘態勢命令に従い、チューニー兵器のアクセスロックを解除します
991 :
デフォルトの名無しさん :2014/02/01(土) 17:46:50.83
誰もアクセスしてこないね、兄ちゃん。
まぁこのスレ限定のふなっしーみたいやつだよな桃缶って
うまい例えだw
994 :
ピラフ :2014/02/03(月) 05:30:12.26
ピラフ、恋人と別れたんだ。4年付き合ったんだけどね、別れようって言われて
ピラフがんばったんだけど無理だった。最初あったときはすごい器が大きい人
っていうか、ピラフのこと認めてくれる人でピラフそれまで尊敬されたりとか
されたことなかったから、不思議な感じだった。いろんな意味で大きい人だなあ
って思える人だった。ピラフも尊敬してたし、向こうもピラフのこと尊敬して
くれてる感じでお互い一緒にいることが心地よかったんだよね。でも4年たって
それが当たり前になって新鮮味がなくなったっていうの、変に落ち着きすぎちゃってさ、
結果別れることになったんだよね。でもいまでも大きい人だなあっていう気持ちは変わってない。
それ以来、ハンドル名を桃白白からピラフに変えたの。もしさ、人間的に大きくて
自分に自信があるっていう人いたら画像うpしてくれない?
ちなみにこれが元彼
http://blog-imgs-60.fc2.com/w/a/r/warotasokuhou/min_otintin_003_20130802225153.jpg
>>994 > 994 名前:桃白白 [] 投稿日:2014/02/03(月) 05:30:12.26
> 桃白白、恋人と別れたんだ。
まで読んだ
次の患者さんどうぞ〜
チャンスを与えたんだから取るべき時に1000を取りなさいよ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。