旧鯖時代の雑記です。新しいの。リンク切れに注意。
2007:
12345678910
2006:
123456789101112
2005:
123456789101112
2004:
456789101112
コンポーネント/コントロール作成に関するメモを追加。まだ、数が少ないですがそのうち増えていく予定(希望)
コメントはありません。
ようやくFOMAの普及機が登場ですか。N700iは色はいいのですが、着せ替えが余分ですね。。。
コメントはありません。
体調が一向によくなりません。どーしよー
コメントはありません。
とらいえずエンディング見ました。あの終わりってことは続編に期待してもいいのでしょうか?
コメントはありません。
Type.InvokeMember で配列を設定する場合 Type.InvokeMemeber だと一発で設定できるのに、FeildInfo.SetVale() だとできないので、FieldInfo.GetValue()→PropertyInfo.SetValue() としなくてはいけない。何故?
using System;
using System.Reflection;
namespace ConsoleApplication1 {
class Program {
public static string[] field;
static void Main( string[] args ) {
field = new string[] { "a", "b", "c" };
// Type.InvokeMember で配列を設定
typeof( Program ).InvokeMember( "field",
BindingFlags.SetField, null, null,
new object[] { 1, "d" } );
// FeildInfo を一度とって配列を設定する場合 PropertyInfo をとらなくてはいけない
FieldInfo fi = typeof( Program ).GetField( "field" );
PropertyInfo pi = typeof( System.Collections.IList ).GetProperty( "Item" );
pi.SetValue( fi.GetValue( null ), "e", new object[] { 2 } );
foreach( string str in field )
Console.WriteLine( str );
}
}
}
まぁフィールドなんてめったに見かけませんが。
コメントはありません。
情報元。どうせならデバッガで見れるようにしてほしいところですが、無理でしょうねぇ。
コメントはありません。
こんな体調で大丈夫か?
コメントはありません。
携帯から以下略できますが、たぶんネタないししないでしょう。
コメントはありません。
買ってきたもの。ラキ☆スタ、食卓にビールを#3。
コメントはありません。
情報元: http://www.itmedia.co.jp/news/articles/0502/10/news128.html
やっぱり無難に国内メーカーにしておきますかねぇ。
コメントはありません。
ヤマは超えたのでプログラミング再開。で、みら〜じゅのコード(.NET 2.0で書き直し中のものもの)を見直してみると作った覚えのないクラス(実装が不確定なので作成は保留していたと記憶)がちらほら。何をやっていたか殆ど忘れてる状況。まぁまだリリースまで時間があるし手探りで修正を入れてる段階なので特に問題はありませんが。。。
コメントはありません。
以前書いたものが汚いので再構築。VS2005βのエディタは不安定なので2003で書いているのですが、なんかこちらも不安定ですねぇ。プロパティを認識できずにインデントが崩れることがちらほら。なにが悪いのやら。
コメントはありません。
Win64 APIのdll名って何になるのでしょ?やっぱりxxx64.dll?互換性のためにxxx32.dllも残されると思いますけど。。。RC版試せばわかるのかなぁ?
コメントはありません。
マウスキャプチャについて勘違いしていたのでメモ。
マウスキャプチャは1つのスレッドにつき1つのウィンドウが実行することが出来ます。マウスキャプチャを実行しているAスレッドのウィンドウを得ようと、Bスレッドから GetCapture() しても正しい値を得ることは出来ません。他スレッドをキャプチャしているウィンドウを得るには GetGUIThreadInfo() を呼び出し、GUITHREADINFO.hwndCapture を参照します。
コメントはありません。
IEで画像をD&Dで保存しようとすると、「このゾーンからファイルを移動したり、コピーできるようにしますか」とかいうダイアログが表示されるようになりました。設定を見てもそれっぽい項目がありません。何なのでしょう?
コメントはありません。
PrintWindow()の第3引数にPW_CLIENTONLYを指定すると、Only the client area of the window is copied to hdcBlt. By default, the entire window is copied.
ってあるのですけど、PW_CLIENTONLYを指定しても全体をコピーするのですよね。。。未実装?
コメントはありません。
MSが方針転換、IE 7.0をSP2向けにリリースへ(ITmedia)。だそうですが、XP SP2だけのサポートだとLonghornにくっついているのと大差ない気が。仮にここでCSSが強化され、before,after等が実装されたとしても、後方互換を考えると後数年は使えません。
CNETの記事では2000も考慮すると言ってますけど。。。
コメントはありません。
64bit Windows の出荷が5月中旬に決定したようです。とりあえず自作アプリのサポート環境からは様子見。手持ちに環境ありませんし。
コメントはありません。
MS05-014が悪さしてるっぽいので、KB867282, KB873333, KB888113を削除すると直ります。KB入れた状態での回避方法は不明。
コメントはありません。
起きたら17時でした。何時間寝てんでしょう、自分。ネタもないのでテスト目的で作ったインスタンスのプロパティを列挙するクラスでも投げておきます。何かの参考になれば。
using System;
using System.Reflection;
class PropertyPrinter {
private int maxDepth; // 最大深度
public PropertyPrinter() : this(3) {}
public PropertyPrinter( int depth ) {
this.Depth = depth;
}
public int Depth {
get { return this.maxDepth; }
set {
if( value <= 0 )
throw new ArgumentOutOfRangeException();
this.maxDepth =value;
}
}
public void Print( object o ) {
Print( o, 0 );
GC.Collect();
}
private void Print( object o, int index ) {
Type type = o.GetType();
string space = string.Format(
string.Format("{{0,{0}}}", index),
"" );
PropertyInfo[] pis = type.GetProperties();
if( (this.maxDepth < index) || (pis.Length == 0) ) return;
Console.WriteLine( "{0}::{1}:", space, type.FullName );
foreach( PropertyInfo pi in pis )
PrintData( pi, o, index );
if( o is Array )
PrintArray( o as Array, index+1 );
}
private void PrintArray( Array arry, int index ) {
string space = string.Format(
string.Format("{{0,{0}}}", index),
"" );
if( this.maxDepth < index ) return;
for( int i=0; i<arry.Length; i++ ) {
object o = arry.GetValue( i );
Type type = o.GetType();
PropertyInfo[] pis = type.GetProperties();
Console.WriteLine( "{0}({1}){2}",
space, i, type.FullName );
if( pis.Length == 0 ) continue;
foreach( PropertyInfo pi in pis )
PrintData( pi, o, index );
if( o is Array )
PrintArray( o as Array, index+1 );
}
}
private void PrintData( PropertyInfo pi, object o,int index ) {
string space = string.Format(
string.Format("{{0,{0}}}", index),
"" );
if( pi.CanRead ) {
try {
if( pi.GetIndexParameters().Length == 0 ) {
object val = pi.GetValue( o, null );
Console.WriteLine( "{0}+{1}:¥t{2}",
space, pi.Name,
(val == null) ? "(null)" : val.ToString() );
if( val != null )
Print( val, index+1 );
} else {
// index 付プロパティはサポートしない
Console.WriteLine(
"{0}+{1}:¥t{{Index Property. PropertyType is {2}}}",
space, pi.Name, pi.PropertyType.FullName );
}
}
catch( TargetInvocationException e ) {
Console.WriteLine(
"{0}+{1}:¥t(throw TargetInvocationException){2}",
space, pi.Name, e.InnerException.GetType().FullName );
Console.WriteLine( e.StackTrace );
}
catch( Exception e ) {
Console.WriteLine( "{0}+{1}:¥t(throw Exception){2}",
space, pi.Name, e.GetType().FullName );
Console.WriteLine( e.StackTrace );
}
}
}
}
コメントはありません。
変数型周りのドキュメントとプラグインからのコールバックがどうなるか興味。この辺りの仕様が固まらないと、raのHSP側インタフェースが書けないので。
コメントはありません。
IE 7.0をXP向けにのみリリースするという計画についても、古いプラットフォームのユーザーがセキュリティを強化したい場合はアップグレードを強いるというMicrosoftの意図が表れているとマクドナルド氏は分析。責任ある業界のリーダーと見なしてほしいのなら、Windows 2000向けにもIE 7.0を提供すべきであり、セキュリティを念頭に置いてIEのアーキテクチャを根本的に作り直すべきだと提言している。
かなり前にどっかに書いた気がしますけど、セキュリティを考えるのなら対象とするWindowsのバーションを絞ったほうが望ましい、それだけ考慮する要素が少なくなりますので。
コメントはありません。
BBSがバージョンアップしてますね。linkの色が指定できるのと記事を引用できるようになってますね。スパムくらいしか書き込みないので無駄ですけど(ぉ
コメントはありません。
プラグインのコールバックラベルのサポートは無しですか。うーん仕様が決まらないのでイマイチ動きづらい。
コメントはありません。
構造体の内部データを変更するメソッドを呼び出す場合、type.InvokeMethod() の引数に直にインスタンスを指定して呼び出した場合、当然ですがインスタンスに変更は適用されません。一度object型にボクシングしてそれを元にInvokeした後ボクシングします。
using System;
using System.Reflection;
class Program {
struct Struct {
public int Val;
public Struct( int v ) {
Val = v;
}
public override string ToString() {
return string.Format( "{{Struct: {0}}}", Val );
}
public void Test() {
Val++;
}
}
static void Main() {
Struct s = new Struct( 1 );
object o = new Struct( 1 );
typeof(Struct).InvokeMember( "Test",
BindingFlags.InvokeMethod, null, s, null );
typeof(Struct).InvokeMember( "Test",
BindingFlags.InvokeMethod, null, o, null );
Console.WriteLine( s );
Console.WriteLine( o );
}
}
raは構造体のみ単独で所持しようかと思いましたが、まとめてArrayListに突っ込むことにします。
コメントはありません。
ルータにアクセスできない。何故?
コメントはありません。
ルータ初期化でとりあえずつなげるようになりました。ただ、ipconfgかけてみるとまだ表示がおかしい気が。。。
コメントはありません。
2000とXP SP1のipconfigが異なるのはSP1以降はIPv6に対応しており、そちらも表示されるからのようです。とりあえず解決。
コメントはありません。
久々に試したら忘却していたのでメモ。
static string ToBase64( string str, string encode ) {
byte[] b = System.Text.Encoding.GetEncoding(encode).GetBytes( str );
return System.Convert.ToBase64String( b );
}
static string FromBase64( string str, string encode ) {
byte[] b = System.Convert.FromBase64String( str );
return System.Text.Encoding.GetEncoding(encode).GetString( b );
}
コメントはありません。
ぷぎゅる#3、ぱにぽに[桃月学園絶対合格マニュアル]、お・り・り・が・み#3。
コメントはありません。
Copyright(C)方位記号