Archive for the ‘Tips’ Category

以下の設定を行うことでキーボードの右Ctrlキーを押しながらScrollLockキーを2 回押すことにより、メモリダンプファイルを作成できます。

□PS2キーボードの場合
1. レジストリ エディタを起動する。

2. 次のレジストリ サブキーを見つける。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : CrashOnCtrlScroll
  データ型 : REG_DWORD

□USBキーボードの場合

1. レジストリ エディタを起動する。

2. 次のレジストリ サブキーを見つける。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : CrashOnCtrlScroll
  データ型 : REG_DWORD

以前にSystemアカウントでプログラムを起動する投稿をしましたが、
WSHにて書いてみました。(以外にあっさりでしたが…)

今回のコードはとりあえず、コマンドプロンプトを起動します。
コマンドプロンプトさえ起動すれば、そこで実行するコマンドは全てSystemアカウントで実行されます。

Option Explicit
  Dim OBJ_WshShell    'WSH Shell Object
  Dim STR_Time        'String Object

  Set OBJ_WshShell = WScript.CreateObject("WScript.Shell")
  STR_Time = DateAdd("n", 1 , Time())

  OBJ_WshShell.run "at " & STR_Time & " /interactive" & " cmd /K",0

Scriptのダウンロードは こちら です。

ATコマンドを利用し、Systemアカウントでプログラムを起動する方法。

コマンドプロンプトにて、以下のコマンドを実行する。

at xx:xx(直近の時間) /interactive cmd.exe

atコマンドが成功すると、systemアカウントが起動したコマンドプロンプトが起動される。

起動したコマンドプロンプトにて実行したいコマンドを実行すると、Systemアカウントで実行できる。


Shellを利用し、WindowsXP、Vistaでファイル圧縮を行います。

例では、”C:\test.txt” を”C:\test.zip” に圧縮しています。

Option Explicit

 
  MakeZip "C:\test.txt", "C:\test.zip"

Sub MakeZip(STR_TargetFile ,STR_SaveFile)
  Dim OBJ_FSO
  Dim OBJ_ZIP
  Dim OBJ_Shell
  Dim ARR_Hex
  Dim STR_Temp
  Dim i

  Set OBJ_FSO = CreateObject("Scripting.FileSystemObject")
  ARR_Hex = Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

  For i = 0 To UBound(ARR_Hex)

    STR_Temp = STR_Temp & Chr(ARR_Hex(i))

  Next

  Set OBJ_Zip = OBJ_FSO.CreateTextFile(STR_SaveFile, True)
  OBJ_Zip.Write STR_Temp
  OBJ_Zip.Close

  Set OBJ_Shell = CreateObject("Shell.Application")
  OBJ_Shell.NameSpace(STR_SaveFile).CopyHere(STR_TargetFile)

  WScript.Sleep 3000
  Set OBJ_Shell = Nothing
End Sub

Scriptのダウンロードは こちら です。

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.gif”というファイルにリクエスト結果を保存する例です。


Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  Const adTypeBinary = 1 'Binary
  Const adTypeText   = 2 'Text

  Const adSaveCreateNotExist  = 1
  Const adSaveCreateOverWrite = 2
  HTTPDownload "http://dragon-ark.com/wp-content/uploads/2008/12/20081231_1-300x166.gif" , "c:\test.gif"

 Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_ADO
    Dim OBJ_HTTP
    Dim STR_Temp

    Set OBJ_ADO  = CreateObject("ADODB.Stream")

    OBJ_ADO.Type = adTypeBinary
    OBJ_ADO.Open
    OBJ_ADO.Position = 0

    Set OBJ_HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

    OBJ_HTTP.Open "GET", STR_URL, False
    OBJ_HTTP.Send

    STR_Temp = OBJ_HTTP.ResponseBody
    OBJ_ADO.Write STR_Temp
    OBJ_ADO.SaveToFile STR_Path, adSaveCreateNotExist
    OBJ_ADO.Close
End Sub

Scriptのダウンロードは こちら です。

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.txt”というファイルにリクエスト結果を保存する例です。


Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  HTTPDownload "http://google.co.jp/index.html" , "c:\text.txt"
Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_File
    Dim OBJ_FSO
    Dim OBJ_HTTP

    Set OBJ_FSO  = CreateObject("Scripting.FileSystemObject")
    Set OBJ_File = OBJ_FSO.OpenTextFile(STR_Path, OpenFileForWriting, True)
    Set OBJ_HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

    OBJ_HTTP.Open "GET", STR_URL, False
    OBJ_HTTP.Send

    OBJ_File.Write  OBJ_HTTP.ResponseText
    OBJ_File.Close( )
End Sub

Scriptのダウンロードは こちら です。

IEを起動し、googleを開く例です。


Option Explicit

  Dim OBJ_Shell

  Set OBJ_Shell = CreateObject("Shell.Application")
  OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"

Scriptのダウンロードは こちら です。


Option Explicit
  Dim OBJ_FSO
  Dim OBJ_Browser
  Dim STR_ProgramName

  Set OBJ_FSO = CreateObject("Scripting.FileSystemObject")

  For Each OBJ_Browser In CreateObject("Shell.Application").Windows

    STR_ProgramName = OBJ_FSO.GetFileName(OBJ_Browser.FullName)
    If LCase(STR_ProgramName) = "iexplore.exe" Then

      WScript.Echo OBJ_Browser.LocationURL

    End If

  Next

Scriptのダウンロードは こちら です。

1. VNCサーバがインストールされていることを確認する。

# pkg info SUNWxvnc

20081231_1 

※インストールされていない場合は、パッケージマネージャから
インストールを実施する。

2. 「/etc/X11/gdm/custom.conf」 を 編集する。

# cd  /etc/X11/gdm
# vi  custom.conf

20081231_2 

3. サービスの有効化を行う

# svcadm enable xvnc-inetd
# svcs xvnc-inetd

 20081231_3

4. VNCビューアより、接続を行う

 20081231_4

※ 接続出来ない場合は、以下のコマンドを試す。
(サービスの状態が mentenance になる場合がある)

# svcadm disable xvnc-inetd gdm
# svcadm enable xvnc-inetd gdm

昨日の日付を表示するVBスクリプトです。

現在の日付を求めるために別の関数を呼んでいます。


Option Explicit

  Dim STR_Yesterday
  Dim STR_Temp

  STR_Temp = Get_YYYYMMDD(1)
  STR_Yesterday = DateAdd("d",-1,STR_Temp)

  WScript.Echo STR_Yesterday
Private Function Get_YYYYMMDD(ByVal STR_Flag)
  Dim STR_Temp
  Dim STR_YYYY
  Dim STR_MM
  Dim STR_DD

  If Not IsNumeric(STR_Flag) Then Exit Function End If

  STR_Temp = Year(Now)
  If Len(STR_Temp) = 2 Then STR_Temp = "20" & STR_Temp End If
  STR_YYYY = STR_Temp

  STR_Temp = Month(Now())
  If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If
  STR_MM = STR_Temp

  STR_Temp = Day(Now())
  If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If
  STR_DD = STR_Temp

  Select Case STR_Flag

    Case 0

      GET_YYYYMMDD = STR_YYYY & STR_MM & STR_DD

    Case 1

      GET_YYYYMMDD = STR_YYYY & "/" &  STR_MM & "/" & STR_DD    

    Case 2

      GET_YYYYMMDD = "#" & STR_DD & "/" & STR_MM & "/" & STR_YYYY & "#"

  End Select

End Function

Scriptのダウンロードは こちら です。