投稿

6月, 2017の投稿を表示しています

PCViewでPC情報を取得しつつ別のプログラム動かすやつ

とりあえず機器とかソフトの情報がまったく整理されていなくて オレのせいにされそうなので、PCViewで情報を採取しつつ台帳整理を あるていど効率化させようと企ててスクリプトを作りました。 本当はスタートアップに仕込んでおけば起動時にデータを取得してって できて便利がいいんだけどまぁ、今勤めているところはなぜか ボタンを押させるというなぞの習慣が好きなのでVBSを起動すれば PCViewで取得した情報が共有フォルダに保管されます。 Const vbHide = 0 'ウィンドウを非表示 Const vbNormalFocus = 1 '通常のウィンドウで、最前面のウィンドウ Const vbMinimizedFocus = 2 '最小化で、最前面のウィンドウ Const vbMaximizedFocus = 3 '最大化で、最前面のウィンドウ Const vbNormalNoFocus = 4 '通常のウィンドウで、最前面ではない Const vbMinimizedNoFocus = 6 '最小化で、最前面にはならない Set objWShell = CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") strCudir = objWShell.CurrentDirectory strPath = "保存先フォルダ" If Not FSO.FolderExists(strPath) Then strPath = strCudir & "\" End If pcViewini = strCudir & "\tool\PCView.ini" If Not FSO.FileExists(pcViewini) Then WScript.Quit End If 'フォルダに接続不可の場合はカレントディレクトリにファイルを保存する。 ForReading = 1 ForWriteing = 2 Set objTextFile

レジストリの値を取得するスクリプト

書込みがあれば読込めとかいう無茶振りもある・・・。 仕方がないので色々と探しました。 まんまパクリですが・・・・・。 とりあえず可変値でも何とか取得できるし、これで値は取れそうです。 後はCSVに吐き出させてそれをEXCELに取込ませるという面倒なことを しないといけない。やめてくれよなぁこういうの 'refer 'https://gallery.technet.microsoft.com/scriptcenter/d9d76585-4338-400e-a7a5-48ad6664f496 'https://stackoverflow.com/questions/18098319/iterate-through-registry-subfolders 'http://www.tek-tips.com/viewthread.cfm?qid=1162228 Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." const REG_SZ = 1 const REG_EXPAND_SZ = 2 const REG_BINARY = 3 const REG_DWORD = 4 const REG_MULTI_SZ = 7 '読取りたいキーのパス指定 strOriginalKeyPath = "SOFTWARE\*****" '関数呼出 FindKeyValue(strOriginalKeyPath) '------------------------------------------------------------------------- ' レジストリキーを再帰的に取得する。 '------------------------------------------------------------------------- Function FindKeyValue(strKeyPath) Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_

IEのセキュリティ設定をいじくるバッチ

まぁかなり頻出ですがIEでアプリ用に設定しないといけなくて クリックOnlyで処理したかったので色々と調べてみて作ってみた。 ローカルイントラネットの設定いじくるのとActiveX関連をいじくるのと 互換表示設定をいじくっています。 というよりそういう設定しないと動かないアプリの組み方辞めてください。 頼むから・・・。 挙動が微妙に他と違うのでIEとかEdgeには苦しめられます。 @echo off set REGROOT="HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap" reg add %REGROOT% /f /v "AutoDetect" /t REG_DWORD /d "0" reg add %REGROOT% /f /v "IntranetName" /t REG_DWORD /d "1" reg add %REGROOT% /f /v "ProxyBypass" /t REG_DWORD /d "1" reg add %REGROOT% /f /v "UNCAsIntranet" /t REG_DWORD /d "1" rem IEのローカルイントラネット設定(*ドメイン指定) set REGROOT="HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range1" set REGROOT="HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\対象ドメイン" reg add %REGROOT% /f /v "*" /t REG_DWORD /d "1" rem スクリプトを実行しても安全だとマークされていない activex コントロールの初期化とスクリ

ファイル名変換スクリプト

ちょこっと仕事で作業しているときにかったるくなったので ファイル名置換を一気にしてくれるツールを作成してみた。 というより、ファイル名変更が必要ないようにした方がいいのかも しれないけど、そうすると色々と面倒ごとがあるのでツールの作成を選びました。 といっても手作業が完全排除できないところが悲しい。 ツールについてはjsというのも考えたけど、諸般の事情でVBSに したった。ちなみにinitPathのところをネットワークパスにすると ネットワークの共有フォルダもフォルダ選択できたんでびっくり しょせんへっぽこなのでネットの切り貼りです。 いまだに再帰処理がうまくかけませぬ。 コレぐらいさくっと作れればいいけどなぁ。結局テスト込みで 3時間かかってるよトホホ Option Explicit Option Explicit Dim objShell Dim wsh Dim initPath 'フォルダ指定 initPath = "C:" Dim targetFolder Set objShell = WScript.CreateObject("Shell.Application") If Err.Number = 0 Then Set objFolder = objShell.BrowseForFolder(0, "対象フォルダの選択", 16, initPath) If Not objFolder Is Nothing Then targetFolder = objFolder.Items.Item.Path else WScript.Quit End If Else WScript.Echo "エラー:" & Err.Description End If Dim objFileSys, objFolder, objFile Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFileSys.GetFolder(target