【Windows】Windows 10をアップグレード、クリーンインストールする方法
事前準備
元のOSのリカバリーディスクを作成する
出荷状態(つまり購入当時)の状態に戻す用のリカバリーディスクをちゃんと作っておく。
Windows 7の場合
メーカー品なら、リカバリーディスクの作成ツールがインストールされているので、それを使ってリカバリーディスクを作成する。Windows 8以降の場合
メーカー品でリカバリーディスクの作成ツールがインストールされている場合は、それを使ってリカバリーディスクを作成する。
それ以外の場合は、以下の機能を実行することで、USBメモリにリカバリーメディアを作成する。 コントロール パネル->システムとセキュリティ->アクションセンター->回復->回復ドライブの作成
いずれも、回復パーティションを意図的に削除していないことが前提
現在のシステム全体をバックアップする
今現在のコンピュータの状態を丸ごとバックアップする。
もしくは、データを退避させた上で、『よく利用するアプリケーションがインストール済みの状態にリカバリーする』ことを目的とし、コンピュータの状態を丸ごとバックアップする。
俺が使っているのは、True Image 2015 for PC and Mac - 3PC
Windows 10の入手
Windows 10 のダウンロードから、自分のOSのビット数にあったツールをダウンロードする。(64bitOSの人は、正直どっちでもいいと思う)
ツールを実行し、ISOイメージファイルをダウンロードする。 ダウンロードするビット数は、自分がインストールしたいWindows 10のビット数を選ぶ。
ダウンロードしたISOファイルを、DVD-Rに焼いておく。
アップグレード
焼いたDVDを実行すると、アップグレードが選べるので、アップグレードを選んで次へ次へでアップグレード完了。
復元
事前準備で用意しておいたリカバリーディスクでWindows 7とかに戻す。
こんなめんどくさいことをする理由
Windows 7以降の人は、Windows 10が1年間、無償アップグレード可能という話は有名。
しかし、ここでこんなことを考える。
- すぐにWindows 10を使いたいわけではない。
- Windows 10をアップグレードではなくクリーンインストールで利用したい。
これ実は、両方とも、一度アップグレードした方がよい。
すぐにWindows 10を使いたいわけではない
元々用意してたリカバリーディスクでリカバリーすれば済む話。
すぐWindows 10を使わないからといって思い切って一度はアップグレードしておかないと、忘れてて1年間経過してしまうという罠にハマってもったいないことになる恐れがある。
また、アップグレード後に前のOSに戻すメニューが存在するが、1ヶ月という制限付き、かつ失敗した人も出ている。
ちゃんと自らリカバリーディスクを用意することで、実質的にいつでも思い通りの状態に戻すということを可能にする。
Windows 10をアップグレードではなくクリーンインストールで利用したい
一度アップグレードしておくと、Windows 10のクリーンインストール時のプロダクトキーの入力をスキップしても、勝手に認証される。
これは、ハードウェア構成が変わらなければ、1年間の間にアップグレードしたコンピュータだという位置づけでアクティベーションをしてくれる。
ハードウェア(特にマザーボード)を変更したときにどうなるかという話は、Microsoftは明言していないようだし、実際試してみないとわからないけど、多分ダメなんだろう。
2015/10/30 追記
ハードウェアがかわるとアクティベーションが通りません。
つまり
ちゃんとリカバリーディスクを作っておいて、一度アップグレードすれば、やりたい放題
仮想OS
上記の理由から、仮想OS上のWindows 7などをアップグレードして利用するということは、あまり有効な手段には思えないように見える。
まだ検証していないけど、コンピュータA上でWindows 10へアップグレードして、その仮想OSのディスクファイルをコンピュータBへコピーして利用すると、ホストのハードウェア構成が変わるので、認証が外れるのでは、と思われる。
2015/10/30 追記
仮想OSの設定ファイルごとコピーしておいて、利用する際に聞かれる質問に『移動しました』を選択すればMACアドレスが変更されないので、アクティベーションは通ります。
間違っても『コピーしました』を選ばないように。
当たり前ですが、同じキーなので、複数仮想OSの同時起動はできません。
【Oracle】同じ行を複数件取得する
自分で何を言ってるか良く分からないタイトルだけど、言いたいことは以下のようなこと。
問題
通常の検索結果
col1 col2 col3 A a 1 A a 2 A b 1 B a 1
求めたい検索結果(1行につき、2行出力したい)
col1 col2 col3 A a 1 A a 1 A a 2 A a 2 A b 1 A b 1 B a 1 B a 1
解決方法
パッケージを作ればできる。
余計なワークテーブルを作る必要もなく、既存クエリへの影響も少なく済む方法は、以下の通り。
Package ROW_OPERATOR
CREATE OR REPLACE PACKAGE ROW_OPERATOR IS TYPE REC_TYPE IS RECORD ( ROW_NUM NUMBER ); TYPE REC_TABLE_TYPE IS TABLE OF REC_TYPE; /** * 検索行した複数行に渡ってコピーするためのテーブルを取得します。 * @param A_CLONE_ROW_CNT コピー件数 * @return コピー用テーブル */ FUNCTION GET_CLONE_ROW_TABLE(A_CLONE_ROW_CNT IN NUMBER) RETURN REC_TABLE_TYPE PIPELINED; END; /
Package Body ROW_OPERATOR
CREATE OR REPLACE PACKAGE BODY ROW_OPERATOR IS /** * 検索行した複数行に渡ってコピーするためのテーブルを取得します。 * @param A_CLONE_ROW_CNT コピー件数 * @return コピー用テーブル */ FUNCTION GET_CLONE_ROW_TABLE(A_CLONE_ROW_CNT IN NUMBER) RETURN REC_TABLE_TYPE PIPELINED IS L_CNT NUMBER; L_REC REC_TYPE; BEGIN L_CNT := 1; WHILE L_CNT <= A_CLONE_ROW_CNT LOOP L_REC.ROW_NUM := L_CNT; PIPE ROW(L_REC); L_CNT := L_CNT + 1; END LOOP; RETURN; END; END; /
使い方
SELECT WK.ROW_NUM, TBL.* FROM table1 TBL, TABLE(ROW_OPERATOR.GET_CLONE_ROW_TABLE(4)) WK
単純結合によって、求めたい行を複数行出力させるようにする。
【C#】EnterキーでTabキーを押した時と全く同じフォーカス遷移を行う
EnterキーでTabキーを押した時と同じフォーカス遷移を行いたいという要望は、案外多い。
古いシステムからの名残りだったり、そもそも提案した人が古い人だったりで。
果てはWebシステムでもそれを望むこともあるが、今回はWindows Formsアプリケーションの場合の解決方法を記す。
Enterキーでフォーカス遷移する方法は、難しく考えすぎて意外とハマる。
他のサイトで調べた結果、最適解を導き出した。
参考サイト
Enterキーを押した時、まるでTabキーを押したかのように、次のコントロールにフォーカスを移す - .NET Tips (VB.NET,C#...)
色々あって全部試したわけではないが、コンポーネント単位に継承するのは非効率。
コメント欄に[たきる]ってなってるのは俺^^;
Windowsアプリケーションで[Enter]キーによるフォーカス移動を行うには?:.NET TIPS - @IT
C# - フォームで [Enter] キーが押された時にフォーカスを遷移させる
SelectNextControlメソッドを利用すると、『自分のオブジェクト配下に存在するコントロールを遷移する』だけであり、Tabキーと全く同じにはならない。
【SQL Server】Oracleへのリンクサーバーを作成する
サーバA
Windows Server 2008 R2 x64
SQL Server 2012 R2 x64
サーバB
Windows Server 2003 R2 x86
Oracle 11g 11.2.0.1.0 x86
サーバAのSQL Serverにリンクサーバーを作成し、サーバBを参照できるようにする方法が分かったので、記しておく。
前提としては、当たり前のように、それぞれのDBが、外部からアクセス可能になっていること。(特にOracle側)
【C#】フォーム終了時のValidating、Validatedイベントを制御する
Visual C# 2012
.NET Framework 4.5
入力エリアコントロールにあるCausesValidationプロパティはデフォルトではtrue。
そのため、何も意識しなければ、Validating、Validatedイベントは走行し、フォーカスを失った時に入力値を検証し、OKならフォーカス移動させる、NGならフォーカス移動させないということが可能だ。
その動作を利用して、フォームを閉じた時に制御を加えよう。
続きを読むこういうの書こうかな
あれができたら便利、これができたら便利、あれができたらなー、これができたらなー
世の中に出回っているアプリを使えばできるものが多いでしょう。
しかし、意外と以下のようなことが往々にしてあります。
- 個人的に使い勝手が好きじゃない。
- 外部アプリケーションからの呼び出しが行えない。
- バックグラウンド動作をさせることができない。
- 使い勝手やライセンスの関係上、客向けに提供できない。
- 複数のアプリを組み合わせないと実現できない。
- 古めかしい文化のせいで、自社開発以外のものを受け入れない。
まぁ、そんなことないかもしれませんが、あるかもしれません。
だから
じゃあ自分で作る
アプリを公開するわけではありませんが、アプリを作る方法をちょこちょこ小出しにしていこうかと思います。
もちろん、自分で作るといっても、OSS(オープンソース)のライブラリやフレームワークを使わないわけではありません。
しかし、極力無償の範囲内で実装する方法論をベースに記します。
金を払ってでも無償よりよっぽどいい!というものも記します。
【PHP】xdebugを設定する方法
いっつも忘れるので、サイトを徘徊して見つけるんじゃなくて、ひとまとめにしとこう。
環境
ダウンロード
設定
[XDEBUG] zend_extension="D:\php-5.6.5-nts-Win32-VC11-x86\ext\php_xdebug-2.2.7-5.6-vc11-nts.dll" xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.show_local_vars=1 xdebug.dump_globals=1 xdebug.dump.SERVER=QUERY_STRING, REQUEST_URI xdebug.dump.GET=* xdebug.dump.POST=* ;xdebug.profiler_enable=1 ;xdebug.profiler_output_dir="D:\php-5.6.5-nts-Win32-VC11-x86\tmp" ;xdebug.auto_trace=1 ;xdebug.trace_output_dir="D:\php-5.6.5-nts-Win32-VC11-x86\tmp"
PHPのバージョン、スレッドモードを合わせたxdebugをダウンロードするのが前提で、設定内容は以下の通り。
zend_extension=xdebugのdllが存在するパス xdebug.remote_enable=onでリモートデバッグ xdebug.remote_handler=dbgpで固定 xdebug.remote_host=リモートホスト(ローカル開発は大抵localhost) xdebug.remote_port=9000がデフォルトポート xdebug.show_local_vars=1で変数の表示を行う xdebug.dump_globals=1でグローバル変数の表示を行う xdebug.dump.SERVER=QUERY_STRING, REQUEST_URI $_SEVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]のみ表示する xdebug.dump.GET=*で$_GETの中身を全部表示する xdebug.dump.POST=*で$_POSTの中身を全部表示する ;xdebug.profiler_enable=1でプロファイルを行う ;xdebug.profiler_output_dir=プロファイルの保存先ディレクトリ ;xdebug.auto_trace=1でトレースを行う ;xdebug.trace_output_dir=トレースの保存先ディレクトリ