「インターフェイス」を含む日記 RSS

はてなキーワード: インターフェイスとは

2007-07-13

星が2万にはてブが1!

http://d.hatena.ne.jp/kyoumoe/20070712#1184206015

こういうアンバランスな評価はどう解釈していいのか。

kyoumoeの曰く

まず、褒めることしかできないということ自体意見の偏重だよなぁ。

ブラックホールボタンがあればいいのか?

別に褒めること自体はいいと思うが、それを強制させてどうするんだよ。

強制されてない。

そういう人は☆を消したいと思うんじゃないの?

何で意地になって表示させてるのか理解できない。

あと、インターフェイスとしても未熟。

とりあえず7割くらいでサービスインしてそのかわりに意見を素早く反映するのがはてな(というかウェブサービス一般)のやりかた。

褒めるのが☆って何だよ。

せめて拍手マークとかにすればいいのに。何で☆?

すてきじゃないか。☆。

2007-07-10

http://anond.hatelabo.jp/20070710115743

インターフェイスだと思うよ。

YouTubeはごちゃごちゃしすぎ。

動画コメントを一緒に見ることもできない。

2007-06-22

javascriptを理解するためのたった2つの大切なこと:改

9割ぐらいはハッシュ

何がハッシュなのか

javascript存在するほとんどオブジェクトの実体はハッシュだよ。

var arr = [0,1,2,3];

とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。

これは

var has = {0:0,1:1,2:2,3:3};

と基本的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。

ためしに

arr[4] = 4;
arr['x'] = 'string';
arr[-1]  = -1;

としてみよう。

Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。

でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。

それどころかarr.xで'string'がかえってくるんだ。

別の例を見てみよう。

var fx = function(){};
fx[0] = 'somestring';

こうするとfx[0]に'somestring'が束縛される。

つまりfunctionも一つのハッシュだったんだ。

これでほとんどのものがハッシュだということが解ってくれたかな?

ハッシュじゃないのは文字列とか数字とかそいういシンプルなものだけなんだ。

ハッシュへのアクセス

ハッシュへはhash[name]でアクセスすることが出来る。

それ以外にもname演算子や空白を含まなくて頭が数字でない場合はhash.nameでアクセスできるんだ。

これでhash[name]が関数だったらhash.name(args)とできるよ。まるでメソッドみたいだね。

関数のあれこれ

無名関数

関数には名前を付けなくても使用可能だよ。

function(x){return x+x}(2); -> 4
宣言文

関数宣言の書き方って次見たいの覚えてる人が多いんじゃないかな?

function funcname(args){ do something};

でもこれはsystax sugerだってことを知ってほしい。

上でも使ってるんだけど。

var funcname = function(args){ do something};

等価になる。もちろんどちらの書き方でもかまわないよ。

ただ、(無名)関数を宣言してそれをfuncnameに束縛しているっていうことを理解しておくと便利だよ。

スコープ closure

javascriptレキシカルスコープを採用してるんだ。

レキシカルスコープなんていうと難しく感じるかもしれないけど、結構単純なんだ。

var x = 'global';
var fx1 = function(){return x};
var fx2 = function(){var x = 'local';return x}

これの実行結果は以下になるよ。

fx1() -> 'global'
fx2() -> 'local'
fx1() -> 'global'

fx2の変数xはほかの場所に影響しないんだ。これは関数の中と外ではスコープが違うからなんだ。

でも以下のような場合に注意してほしいな。

var x = 'global';
var fx1 = function(){return x};
var fx2 = function(){x = 'local';return x}
fx1() -> 'global'
fx2() -> 'local'
fx1() -> 'local'

fx2は自分のスコープ変数xがないからその外側スコープに探しに出かけたんだ。

つまり宣言文varはそのスコープに新しい名前を登場させる機能なんだよ。

別の場合を見てみようね。

var x = 'global';
var fx1 = function(){
  var x = 'local';
  return function(){return x}
};
var fx2 = fx1();
x -> 'global'
fx2() -> 'local'

この例だとfx2()の値がlocalになってるね。

なぜなら外側スコープっていうのは関数を評価した場所じゃなくて、関数を定義した場所の外側なんだ。

関数は返り値として関数ハッシュを指定できるよ。

一つ上の例では実際に関数を返り値にしているね。

戻り値関数を指定するとこんなことが出来るよ。

var fx1 = function(){
  var x = 0;
  return function(){
    x = x+1;
    return x;
  }
};
var fx2 = fx1();
var fx3 = fx1();
fx2() -> 1
fx2() -> 2
fx2() -> 3
fx3() -> 1
fx3() -> 2

fx2とfx3の値が違うのはそれぞれ別の関数が作られるからだよ。

こんな風に関数が状態を持つことも出来るんだ。クロージャーとよんだりするよ。

関数ハッシュを使って複数の関数を返すとこんなことも出来るよ。

var fx = function(){
  var x = 0;
  return {
    'up':function(){
      x = x+1;
      return x;
    },
    'down':function(){
      x = x-1;
      return x;
    }
  }
};
var obj = fx();
obj.up(); -> 1
obj.up(); -> 2
obj.down(); -> 1
obj.down(); -> 0

最後に一度ハッシュについてもうちょっとだけ。thisのはなし。

thisという機能があるよう。ちょっとだけつかってみるね。

var x = 0;
var add = function(n){this.x = this.x + n; return this.x};
var mul = function(n){this.x = this.x * n; return this.x};
var obj = {'x':0,'do':add};
add(1);   -> 1
add(1);   -> 2
mul(2);   -> 4
obj.do(); -> 1
obj.do(); -> 2
obj.do = mul;
obj.do(); -> 4

thisは評価された場所によって値がかわるよ。

objの中にいるときはobj.xを扱うし、グローバルにいるときはグローバルのxを扱うんだ。

http://anond.hatelabo.jp/20070620200618を改訂してみたよ。

このぶんしょうがjavascriptを覚える上の一助になるとうれしいんだ。

あとここでつかってるハッシュ伝統的な意味連想配列のことね。

突っ込みも大歓迎だよ。

2007-06-20

javascriptを理解するためのたった2つの大切なこと

9割ぐらいはハッシュ

何がハッシュなのか

javascript存在するほとんどオブジェクトの実体はハッシュだよ。

var arr = [0,1,2,3];

とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。

これは

var has = {0:0,1:1,2:2,3:3};

と基本的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。

ためしに

arr[4] = 4;
arr['x'] = 'string';
arr[-1]  = -1;

としてみよう。

Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。

でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。

それどころかarr.xで'string'がかえってくるんだ。

別の例を見てみよう。

var fx = function(){};
fx[0] = 'somestring';

こうするとfx[0]に'somestring'が束縛される。

つまりfunctionも一つのハッシュだったんだ。

これでほとんどのものがハッシュだということが解ってくれたかな?

ハッシュじゃないのは文字列とか数字とかそいういシンプルなものだけなんだ。

ハッシュへのアクセス

ハッシュへはhash[name]でアクセスすることが出来る。

それ以外にもname演算子や空白を含まなくて頭が数字でない場合はhash.nameでアクセスできるんだ。

これでhash[name]が関数だったらhash.name(args)とできるよ。まるでメソッドみたいだね。

関数のあれこれ

スコープ

javascriptレキシカルスコープを採用してるんだ。

var x = 'global';
var fx1 = function(){return x};
var fx2 = function(){var x = 'local';return x}

これの実行結果は以下になるよ。

fx1() -> 'global'

fx2() -> 'local'

fx1() -> 'global'

fx2の変数xはほかの場所に影響しないんだ。これは関数の中と外ではスコープが違うからなんだ。

でも以下のような場合に注意してほしい。

var x = 'global';
var fx1 = function(){return x};
var fx2 = function(){x = 'local';return x}

fx1() -> 'global'

fx2() -> 'local'

fx1() -> 'local'

fx2は自分のスコープ変数xがないからその外側スコープに探しに出かけたんだ。結果fx

つまり宣言文varはそのスコープに新しい名前を登場させる機能なんだよ。

宣言文

関数宣言の書き方って次見たいの覚えてる人が多いんじゃないかな?

function funcname(args){ do something};

でもこれはsystax sugerだってことを知ってほしい。

上でも使ってるんだけど。

var funcname = function(args){ do something};

等価になる。もちろんどちらの書き方でもかまわないよ。

ハッシュを返す関数関数を返す関数。closureとthis

関数は返り値として関数ハッシュを指定できるよ。次のハッシュを返す関数を見てみよう。

var fx = function(){
  var x = 0;
  return {
    'x':x,
    'add1':function(y){this.x = this.x+y;return this.x},
    'add2':function(y){x = x+y;return x}
  }
}
var obj = fx();

実行結果を見てみよう

obj.x -> 0
obj.add1(0) -> 0
obj.add1(0) -> 0

obj.x -> 0
obj.add1(1) -> 1
obj.add1(0) -> 0
obj.x -> 1

obj.x -> 1
obj.add1(0) -> 1
obj.add1(2) -> 2
obj.x -> 1

となる。

add1はthis.xにたいして演算をしている。つまり返された値が変化しているんだ。

add2は関数fxに閉じ込められた値に対して演算している。つまりこれらは別の値なんだ。

とここまでかいたら疲れた。

読んでくれた人ありがとう

追記

落書きのつもりでかいたんだけどブクマがついててびっくり。

ちゃんとまとめてなかったし、自分のブログに描いても見てくれる人はいないから増田に書いてみたよ。

ほかの言語技術についても同じような解説が欲しかったら何らかの方法で言及してくれるとうれしいな。

さらに追記

ここまではてブが300突破してるみたいだけどいま、自分のブログリンクを張ったら増田に書く意味がなくなるんじゃないかと思うんだ。

やらないけど。

こんなのもかいてみたよ、増田で。 http://anond.hatelabo.jp/20070621153600

2007-06-03

anond:20070602170258

インターフェイスがもっと空気に近いものを作ろうとしてるわけですが。

まあ失敗するよな…だれか後世の人の役に立てばいいや。

2007-05-22

Re: ウェブ2.0時代のウェブブラウザに求めるもの

最新の HTML 定義に準拠しろ

同意。Firefoxruby 非対応も死ね。拡張機能で回避してるけど。

デフォルトスタイル改善しろ

同意。ウェブ黎明期HTMLCSS が分離してて、CSS を自由に変更できるわかりやすい UIブラウザに搭載されてたら、今の状況はもっと違うものになってただろうね。自分の好きな CSS を持ち込んでサイトを見れるというような。

あと、よく CSSJavaScript で変更できるようにしてるサイトあるけどさ、あれをもう W3C仕様として定義しちゃうってのはどうかな。サーバーに複数の CSS 置いといて、ブラウザから好きなものを選ぶだけ、みたいな。

textarea をもっと機能的にしろ

同意。まあでもそれはブラウザーの不備というより、OS 側のフォーム実装に拠るところが大きいけどね。ただでさえ機能の複雑化したブラウザに加えてただの入力欄を再開発しろとは言いづらい。少なくとも一番後でやることだ。

YouTube2ch ブラウザ

Firefox拡張機能でよければ bbs2chreader ってのはあるけど YouTubeブラウザはないなあ。動画ダウンロードするのならあるけど。まあ YouTube ブラウザが何するのかがそもそもわからない。2ch ブラウザだったら Firefox 以外も壷を使えばいける。

ウェブ向けの動画・音声 UI

あー、まあ、わからんでもない。再生、一時停止、シークなんかをブラウザー側で標準的に持っておいて、仮に新しいコンテナや圧縮形式が出ても裏のプラグインだけを更新したり追加したりすればいいってことね。現状は各プラグインが自前でインターフェイス作ってるからなあ、あれは確かに嫌だ。

ただ、YouTube は話がちょっと違う。プラグインインストール状況を考えてみた時に Flash Player だけが圧倒的に普及してたから Flash再生できるようにしたってだけだ。おそらく全ブラウザ動画再生用の UI を自前提供してても、結局何らかの動画形式に対するプラグインが普及してなかったのなら YouTubeFlash でのインターフェイスを実装してたはずだ。

ウェブ向けの動画・音声・画像形式

こりゃ無理だなあ。というか意味がない。多分今やってもみんな不幸になる。

たとえば現在動画形式が乱立してるのにも理由があって、新しいコンテナ、新しい圧縮形式に対応できるようになってるんだよ。たとえば AVI と QuickTime ぐらいしかない頃にその頃の考え方を盛り込んでウェブ用に機能拡張した動画形式を W3C が提唱したとする。そのあと Matroska が出てきても、そこにある複数音声、字幕、頭出しはウェブ動画形式のバージョンが上がるまでウェブでは使えないということになる。これじゃあ話にならない。

じゃあどうすればいいかというと、動画・音声・画像のコンテナ・圧縮・再生のためのプラグインは各種サードパーティーに勝手に作らせといて、ウェブではそれをラップするしかない。じゃあラップするためのファイル形式を W3C が提唱すればいいかというとそうでもない。

まず、機能的な動画・音声・画像形式っつったって結局は他の動画・音声・画像ウェブページへ機能的に飛べなければ意味は無い。あくまでもウェブサイトコンテンツの一部だから単純なリンクではだめだ。複雑な情報を、視覚的に優れた形で提供できなければならない。

次に、動画・音声・画像アップロードするためにわざわざラップ用のファイル形式をエンドユーザーが覚えなければならず、またただでさえ複雑化した HTMLCSSJavaScript などのパースレンダリングに手一杯のブラウザ開発側が機能的な動画・音声・画像形式に対応しなければならない、世界全体を巻き込んだ莫大な負担増を許容させなければならない。しかもその内容は HTML で充分に代用が効く。

流石にこれを肯定できるだけの主張を僕は思いつかないよ。機能的な動画・音声・画像形式の標準化は無理だ。Opera だけが使える形式があっても意味ないし、結局は HTML への埋め込みにしかならないと思うよ。

2007-05-17

どんどん開発して機能高めまくるけど

ユーザーインターフェイスだけはずっと鬼のようにわかりにくくしとくのってどーよ

超便利な道具の操作方法というわかりやすく尊ばれる知識に価値を生じさせて雇用確保、利益確保

2007-04-29

オブジェクト指向って言葉も大昔からあるよ!

http://anond.hatelabo.jp/20070429155517

えー、IME 任せは微妙だなあ。めんどくさくてもオンオフぐらいしようよ。状況に応じた大文字小文字の選択もしづらい(できない?)し微妙だよ。少なくともそういう入力方法を叩くプログラマーは少なくないと思う。

19世紀はgoto文の時代だと思ってましたよ。

というかあまりオブジェクト指向プログラムってみたことないかも。

goto文不要論なんてもう何十年も議論され続けてるよ。大体 90年代終盤にはそこそこ普及してた Java は既に goto が実装されてなかったでしょ。今でも実装されないままだし。

それから Amazon.co.jp で「オブジェクト指向」を検索して「出版年月日が新しい順番」にソートして一番ケツに飛ぶ80年代オブジェクト指向本なんて山程出てくる。

というかあまりオブジェクト指向プログラムってみたことないかも。

なんかこのご時世におすすめないかな?

学生さんかなんかかな。もしオブジェクト指向の利点がまだ理解できてないなら、この話の増田ツリーのどっかにあったと思うけど、

  1. 関数も使わずベタ書き
  2. ベタ書きに絶望関数で手続き指向プログラミング
  3. スパゲッティ絶望オブジェクト指向プログラミングカプセル化モジュール
  4. 同じインターフェイスなのに姿を変えてしまうモジュール絶望インターフェイス概念に目覚める

ぐらいの経緯を辿ればまあオブジェクト指向の基本は掴めると思う。当然ある程度の大きさのプログラム(あんまり行数で言いたくないけど、せめて 1000行以上)を書かないと、各プロセス絶望を知ることはできないと思うけど。必要は発明の母。あとは平行して適当Amazon.co.jp で評価のいい本を読めばいい。

インターフェイス概念については、一般に知られているものだと C のストリームで理解できると思う。

FILE *fp;
fp = fopen("log.txt", "w");
fprintf(fp, "Starting log...\n");
fclose(fp);

これは log.txt ってファイルログを吐いてるのね。でも fprintf() ってのは次のような使い方もできる。

fprintf(stdout, "Starting log...\n");

stdout ってのは標準出力で、そこに fprintf でデータを渡すと(Windows の場合)コマンドプロンプトに文字列を表示する。ファイル標準出力は全く違うものだけど、インターフェイスが同じだから全く同じように出力処理を書けてるでしょ。これを発展させれば、

FILE *stream;

if (log_kind == LOG_FILE) {
  stream == fopen("log.txt", "w");
} else if (log_kind == LOG_STDOUT) {
  stream == stdout;
}

fprintf(stream, "Starting log...\n"); /* この時点で stream の種類を知る必要が無い! */

if (log_kind == LOG_FILE) {
  fclose(stream);
}

と書くことができる。年賀状大学受験合格通知は違うものだけど、初期化(書き方)が違うだけでインターフェイスポストに投函)は同じ、みたいな。それよりよく考えたら C を知ってるとは限らんよな。めんどくさくなってきた。あとはしりません。

2007-04-27

オブジェクト指向

自分もPerl CGIソースコードの修正から入ったクチだけど。

プログラミングをまっとうに勉強していけば

  1. とにかくベタ書き
  2. 何度も書くのは面倒だしすっきりしない。関数を多用したプログラミングへの目覚め
  3. 変数管理でスパゲッティ化。カプセル化の必要性を認識
  4. 関数変数って大差なくね?関数変数を一括して取り扱う仕組みの効率性に気がつく
  5. 入出力の形が一緒なら、違うものも同じように扱いたいよね。インターフェイスの統一って素晴らしい

と、先人たちの歩んだ思考パターントレースできると思うのだが。

http://anond.hatelabo.jp/20070427093912

2007-04-04

http://anond.hatelabo.jp/20070404143315

大元のエントリでは、

RSSによって、ユーザーが自由に、ウェブへのインターフェイスそのものを、選べるようになった。

ことが「ゾクゾクするほど素晴らしい」と書かれている。

私はそれに対して「それほど素晴らしくはない、良いことだとは思えない」と言っているに過ぎない。

なんでそんなキレてるんだろう。

別にRSSを廃止しろと主張しているわけではないよ。

RSSは便利だと思うし、私もRSSリーダーを使ってる。

http://anond.hatelabo.jp/20070403224400

RSSによって、ユーザーが自由に、ウェブへのインターフェイスそのものを、選べるようになった。

ってどうなんだろう。

「読者が自由に、小説装丁や書式そのものを、選べるようになった」と言い換えると微妙な感じがしない?

小説における表紙デザイン、改行の位置、文字の大きさなどなど。

それらは全て作者やデザイナーが考え抜いた末に指定したものであって、それを変えるのは作品を改変することと同じ。

表紙が気に入らないからって別の写真を貼り付けるとか、読みにくいからといって改行の位置を変えてしまうとか。

そういうのは、大袈裟な言い方だけど、「作品への冒涜」って感じがするな。

まあ、現実にはそこまで考えて作られたサイトは少ないんだろうけど・・・。

2007-02-17

Youtube革命的だったのは

インターフェイスだろうな。同じ1クリックだとWMP開くやつもあったけど、あれはうざくて最後まで見た記憶がない。Web上で1クリックで見れるってのが革命的だった。

2007-01-25

ヒト2.0

「Web 2.0の倫理」Lessig blog JP

これは間違いなくweb2.0の原則のひとつ。

多くの人々に使いやすいインターフェイス

手際よく「ハックとリミックスを可能にするためのデザイン

レッシグのこのエントリでは動画イメージについて語ってるんだと思うけど

WIKIにも同じことが言えるわけで、ここまではサイトとかアプリとかスクリプトっていう人間外の、モノ側、機械側の話。

では人間内の、ヒト側、ユーザー側のあり方の話

上記のようなコンテンツの構築の方法に特化した

素早く効率的にハックとリミックスが可能な、人間の脳というか思考というか意識、精神のあり方。

それは本読んだり喋ったりっていう従来の情報の出し入れの方法に特化した現代人のそれとは違うのでは。

そこで最も合理的な人間側の態度

新しいコミュニケーション方法、新たな環境に特化した知性の集約方法、

集団((かつては地理的地域が主だった))の知恵の構築と保護の方法を

研究し獲得する

新しい道具、メディアに合った、知性、知的情報インプットアウトプットの回路、それを具現化する言語体系とそれを扱う能力ってのが

必要になってくると思ってるのって俺だけ?

2007-01-20

世界樹の迷宮を改造したい

 まだ地下2階をうろうろしているところだけど、予想以上によくできてる。おもしろいおもしろい。DSというマシンの制約上、演出面などはチープな部分もあるけれども、初代 Wiz を遊びまくった人間にとっては全然オッケー。あと、絵は慣れます。

 ただインターフェイスまわりにすこし不満。わたしに金と権力があったら、こんな風に作り直させたい。

  • マップ切り替えはセレクト・スタートを使用する。ペンでも操作可能なので、それほど問題ないはず。
  • LRが空くので、移動中はLRをカニ歩きに割り当てる(カニ歩きがあると、クランクしている通路の移動しやすさが全然違う)。
  • 戦闘・メニュー・街ではLを決定ボタンに割り当てて、左手のみで基本操作可能とする。メニューでオプションを表示するのはRボタン
  • 十字キーの下は、わたしなら180度回転に割り当てる。
  • 移動中はBボタンを基本的に使わないので、B+十字キーで、左右ならカニ歩き、後ろなら後ろ歩き、前ならダッシュ(壁や角まで素早く前進)に割り当てると便利。カニ歩きはLRと被るけど、操作に一貫性を持たせるために。

 あとは特典ブックレットマンガを右のコマから左のコマに読ませるくらいかな。セリフが縦書きなのに、あれは混乱する。

2006-12-17

触感

電子マネーの支払いで、金額に応じて、読取り機にカードを押しつける強さを変える、というアイディアを聞いたのを思い出した。金額が大きいほど、力をこめないと「しゃりーん」と鳴らないという。「大金を支払う」感覚をフィードバックするもの。

この種のインターフェイスがあれば、たとえば株式誤発注の「1円で61万株」のようなミスも防げるのではないか、という話だった。

これだけなら、実際にペコペコ感がない平面や固定された棒きれでも、圧力センサだけつけておいて、反作用の力と音で「触感」に近いものを再現できるかも。

2006-11-17

そもそも誰もタグ付けしてない件について

いろいろインターフェイスをいじってもらいたいなぁ。

はてダ実験場みたいな扱いでいいから。

2006-11-09

「MSGINA.DLLを読み込めませんでした。」

仕事場にノートパソコン(VersaPro.VY22X/RX-L)が持ち込まれる。使用OSはWindows XP Pro.

起動するとWindows XPロゴ表示の後「SHELL32が見つかりません。」と表示され、次に「ライブラリ SHLWAPI.DLL から見つかりませんでした。」と出て、最後にはメッセージ「ログオンユーザーインターフェイスDLL MSGINA.DLLを読み込めませんでした。システム管理者に問い合わせてDLLを置き換えるかまたは元のDLLを復元してください。」となる。[再起動]ボタン表示で唯一の選択肢が示される状況。リブートしてセーフモード起動を試すもログオン画面の手前で上記メッセージが表示され同じ状況に。

毎度の事ながら今回も「Windows回復コンソール」のお世話になって復旧を試みる。とりあえずWindowsXPCD-ROMからブートし、R[復旧]を選んで回復コンソール起動、C:\WINDOWS\SYSTEM32に入ってみると「dir shell32.dll」を実行しても「ファイルが見つかりません」という表示。そこで健康な別PCからのSHELL32.DLL移植を試みる。ついでにSHLWAPI.DLLとMSGINA.DLLも壊れている可能性が高いので一緒にコピーする事に決定。

方法としてはKNOPPIX5.0.1-CDから起動、/dev/hda1 が /media/hda1にオートマウントされているので、右クリック-プロパティのメニュー内で「Read Only」にチェックが入っているのを外し、別WindowsマシンFATフォーマットして上記3つのDLLを放り込んでおいた手持ちのUSBメモリ(128M)を差し込んで、/dev/sda1から/media/hda1にコピー(作業を簡便にしたいのと面倒くさいのでルートフォルダに)

KNOPPIXはログオフ-シャットダウンし、Windows XP CD-ROMに入れ替えて再び「Windows回復コンソール」にて以下を実行。

cd \windows\system32
ren msgina.dll msgina.bak
ren shlwapi.dll shlwapi.bak
cd \
copy SHELL32.DLL c:\windows\system32
copy MSGINA.DLL c:\windows\system32
copy SHLWAPI.DLL c:\windows\system32

EXIT

これで無事起動できれば御の字だったのだが。改善されたのは「SHELL32.DLL…」のエラーメッセージのみで後2つは相変わらず。ログオン画面へ移行せず再起動選択肢しか無い状態は変化なし。

いろいろ考えあぐねた末、「元々の正常起動時のバージョンと同一のDLLコピーしてやる事で解決した。具体的には、起動しなくなったPCは「Windows XP Pro. Service Pack 1」だった(!)ので、移植するDLLは最新の「SP2」でもWindows XP CD-ROMの中の「無印」でも駄目だという事だったようだ(無事にログオン画面が表示されてもその後フリーズ)。たまたま過去に作成していたWindowsXP-SP1統合インストールCD-Rを発掘し、そこからSHELL32.DLL、MSGINA.DLL、SHLWAPI.DLLを抽出、移植作業をやり直し再起動すると「何事も無かったかのように」ようこそ画面が表示されて元通りのデスクトップ画面を復活させる事ができた。

※追記:公式情報既出だったようだ。無駄に 時間を 浪費していた かもしれない。

Windows Update Web サイトから Windows XP の更新をインストールすると、エラー メッセージが表示される

ところでSTGは終わった。あとSTGは成長してないよね。

ログイン ユーザー登録
ようこそ ゲスト さん