【役立たず】タイピングに反応して踊るたこルカのデスクトップマスコット【うるさい】

更にこんなことしてました。

なんと嬉しいことにソースコード掲載のご希望があったのでUPします。

https://anis774.net/LOVELOG_IMG/takorukasrc.zip

IronPython|XHTMLをゴニョゴニョするスクリプト書いてみた。

コード保管庫の更新でいずれこういうのが必要になるんじゃないかと思って書いてみた。sysすらimportしない生粋のIronPython、全部.NETで書いてます。あーIronPython可愛いよIronPython可愛い。

import clr
clr.AddReference("System")
clr.AddReference("System.XML")
from System import *
from System.Console import *
from System.IO import *
from System.Environment import *
from System.Xml import *

def update(file):
	WriteLine(file)
	
	nameSpace = "http://www.w3.org/1999/xhtml"
	xmlDoc = XmlDocument()
	xmlDoc.Load(file)
	xnm = XmlNamespaceManager(xmlDoc.NameTable)
	xnm.AddNamespace("ns", nameSpace)
	for node in xmlDoc.SelectNodes("//ns:html/ns:body/ns:p/ns:code", xnm):
		at = xmlDoc.CreateAttribute("class")
		at.Value = "code"
		node.Attributes.Append(at)
	
	xmlDoc.Save(file)

dir = GetCommandLineArgs()[2]

for file in Directory.GetFiles(dir, "*.html", SearchOption.TopDirectoryOnly):
	if (Int32.TryParse(Path.GetFileNameWithoutExtension(file)) and 
	Path.GetFileNameWithoutExtension(file).Length == 5):
		update(file)

XPATHで要素拾って属性付けるだけのコード。Int32.TryParseがうまく呼べないんだよなぁ。C#のout相当のことをPythonでやる方法がわからない。だから引数省いたら実行出来た。でも、パース出来ない値でもTrue返してるみたいだ。意味が無い。

dir = GetCommandLineArgs()[2]

って行なんだけど、System.Environment.GetCommandLineArgs()が返すのは頭から

0:ipy

1:自身のスクリプトのパス

2:スクリプトに渡した引数

になるみたい。sys.argvと違うから注意。

昨日はCLR/Hの勉強会

初めての勉強会で、周りの人が皆スーパーハカーに見えて、やっぱり皆さんプロの方で…。良い日でした。

難しいこと書くの苦手なんでざっくりと感想を書きます。

C#4.0:dynamic怖い、dynamic怖い。でもIronPythonと連携しやすくなるんなら嬉しいかな。

SilverLight:TreeView楽しみだよ、TreeView楽しみ。早く来てー。

Windows7:軽くなるのは嬉しいな。窓一杯開いても重くならないしくみとか、PCの使い方が変わりそうですよ。

【課題】

名刺を作る。

次回も参加させて頂こうと思うです。

C#|TwitterのAPIを叩くライブラリを作ってみた2

少しずつ作業を進めています。

C#|TwitterのAPIを叩くライブラリを作ってみた

でUPしてるファイルを最新版に差し替えました。追加でUPしてると容量パンクしちゃうので差し替えです。

TwitterClient.zip

ダイレクトメッセージ関連とかブロック関連とか未実装だったり、書きっぱなしでテスト出来てない部分は多いですが、そこそこ使えるようになってきました。

TwitterAPIとか全く知らないけどTwitterクライアント作っちゃうよって用途に使えるライブラリにするのが目標ですが道のりは遠い…。

簡単な使い方なんですが、Anis.Twitter.Api.MethodsクラスをID、パスワードでインスタンス化して、あとはインテリセンスのコメント見て下さい。

VB.NET|Visual Basic中学校にて僕のプログラム掲載

以前に常駐しない付箋紙ソフトを作ってみた。にてUPしていたC#製の付箋紙アプリ”DeskTopMemo”のVB.NET版”DeskTopMemoVB

“がVisual Basic 中学校で紹介されました。

紹介して貰うためにわざわざVB.NETで書き直して、管理人のるきおさんにメールでお願いしたんですけどね。

ソースの中には

・設定の簡単な保存、読み込み

・テキストの描画サイズを正確に計算する方法

・.NETでWindowsの壁紙を変更する方法(ここはネットで拾ったコードのコピペですが…)

・コントロールのイメージをBitmapに描画する方法

等のTipsが詰まってます。

一つでも興味があれば是非々々読んでみて下さいです。

C#|WPFアプリケーションにてマウスイベントが拾えない問題

まず問題のコード

【XAML】Window1.xaml

<Window x:Class="WpfApplication1.Window1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Window1" Height="300" Width="300">

    <Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">

        

    </Grid>

</Window>

【C#】Window1.xaml.cs

using System.Windows;

using System.Windows.Input;

namespace WpfApplication1 {

    /// <summary>

    /// Window1.xaml の相互作用ロジック

    /// </summary>

    public partial class Window1 :Window {

        public Window1() {

            InitializeComponent();

        }

        private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {

            MessageBox.Show("Clicked!");

        }

    }

}

フォームをクリックしても何も起こらない。

しかし、Window1.xamlをこうすると…

【XAML】

<Window x:Class="WpfApplication1.Window1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Window1" Height="300" Width="300">

    <Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown" Background="White">

        

    </Grid>

</Window>

GridのBackgroundプロパティにWhiteを指定している。

こうすると意図した通りにメッセージボックスが表示される。

また、Window1.xamlではなくWindow1.xaml.csのコンストラクタで

GridのBackgroundにBrushes.Whiteを指定してもメッセージボックスが表示された。

色が無いコントロールはマウスイベントを拾えない!?仕様なのかバグなのか…。

Linux|WindowsとUbuntuのurlショートカット

【IEのお気に入り】

ファイル名は”タイトル.url”

中身は最低限これで動く

[InternetShortcut]

URL=ここにURL

文字コードはshift-jis

改行コードはCR-LF

【ubuntu】

ubuntuでFireFoxを起動して、アドレスバー横のアイコンをデスクトップにドラッグ&ドロップして出来たファイルはこんな感じだった。

ファイル名:”タイトル.desktop”

Windowsと違ってプログラムのショートカットとurlのショートカットの区別はないらしい。

中身はこんな感じ

[Desktop Entry]

Version=1.0

Encoding=UTF-8

Name=ここにタイトル

Type=Link

URL=ここにURL

Icon=gnome-fs-bookmark

文字コード:UTF-8

改行コード:LF

デスクトップ上で表示されるのはファイル名じゃなくてNameキーの内容だった。

こんな感じでIEのお気に入りをubuntu用に変換するプログラム書いたらうまく動いた。

他のディストリビューションはどうなんだろう。ググっても分からなかった。