2016年4月29日金曜日

Android 既定のブラウザ変更

競艇の実況がFLVだったので、NEXUS7で見るためには、ドルフィンが必要であった。
4月から投票サイトと同じようにHTML5を使うようになったのか、Chromeでも見れるようになった。

インストしてから、ドルフィンが「既定のブラウザー」になっていた。
あんまり問題はないのだが、PCもChromeだし、実況以外では使わないし、使い勝手もイマイチなので、Chromeを「既定のブラウザー」に変更した。

変更するのに、ひと手間かかったので、メモ。

まず、Chromeの設定を見たが、設定するメニューがない。
ドルフィンの設定で、「既定のブラウザー」をはずしたが、変わらない。
Androidの設定から、 「アプリ」 → 「設定マーク」 → 「アプリの設定」 → 「既定のアプリ」 →
「ブラウザアプリ」と掘り下げて、やっとブラウザを選択するメニューを見つけた。

Chrome 選択して、完了。

本日の河上選手:お休み
  5/3から、戸田の地元戦


2016年4月15日金曜日

PowerShell readyState

今まで、IEの起動から操作までを下のコードを書いていた。

    $ie=new-object -com InternetExplorer.Application
    $ie.visible=$true
    $ie.navigate("https://www.google.co.jp")
    while($ie.Busy) { [Threading.Thread]::Sleep(300) }

ふと、気づくと、IEがちゃんとアクティブになっているのに、「$ie.busy」が、Falseだった。

ちょっと、調べてみたら、こんなのがあった。

   readyState
   #   0・・・初期化未完了状態(READYSTATE_UNINITIALIZED)
   #   1・・・ロード中状態(READYSTATE_LOADING)
   #   2・・・ロード完了状態(READYSTATE_LOADED)
   #   3・・・操作可能状態(READYSTATE_INTERACTIVE)
   #   4・・・全データ読込完了状態(READYSTATE_COMPLETE)

こんなコードにしてみた。

  $ie=new-object -com InternetExplorer.Application
    $ie.visible=$true
    Write-debug  " After visible ReadyState"
    Write-debug  $ie.readyState

    $ie.navigate("https://www.google.co.jp")
    Write-debug  " After navigate ReadyState"
    Write-debug  $ie.readyState


    for($timecnt = 0 ;$timecnt -lt 5 ;$timecnt++)
    {
        Start-Sleep -s 1
        if( $ie.readyState -eq 4 )
        {
            Write-debug "B"
            Write-debug  $ie.readyState
            Write-debug $ie.Busy

            break;
        }
        Write-debug "A"
        Write-debug  $ie.readyState
        Write-debug $ie.Busy
    }
    Write-debug "C"
    Write-debug  $ie.readyState
     Write-debug $ie.Busy

実行結果

デバッグ:  After visible ReadyState
デバッグ: 0
デバッグ:  After navigate ReadyState
デバッグ: 1
デバッグ: B
デバッグ: 4
デバッグ: False
デバッグ: C
デバッグ: 4
デバッグ: False

本日の河上選手:お休み
  22日 ~  常滑

2016年4月9日土曜日

PowerShell Excel操作

PowerShellで、EXCELを操作する。


# Excelを操作する為の宣言
$excel = New-Object -ComObject Excel.Application

# 可視化する
$excel.Visible = $true

# 既存のExcelファイルを開く
$book = $excel.Workbooks.Open("D:\aaa.xls")


# Table 初期化
$btbl = $null
$bidx = 0

# CELLを読む
# シート名は「a1」
# 4行目から、40行目までの、偶数列のCELL値をテーブルに登録する。

$sheet = $book.Worksheets.Item("a1")
for($i = 4; $i -lt 40; $i++)
{
    $sys = $sheet.Cells.Item($i, 2).value()
    $pac = $sheet.Cells.Item($i, 6).value()
    $cat1 = $sheet.Cells.Item($i, 8).value()
    $cat2 = $sheet.Cells.Item($i, 10).value()
    $mode = $sheet.Cells.Item($i, 11).value()
    $cmd = $sheet.Cells.Item($i, 12).value()

    # 内容をテーブル登録する
    $btbl +=,@($sys,$pac,$cat1,$cat2,$mode,$cmd)



 }
# テーブル内容の表示
$btbl

# Excelを閉じる
$excel.Quit()

# プロセスを解放する
$excel = $null


久しぶりに多摩川本場に行った。
戦績はそこそこだった。
桜は、まだ残っていた。
牛筋カレーが、値上がりしていた。

穏やかな春という感じに見えるが、5~6mの風がすっと吹いていた。










本日の河上選手:児島5日目

3R 6号艇 6コース進入
   なんと、トップスタート 08で、捲り差してピン!
   3万舟~~~~
   
9R 4号艇 5コース進入でブービー
   



2016年4月8日金曜日

PowerShell IE起動 ~ アクティブ ~ スクリーンショット

IEを起動して、そのスクリーンショットを取る。


Set-Variable uri41 'https://www.google.co.jp'

    $ie=new-object -com InternetExplorer.Application

    $ie.visible=$true


    $ie.navigate("$uri41")


# IEをアクティブにする

add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms

$b = (Get-Process | Where-Object {$_.MainWindowTitle -like "*Internet
Explorer*"}).id

start-sleep -Milliseconds 500
[Microsoft.VisualBasic.Interaction]::AppActivate($b)


# IE画面のスクリーンキャプチャ
$bitmap = new-object Drawing.Bitmap($ie.Width, $ie.Height)
$graphics = [Drawing.Graphics]::FromImage($bitmap)
$graphics.CopyFromScreen($ie.Left, $ie.Top, 0, 0, $bitmap.Size)
$format = "jpeg"
$filename = "D:\google.jpg"
$bitmap.Save($filename, $format)


本日の河上選手:児島4日目
  9R 3号艇 3コース進入 5着

   

2016年4月7日木曜日

PowerShell 値の取り出し

開かれているIEのMainWindowTitleを調べたくて、

Get-Process | Where-Object {$_.MainWindowTitle -like "*Internet Explorer*"} | Select-Object MainWindowTitle

で実行した。

MainWindowTitle
---------------
Google - Internet Explorer

MainWindowTitleの値はわかったのだが、余計なヘッダが付いてくる。
このままでは、値として使用できない。

出力結果からヘッダを取る方法調べたけど、不明。
なので、試しに下のように書いてみたら、

(Get-Process | Where-Object {.MainWindowTitle -like "*Internet Explorer*"}).MainWindowTitle

下のように、値だけ取り出せた。

Google - Internet Explorer



本日の河上選手:児島3日目
   3R 3号艇 3コース進入で6着
  10R 2号艇 2コース進入で、差してピン
     A1 一人 A2 三人 B1 二人 のメンバーでの勝利
     スタートもよかったが、伸びがいい

2016年4月5日火曜日

PowerShell 多次元配列

PowerShellで多次元配列を使用するのだが、要素数の上限が決まっていれば、簡単

$array1 = @(@(1,"a"),@(2,"b"),@(3,"c"),@(4,"d"))


要素数が可変の時は、

$array+= ,@(要素)

「+=」で、追加するが、ここで嵌ったのが、「@」の前の「,(カンマ)」、これを忘れると単なる一次元配列になってしまう。

$array+= @(要素)

こんな感じで、「,」を付けないで、書きたくなるが、これでは、ダメ


実際の動きは、下のようになる。

$array += ,@(1,"a")
$array += ,@(2,"b")
$array += ,@(3,"c")
$array += ,@(4,"d")
$array[0][0]
$array[0][1]
$array[1][0]
$array[1][1]
$array[2][0]
$array[2][1]
$array[3][0]
$array[3][1]

$array=$null



実行結果

1
a
2
b
3
c
4
d

本日の河上選手:児島初日
  6R 5号艇 5コース進入
     トップスタートで伸びもあったが、3号艇にブロックされて5着




2016年4月2日土曜日

PowerShell IE タブオブジェクト

IEで、メインの画面から別タブを開くような動きのあるコンテンツで、新たに開かれたIEのオブジェクトを参照する。

開いていた一つ目のタブは、「sample」
sampleから、開かれたタブを「newtab」として、IEの情報を取得する。

--------------------------------------------


Name         : Internet Explorer
HWND         : 591308
LocationName : sample

Name         : Internet Explorer
HWND         : 591308
LocationName : newtab

--------------------------------------------


NAMEとHWNDは同じ


LocationNameが、違う

そこで、
SHELLで取得したプロセス情報から、「Internet Explorer」で、IEのリストを作成して、
「newtab」を抜き出す。
$ie2が、newtabのオブジェクトになる。

ただし、この方法では、予めLocationNameが、わかっている必要がある。

--------------------------------------------

$shell = New-Object -ComObject Shell.Application

$ie_list = $shell.Windows() | where { $_.Name -match "Internet Explorer" }
$ie2 = $ie_list |  where { $_.LocationName -match "newtab" }

--------------------------------------------


本日の河上選手:お休み
  4/5 ~ 児島

4/1から、結構いろんなことが変わったが、さえないオジサンに影響があるのは、場外締切が、本場締切1分前になったことかな!