Archive for the ‘Windows’ Category

このエントリーをはてなブックマークに追加
[`livedoor` not found]

WSHを利用してメールを送信する例です。
今時のメール送信はSMTP Authなどが実装されている例が多いのですが、
今回の例は、SMTP Authには対応していません。(別途、紹介します)

パラメータは以下の通り。

Send_Msg “SMTPモード”,”SMTPサーバ”,”SMTPポート”,”送信元メールアドレス”,”宛先メールアドレス”,”CC宛先”,”BCC宛先”,”件名”,”本文”

[vb]

Dim STR_SmtpHost
Dim STR_SmtpPort
Dim STR_MsgFrom
Dim STR_MsgTo
Dim STR_MsgCc
Dim STR_MsgBcc
Dim STR_MsgSubject
Dim STR_MsgBody

STR_SmtpHost = “xxx”
STR_SmtpPort = “xx”
STR_MsgFrom = “xxx@xxx.com”
STR_MsgTo = “xxx@yyy.com”
STR_MsgCc = “”
STR_MsgBcc = “”
STR_MsgSubject = “aaaa”
STR_MsgBody = “bbb”

Call Send_Msg(STR_SmtpHost, STR_SmtpPort, STR_MsgFrom, STR_MsgTo, STR_MsgCc, STR_MsgBcc, STR_MsgSubject, STR_MsgBody)

Function Send_Msg(STR_SmtpHost, STR_SmtpPort, STR_MsgFrom, STR_MsgTo, STR_MsgCc, STR_MsgBcc, STR_MsgSubject, STR_MsgBody)

Set OBJ_EMail = CreateObject(“CDO.Message”)

OBJ_EMail.From = STR_MsgFrom
OBJ_EMail.Subject = STR_MsgSubject
OBJ_EMail.TextBody = STR_MsgBody

OBJ_EMail.To = STR_MsgTo
OBJ_EMail.Cc = STR_MsgCc
OBJ_EMail.Bcc = STR_MsgBcc

OBJ_EMail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2
OBJ_EMail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/smtpserver”) = STR_SmtpHost
OBJ_EMail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = STR_SmtpPort

OBJ_EMail.Configuration.Fields.Update
OBJ_EMail.Send

Set OBJ_EMail = Nothing

End Function
[/vb]

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

リモートからリモートデスクトップを有効にするテクニックです。

本来ならば、以下の設定をローカルから設定するのですが、レジストリを変更することで、リモートから有効化します。

20090322_01

1. レジストリエディタを起動し、対象コンピュータへ接続します。

接続の方法は、メニュの「ファイル」 → 「ネットワーク レジストリへの接続」を選択します。

20090322_02

2. 対象コンピュータ名を入力し、ユーザ名・パスワードを入力します。

3. 次のレジストリ サブキーを見つけます。

HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Control\Terminal Server

4. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加する。
  値の名前 : fDenyTSConnections
  データ型 : DWORD
  値
 : 1 = 許可しない (規定値)  /  2 = 許可する

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

以下の設定を行うことでキーボードの右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

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

Outlook ExpressはWindowsに標準でついており、企業でも使われていることが多いかと思います。

しかし、どんな便利なツールにも使い方を理解し、性質を知っていなければ大切なデータを失ってしまうことになります。

よくあるケースとして、メールデータのファイルである .dbxファイルのサイズが大きくなりすぎてデータが消えてしまうというものです。

Microsoftのサポートオンラインにも記述があります。

Outlook Express で使用される .dbx ファイルの最大ファイル サイズに関する情報

上記のサイトのように2Gに達するケースとしては、メールフォルダを分けずに、受信トレイに全てのメールを保存してしまい、

サイズが大きくなってしまうことが考えられます。

同じく、Outlook Expressの起動100回毎にメールフォルダの最適化が促されますが、 実行すると .dbxファイルが壊れてしまうことがあります。

2Gという制約があるものですから、1つのフォルダにメールをためずに、フォルダの分割を行いましょう。

方法は、メッセージルールを利用します。

メッセージルールの例として、

1. ドメイン毎(送信元)

2. 宛先毎(メーリングリスト) など
xxx@xxx.com宛
yyy@yyy.com宛など

3.アカウント毎

また、それぞれのフォルダを階層にして、年度を分けるなど工夫すれば1つのファイルが2Gにいくことはありません。

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

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

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

[vb]
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
[/vb]

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

VN:F [1.9.22_1171]
Rating: 7.7/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

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

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

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

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

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

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]


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

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

[vb]
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

[/vb]

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

VN:F [1.9.22_1171]
Rating: 6.7/10 (15 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

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

[vb]

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-300×166.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
[/vb]

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

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

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

[vb]

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

[/vb]

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

VN:F [1.9.22_1171]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

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

[vb]

Option Explicit

  Dim OBJ_Shell

  Set OBJ_Shell = CreateObject(“Shell.Application”)
  OBJ_Shell.Windows.Item.Navigate “http://www.google.co.jp/

[/vb]

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

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)