反動

輪講が火曜に終わった。
ソフトマターの理論と数値解析の論文。ソフトマター暦1ヶ月の僕にはとてもハードだったけれど良い経験になったし、自分の力を試す良い機会にもなった。どれもこれも遅くまで見てくださった先輩と先生のおかげ。
NGOS教授が論文は批判的に読むことと言っていたので実践したい。というかもともと他人の考え方に対しては批判的なんだけどね。なんて嫌味なんだろう自分
最近統計力学が楽しい



やりたいことがたまってて反動で夜遅くまでおきて作り上げてしまった

まずはマンデルブローの色づけ。機能自体はできていたのだけれどGUIを作るのが面倒で作っていなかったのでちゃんと作った

もうひとつは壁紙自動変更プログラム。Mac OS XWindows 7には標準装備の機能。XPやVistaでやりたいので作ってみた。一応Windows 7のものと同等の機能は備えたつもり。(GUIはさびしいけれどw)

大学のアカウントを更新してなくてパスワードがわからなくてUpできないのでとりあえず壁紙変更のコア部分だけ載せておく

  • COMインポート部
[ComImport(), Guid("f490eb00-1240-11d1-9888-006097deacf9"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IActiveDesktop
{
	void ApplyChanges(AD_APPLY dwFlags);
	void GetWallpaper(StringBuilder pwszWallpaper, int cchWallpaper, int dwReserved);
	void SetWallpaper(string pwszWallpaper, int dwReserved);
	void GetWallpaperOptions(ref WALLPAPEROPT pwpo, int dwReserved);
	void SetWallpaperOptions(ref WALLPAPEROPT pwpo, int dwReserved);
}

[ComImport(), Guid("75048700-EF1F-11D0-9888-006097DEACF9")]
class ActiveDesktop { }


struct WALLPAPEROPT
{
	static readonly int SizeOf = Marshal.SizeOf(typeof(WALLPAPEROPT));
	int dwSize;
	public WallpaperStyle dwStyle;

	public WALLPAPEROPT(WallpaperStyle Style)
	{
		this.dwSize = SizeOf;
		this.dwStyle = Style;
	}
}
public enum WallpaperStyle { Center, Tile, Stretch, }

[Flags]
enum AD_APPLY
{
	SAVE = 0x00000001,
	HTMLGEN = 0x00000002,
	REFRESH = 0x00000004,
	ALL = SAVE | HTMLGEN | REFRESH,
	FORCE = 0x00000008,
	BUFFERED_REFRESH = 0x00000010,
	DYNAMICREFRESH = 0x00000020
}
  • 使用部
var pActiveDesktop = (IActiveDesktop)new ActiveDesktop();


pActiveDesktop.SetWallpaper(path, 0);

var SetWallpaperOptionsStruct = new WALLPAPEROPT(style);
pActiveDesktop.SetWallpaperOptions(ref SetWallpaperOptionsStruct, 0);

pActiveDesktop.ApplyChanges(AD_APPLY.ALL);


Marshal.ReleaseComObject(pActiveDesktop);

注意としては[STAThread]を使わないと動かないということ。これって昔に載せたっけ?(追記:載せてあったw)


あーやりたいことがたくさん

  • 研究室においてあるプログラミング系の本を読む
  • iPhone SDK
  • 指数窓フーリエ変換
  • いろいろ溜まってる本…
  • ピアノ