日記を書けない人の日記

日記を書きたい.

マーケットスピードII (楽天証券) のパスワードの自動入力

はじめに

楽天証券Windows版で操作するときにマーケットスピードを立ち上げるわけですが,パスワードを保存しておいてくれないので毎回入力しないといけないです. 私は毎朝日経記事を読むのでこの手間が鬱陶しいことこの上ありません.なのでこの記事では,ある程度セキュアに「ダブルクリックでマーケットスピードが立ち上がり,自動的にログインする」ことを実現します.

詳しくない人にも理解できるように書きたいとは思っていますが….

概要

  • PowerShellを使います.
  • パスワードを平文保存は嫌なので暗号化したファイルを作成し,これを読み込むことでパスワードを入力します.

本題

パスワードを暗号化する.

PowerShellを立ち上げて以下を実行します.

$Cred = Get-Credential
$Cred.Password | ConvertFrom-SecureString | Set-Content <PATH1>\Password.pass

<PATH1>はファイルを保存するフォルダのパスを各位入力してください.Password.passに暗号化されたパスワードが出力されます.
これを実行したらポップアップでなんかパスワード入力させられるので,そこにパスワードを入力してください.

万一パスワードファイルが流出しても別のユーザーでは復号化できない様になっています.
認識が間違っていたら教えてください.

スクリプトファイルを作成する.

以下をテキストファイルに入力し,rakuten.ps1等,拡張子を.ps1にします.

# マーケットスピードの実行ファイル
cd C:\Users\username\AppData\Local\MarketSpeed2\Bin
Start-Process MarketSpeed2.exe

# パスワード復元
$PasswordFile = "<PATH1>\Passward.pass"
$SecurePassWord = Get-Content $PasswordFile | ConvertTo-SecureString
$Credential = New-Object System.Management.Automation.PSCredential \"dummy\", 
$SecurePassword
$pass = $Credential.GetNetworkCredential().Password
# 復元ここまで
# 起動
Add-Type -AssemblyName System.Windows.Forms
Start-Sleep -s 10
[System.Windows.Forms.SendKeys]::SendWait($pass)
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")

マーケットスピードの実行ファイル (.exe) はマーケットスピードのショートカットのプロパティの<リンク先>に書いてあります.
パスワード復元の際の<PATH1>\Passward.passで先程保存したファイルを指定してください.

起動からパスワードの入力までの時間は10秒とってあります.パソコンのスペックに合わせて調節してください.

ダブルクリックで起動するようにします.

  1. 先ほど作成した .ps1 ファイルのショートカットを作成します
  2. プロパティを開き,リンク先の先頭に C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File と入力します.

これをダブルクリックをすると,マーケットスピードに自動的にログインすることができます.

ちなみに日経を読むには管理者権限でアプリを起動する必要があります. これは作成したショートカットのプロパティの「ショートカット」タブにある詳細設定をクリックして,管理者として実行にチェックを入れれば解決です.