Windows Opera を Python で

ゲストの Windows XP に入れたアプリケーション等の覚書。

.NET Framework 3.5   やっぱり必要だった
IronPython   コレを動かさなきゃいけないもん
Windows Power Shell   もうコレが無いと辛い
Windows Live   メールとフォトギャラリのみだが
IE8   何故自動更新してくれない…
WMP11   これも…

以上 Microsoft から、他

Opera   まあ私なので
Python   今回は Ubuntu に合わせて 2.6.2 を
FileZilla   コッチからサイトやブログの更新も可能なように
Paint.net   これも、もう Gimp 対向で標準にしてくれ
IrfanView   観覧にも使うけど主にスクリーンショット用
ExpLZH   圧縮する機会が多いとアーカイバーはコレしか選べない
ATOK   せっかく買ったので、Anthy のオバカ変換にも慣れたけど
EmEditor   主に Python 書き用途
秀丸   何故テキストエディタを2つも入れる?と言うな
秀丸メール   昔のメールを参照しなきゃいけない場合があるのよ
Bz   バイナリチェックをすることが多いのよ
UnitMovie   聞かないでくれ
minipoli   そりゃ自分が使う為に作ったわけで
SeeMe   そりゃ自分が使う為に作ったわけで

ホストで使うなら入れるけど見送るもの。

動画コーデック類
RealPlayer
QuickTime
VisualStudio
Firefox
Apache, PHP, MySQL
VirtualBox
他自分が作ったアプリ(仮想環境では Cinema が動かない…

最小限なのに多すぎる、、、、、

ほとんど「窓の杜」で手に入るものしか使っていないのが唯一の救い。
Linux のほうが徹底しているけど Windows も名の知れたものしか残らないわな。

Windows Power Shell も XP ではシステムフォルダに普通にアクセスしやがる。
楽といえば楽だけどチト怖いわ。

つーことで Windows でもやっぱり Python が主になる。
てゆーか Python しか入れてネェじゃん、あんなにバカにしたのに。
せっかくだから 2.6.2 を使って何か作ってみよう。
こんな私だから Python で Opera を弄くって遊ぶコードでも。

#! /usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
import ctypes

SW_HIDE = 0
SW_MAXIMIZE = 3
SW_MINIMIZE = 6

class FindOpera():
    """
        Windows で Opera を弄くる Python スクリプト
    """
    def __init__(self):
        # user32.dll のコネクト
        self.user32 = ctypes.windll.user32
        # Ansi の関数を使うなら Ansi、UNICODE を使うなら u を使う
        #self.hwnd = self.user32.FindWindowA("OpWindow", None)
        self.hwnd = self.user32.FindWindowW(u"OpWindow", None)
        if self.hwnd:
            print(unicode("起動しています", "utf-8").encode("sjis"))
        else:
            print(unicode("見つかりません", "utf-8").encode("sjis"))
            sys.exit()

    def move(self, x, y, width, height):
        # 移動とリサイズ
        self.user32.MoveWindow(self.hwnd, x, y, width, height, True)

    def active(self):
        # Z オーダーの一番上に持って行く
        self.user32.SetForegroundWindow(self.hwnd)

    def set_title(self, title):
        # タイトルバー文字列を変更する
        self.user32.SetWindowTextW(self.hwnd, title)

    def maximize(self):
        # 最大化
        self.user32.ShowWindow(self.hwnd, SW_MAXIMIZE)

    def minimize(self):
        # 最小化
        self.user32.ShowWindow(self.hwnd, SW_MINIMIZE)

if __name__=="__main__":
    opera = FindOpera()
    opera.active()
    #
    # お好きなのを有効にして実行してみてね
    #
    #opera.move(0, 0, 640, 480)
    #opera.set_title(u"おぺらだよーん - Opera")
    #opera.maximize()
    #opera.minimize()

Linux と併用だから UTF-8 にしているけど cp932 で書いたほうが楽だね。
つーか local と内部コードが違う変態 OS はやっぱり面倒だ。

ま、ウインドウのクラス名が解れば何だってコレは可能なんだけどさ。
とりあえず Windows で 2.6 の実験ということで。