サンデープログラマー
パソコンにまつわるいろいろ
カレンダー
<< 2017年7月 >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

最新の記事

最新のコメント

カテゴリ

過去の記事一覧


 自分のパソコンは、セキュアか。今日は、そんな事を考えてみたい。新聞をにぎわず情報漏えい、仕組みはバックドアだ。標的型ウイルスとも言われる。

 厄介なのは、アンチウイルスソフトでは検出できない事が多い。そもそもアンチウイルスソフトは、代表的なウイルスは、検出できるが、改造された物や、オーダーメイドは、検出するすべを持たない。どの位いい加減かを実感するには、疑似ウイルスソフトを使って見れば、分かり易い。

 疑似ウイルスコードは、短く、自身を複製しない。悪さもしない。ただ検出されるコードを内在するだけだ。このコードをメモ帳などにコピペして、ディスクトップなどに保存しようとすれば、アンチウイルスソフトに検知される。ただ、そのコードの前に、i am a bad boy.などと追加してみよう。今度は、すんなり保存できてしまう。そもそもアンチウイルスだけでは、万全ではないのだ。

 次に、Windows7などは、「セキュリティが強化されたWindowsファイヤーウォール」が追加され、プログラムごとに、通信規則を決められる。こうした仕組みが、きちんと働けば、情報漏えいなど有り得ないと思うかも知れない。

 所が、VB.netなどでメールプログラムを作ってみるとよい。添付ファイルを適当に決めて、プログラムを走らせる。何の警告も出ないで、まんまとファイルを送信できてしまう事が、分かるだろう。こんなに簡単に情報を持ち出せると分かれば、何か対策を考えざるを得ない。

 自分のパソコンに、バックドアが有るのか、無いのかを見極める便利なツールは、Microsoftが準備した「Sysinternals」のツールが役に立つ。初めに実行するのは、AutoRuns かな。問題は、ちょっと使い方がむづかしい。

 そこで、そもそもWindowsに備わっている機能で、そうした事の対応と言おうか、知ると言おうか、そうした事ができないか考えてみた。

 ネットをググると、まず初めにすべきは、セキュリティログの保存だ。次に、保存されたEventLogを見る事だが、これが大変だ。何せ量が多い。

 EventLogを見やすくする。となれば、サンデープログラマーの登場となる。このプログラムに関しては、ページを改めて、もう少し詳しく書いた。自分のパソコンが、遠隔操作で使われるとしたら、ネットワーク経由のログが残るはずだ。しかも、自分のIDではないかも知れない。そんな事を念頭に解析を進めれば、良いのではなかろうか。

 プログラムは、セキュリティのログを念頭に、書き進めている最中だと言う事を理解して頂きたい。セキュリティ以外のログは、読めるようではあるが、使い勝手は今一かも知れない。そもそも、ログのファイル形式をネットで調べたが、分らなかった。勝手に自分でこうだろうと見積もった物だから、大きな間違いがあるかも知れない。その場合は、あしからず。

 考え方は、まず、ログを残す。セキュリティ上、エラーとか、警告があれば、その時点でメールがスマホなどに飛ぶ。

 次は、そのログの解析だ。表は、タイトルをクリックするとソートされる。コントロールキーを押したままクリックすると、並びが、逆転する。

 そもそもどんなIDがログオンを試したかとか、そのIDは、時間経過を追いながら、どんな事をしたのかとか、整理をして見る事で、不正なログオンが有ったのか、無かったのかなどを知る事になる。

 作っている最中なので、プログラムの中身が大きく変わるかも知れない。適当なところで、ソースも載せたいとは思っている。コードと言っても、ネットを探して、コピペの部分が多いけどね。

posted by おやじ at 2015/07/11 11:18
コメント(0)  トラックバック(0)

 サンデープログラマーとしては、久しぶりの投稿だ。題材は、サーバーの電源異常に如何に対応するか。そんな事を考えてみた。きっかけは、100Vのコンセントが、意に反して抜かれてしまったり、工事関係などで、いきなりブレーカーが落とされたり、見慣れたパソコンが、まさか、サーバだなんて、理解されない所から、その対策を考えると言うなんとも、受け身的な話だ。普通に考えれば、有りえない話だが、ある所には、かなりの頻度で有る物だ。

 目標は、電源断は、有りうる。それを知り、電源が回復した時、サーバーも回復させるか。つまり、知らない間にサーバーが停まったままになって居る事を避ける事を目標にした。考えられる想定を2つとした。一つは、ブレーカの切断により全体の停電。全電源喪失だ。2つ目は、コンセントが抜かれるなどサーバーだけが、間違って電源を切ってしまったなどだ。その時、サーバー管理者である自分は、外出中としよう。

対策
①全電源喪失かどうかは、「ネットワーク監視サービス」に登録しておく事で、確認できそうだ。全電源が無くなれば、モデムルータの電源も失われる。PINGが疎通しなくなるので、そのタイミングでスマホにメールをもらう。無停電電源の設置も出来れば、万全だ。サーバを痛める事も避けられる。

②通電が回復し、PINGが通れば、外からマジックパケットを送って、パソコンを起動させる事が出来る。「Wol Wake On Lan Wan」や「Remotch」などが役に立つ。モデムルータの設定も、これに関連してネットをググれば、すぐに見つかる。サーバ関連のソフトでは、これを外から起動できたかどうかを知る為に、「I am wake up.」メールを出せば、世話は無い。

③次は、結構厄介だ。間違ってコンセントを抜かれた場合。無停電電源がシャットダウンを促す。仕様書だけの確認なので、そのはずだが。それを受けて、シャットダウンを感知して、「I am dying.」メールが出せれば、良い。もっとも、それを受けたら、すぐにでも電話なりを掛け、コンセントを戻させなければ、復帰はしないが。

④後は、念のためと言うか、自分自身か、他からか、どちらでも良いが、PingとHTMLの要求を一定時間ごとに繰り返えす。異常が有れば、それを通知する。

 今回は、そうした事を念頭にソフトを書いて見た。書いて見たと言うより、調べてみたら、大方のコードは、コピペで済んでしまった。それをまとめただけと言う便利な時代だ。VB.netで大きさにして、24KBite程度と言う小さなもの。例によって、プログラムとソースをまとめる。バグは必ず潜んでいると考えて、ください。責任は負えませんので、その点は何時もの通り、よろしくお願いします。

プログラムの説明
「add.txt」ファイルは、メールの通知を受けるためのe-mailアドレスリスト。「smtp.def」は、メールを送るためのプロバイダーのsmtpサーバー情報。「watching.exe」は、プログラムの本体。プログラムは、Microsoft Visual Basic 2010 Express で開発しました。改良やバグの修正はソースを参考に自分で行ってください。

ダウンロード

posted by おやじ at 2015/01/26 10:24
コメント(0)  トラックバック(0)

 VB6.0からVB.NETに切り替えたは良いが、LigFile2の後は、使ってないね。これでは、忘れてしまう。と思い、次のプログラムを書く事にした。どうせなら、実益も含めてと言う事で株のグラフプログラムを作る。

 株のプログラムは、金が絡むためか有料の物が殆どだ。それに、当たるはずもない訳の分からぬ論理を粉ね、売り買いを勧めると言う。その内部処理も分からず、金を払ってまで使う気には、なれない。株は、安い時に買って、高くなったら売る。それで生活はしないので、その差額だけ頂ければ、それで良い。となると、プログラムの仕様は決まった。株価のグラフが表示できて、使い勝手が面倒でなければそれで良い。必要なら、必要なロジックを簡単に追加できれば、なお良い。と言う事で、①株価のデータは、オンメモリで持つ。②ローソクグラフの表示。これだけの物を作る事にした。後は、必要な機能は、追加すれば良い。

 VB.NETでは、分かり易い文法書が、見つからない。だが、プログラムする時に、つまった所で逐一ネットを検索すれば、大方は、参考になるプログラムのコードまでが、手に入る。そうしたコードを掻き集め、自分の目的に合わせて書き換えれば、プログラムは、出来て行く。それが、VB.NETの学習にもなる。このプログラムはそうやって作りました。

 そうして出来たプログラムを添付する。解凍したら、適当な場所に置く。レジストリーやインストールなど面倒な事は何もしていない。このプログラムを使うには、株価データの圧縮解凍にこのプログラムが使うため、プログラムの「Lhasa.exe」を事前にインストールする必要が有る。場所は、プログラムのディフォルトから動かさない様に。「Lhaca」ではなく、「Lhasa」だ。次に、データのダウンロード場所は、株価情報日経225から頂く事になる。そこまでが前提で、次は使い方。

使い方: 
①プログラムを起動。Help、Web_Dataでデータのダウロード場所を確認しよう。
②マウスを使ってプログラムの右端をクリック&ドラッグして、プログラムのWindowを横に広げよう。
③カレンダーが出て来るので、データのある日付けをクリック、「Data DownLoad & Set」もクリックすれば、データをプログラムに順次取り込める。
④取り込んだデータは、マスターとして保存する。
⑤データは、ダウンロードしてから、そのファイルを解凍しても、しなくてもプログラムにドラッグ&ドロップしても取り込める。複数でも大丈夫です。
⑥銘柄コードは、名前をその通りとして、プログラムと同じ位置に置くが、別の物に変える時は、ドラッグ&ドロップ。編集は、ダブルクリックで選択銘柄を削除、保存は、右クリック。
⑦メニューの「Real_Stock」は、松井証券の『現物瓜<保有銘柄一覧>」をCtrl+a、Ctrl+cでクリップボードに入れ、Ctrl+Vで貼り付ければ、一覧表が取り込める。銘柄をダブルクリックすれば、そのデータのグラフが表示される。松井証券の場面コピーを、一端、メモ帳で受け、ファイルにしたものをドラッグ&ドロップしても良い。
⑧グラフをクリックすれば、該当のデータが、選択される。
⑨取得価格が、グラフ上はラインで表示される。つまり、それより高くなったら売れば良い。

 例によって、お約束の免責です。ソフトウェアライセンス提供者の免責条項として、そのソフトウェアによってユーザーのコンピュータやデータに損害が生じても補償致しません。

 後は、ソースコードをいじって、必要な機能を追加してください。出来れば、こんなことしたよ的な話でも、してくれると、参考になりますね。

posted by おやじ at 2014/05/30 13:00
コメント(0)  トラックバック(0)

 うっかり、気が付かずに、深みにはまりました。

 これまでも、ハードディスクには、何々の壁と言われるのが付いて回りました。ですが、Windows8だから、今市販されているハードディスクでは、そんな物は解決できているはず、そう言う思い込みが有りました。

 事の始めは、2Tのハードディスクです。Cドライブに2Tのディスクを入れ、Windows8.1をインストールする。当然、何の問題も無い。もっとアクセスを早くしたいと言う考えに立ち、RAID0を組む。見かけは、インストールが進んだように見えました。所が、起動したWindows8.1で見ると、Cドライブの容量が足りません。4TBiteになって居ないのです。散々、いじりまわしたドライブなので、そこに原因でもあるのかと、ドライブを交換するが、現象は全く同じです。

 早速ネットをあさると、見つかりました。2TBiteの壁です。データの領域として、Dドライブは良いが、プログラムが入るCドライブは、最大で2Tbiteまで。実は、この壁が残って居ました。

 解決法は、RAID0を組む時、その容量を2つに分ける訳です。例えば、名前をSystemとし、Disk1とDisk2の物理デスクを指定する。RAID0の設定で、容量は、デフォルトの合計容量を半分にして、指定する。最大で2TBiteまでですね。残りの容量には、名前をDataなどとして、残りの容量をそれに充てる。2台でRAID0を構築して、RAIDで付ける名前を分け、論理的にCドライブ2TbiteとDドライブ2Tbiteに分ける訳です。これで、2台で、CドライブもDドライブも両方とも、RAID0になった訳です。この方が賢いですね。

 ちなみに、HDBENCHで見ると、RAIDを使わなければ、Read 105,567、Write 102,297でした。RAID0では、それが、142,222 と、192,481になりました。書き込みが早いですね。当然、Dドライブも同様でした。

 Dドライブが2TBiteと言うのも、気になり、もう少し欲しい気もします。ドライブを3台にして、プログラム領域に2TBite、データ領域に4TBiteのRAID0も悪くは無い。だが、そうなると課題は、データのバックアップです。RAID0は、早い代わりに、信頼性は悪くなる訳で、故障しやすくなる。そんな時、プログラムは、再インストールすれば復活するが、データは、そうは行きません。そこでデータのDドライブをバックアップする必要が出る。RAID0を組む時は、それも同時に考えるないと。すぐには、故障しないだろうが、必ず、必要な処置でしょうね。

 ちなみに、4TBiteのディスクをどうバックアップするかで、4TBite以上の領域が必要になる。パソコンのケースには、4台までなら、入るが、それ以上は、アダプターが必要になるし、12V0.5Aのディスクだが、1台増えると、100Vベースでは、約10W電気の消費量が増加する。それも大事だ。

 新しいパソコンは、新しいときにいじりまわす。十分に知り尽くす。やがて、このパソコンが、メインのパソコンになった時は、素晴らしい設定となっているように、今の内に調べつくす。そんな事で、すでにOSの再インストールを何回した事か。ですが、UpDateのデータも少ないので、パソコンは、新しい内にいじりまわすのが、最善ですね。

posted by おやじ at 2014/04/08 10:47
コメント(0)  トラックバック(0)

 今も試行錯誤です。

 SSDの評価に関しては、追記を3月の22日にしました。その後、いろいろ試したが、Intelのソフトをアンインストールしてからスリープ設定をする。その方が早い事が分かりました。スリープからの復帰は、今現在で、3秒程度です。Intelのソフトを使ったIntel Rapid Start Technology は、持ち運ぶノートでは役に立つ物かもしれません。ですが、メモリをたくさん積み、電源が常時通電されたシステムでは、なんと、返って足手まといのソフトだと分かりました。となると、役につのは、VirtualPCだけですね。VirtualPCだけとなると、価格を考えると、高いですね。

 結局、ディスクトップパソコンを前提に考えれば、電源が切られた状態からスタートを早くしても、そんなに使う頻度はない。むしろ、スリープからの復帰が、3秒程度なら、それで問題はない。公平に考えれば、SSDの導入は、容量も少ないし、価格も高いし、結局、時期尚早ですね。

 次に、3月23日のRAIDの話ですが、結局、方針を変え、今は、RAID0の設定にしました。ハードディスクのスピードと容量を求める設定です。OSで設定しました。パソコンの構成によって、当然選択は異なるでしょう。ちなみに、バックアップは、どうするのだと言う事ですが、Windows8.1に備わっているファイルバックアップ機能を使うことにしました。

 まず、構成ですが、C:システム用HDD、D:RAID0の設定(これに、ホルダーを作成する。例えば、Savedなど)、E:バックアップファイルが入るHDD こんな構成です。D:ドライブに作ったホルダーを右クリックして、「ライブラリーに追加」を選択します。保護すべきデータは、このホルダーで作業をする。後は、OSのファイルバックアップのスケジュールに従って、バックアップを取って保護する。これで、良いかなと思いました。

 心配は、E:ドライブの容量です。バックアップすべきファイルが増えれば、場所を使いますからね。バックアップが必要ないファイルと、必要なファイルの割合でしょうか、その辺がまだ読めません。

posted by おやじ at 2014/03/25 12:55
コメント(0)  トラックバック(0)

 新しく組み立てたWindows8、次はDドライブだ。Cドライブが、システムならば、Dドライブは、データ専用にまとめたい。システム含むプログラムは、再インストールすれば、復旧できる。だが、データは、無くしたら最後、復旧できない。となると、大事なのは、データの保護だ。

 データの保護と来れば、RAIDか、OSのファイルバックアップ機能だ。どちらも、データ以外の場所を必要とする。どちらを選ぶかは、それぞれの特徴を考え、それぞれの考えで決まる。私の場合は、突然の事故でも、直前のデータを残したいので、RAIDを試す事にした。

 RAIDを実現する方法は、幾つか考えられる。

①マザーボードに付属する機能を使ってRAIDを組む方法。RAID1とRAID5が対象となるだろう。

②OSが持っているRAID機能だ。ディスクの「管理」から、それを指定すれば良い。

③Windows8で新しく機能が加わった、記憶域と言う機能で実現するのも良い。

 以前、マザーボードとOSのRAID機能で、RAID0で比較した事が有るが、速度に差は認められなかった。どちらが使い易いかと言えば、OSだ。だが、システムディスクの場合、選択はマザーボドだけとなる。今度はデータなので、それにWindows8特有の記憶域なる機能が比較の対象となる。

 データで、システムではない。と言う事で、まず、使いずらいマザーボードのRAIDが脱落する。OSのRAIDか、記憶域かの比較では、速度は、変わらず、使い易さは、記憶域の機能に軍配が上がる。

 次に、単純なRAID1か、ディスクの使用効率が良いRAID5か。RAID5にした場合、読み出しは早くなる。2倍くらいかな。だが、書き込みが極端に遅くなる。パリティーを計算してからの書き込みだから、めちゃめちゃ遅い。半分なんて物じゃない。一桁位遅い。コピーすると、あれ、まだ終わってない、と言う感じだ。2倍と半分以下、掛け合わせても、1を割ってしまう。そんな遅さだ。ROM代わりにデータを使うなら良いが、日常的に使うとなると、これはダメだな。そこで、RAID1を選択した。

 ここが重要。次に気になるのは、記憶域で組んだRAID1のディスクだが、システム領域がダメになり、再インストールした場合、記憶域のデータは保全されるのだろうか。つまり、データにDディスクとしてRAID1を組み、Cディスクのシステムを再インストールした場合、記憶域内のデータは、再インストール後も使えるのかと言う疑問だ。これは、最も重要なポイントだ。ネットを調べるが、そうした記事に出くわさない。

 実際に再インストールしたが、どうやら大丈夫そうだ。私のシステムではとして置こう。つまり、使えると考えて良さそうだ。記憶域がその様に設計されているのかどうか、それは、書かれている物が見つからないので分からない。保障出来るほど本当に大丈夫なのか、それは分からない。だが、当然、そのくらいの事は、考えての記憶域だろう。取りあえず、試した段階では良かった。プログラムをインストールして、システムが肥大化する前に、イメージバックアップを取り、何かに保存して置けは、確実に安心だ。

 そうして、組みあがると、なんていう事はない。CドライブとRAID0のDドライブ、それに興味から、おまけで付けたSSDだ。だが、使っていると、起動は、そこそこ早いし、XPも健在だ。普通に良いパソコンに仕上がった気がする。

posted by おやじ at 2014/03/23 11:51
コメント(0)  トラックバック(0)

 意を決して値段の高いSSDを購入した。VirtualPCを高速にするためには、確かに役立つ。だが、値段が高いので、土台となるパソコンの役に立てたい。マザーボードには、Intel 2013 Desktop Responsiveness Technology と称して、3つの便利なツールが用意されている。

①Intel Smart Response Technology は、SSDをキャッシュに使ってハードディスクを高速にするツールだ。システム要件として、気になるのは、DRAMが8GB以下となっている。これでは、使えないと言う事になる。ハードディスクを高速にするのになぜ、メインメモリが関係するのか、理解しずらい。プリフェッチ機能がそれ程有効と言う事なのか。SSDを買うなら、メインメモリを増やせと言う事なのか。
 実際問題、付属のマニュアルをプリントアウトし、間違いの無いように進めたが、機能のインストールが出来なかった。

②Intel Rapid Start Technology は、休止状態からのシステムの起動を高速にするとある。通常使うのは、スタンバイで休止状態ではないが、試してみようと言う事で、印刷したマニュアルに沿って、インストールする。スタンバイ状態から、ログオンして、画面が安定したなと思えるまで、30数秒掛かる。これが、この機能を使うと、スタンバイ状態、あるいは休止状態から13秒程度で作業可能画面にたどり着く。しかも、電源は切れているようだ。これは、使える。メインメモリと同じ大きさの32GをSSDに確保して、残りは、VirtualPC用に使える。

③Intel Smart Connect Technology は、電子メール、ソーシャル・ネットワーク、ニュースなどを待ち時間なしで使えるように自動更新する機能だとある。これは、いらない。

 と言う事で、SSDを使ってのReady Boostは、実現できなかったが、それに代わる別の機能で、パソコンのスピードを改善することが出来た。その費用として、2Tのハードディスクが2台相当買えるSSDは、高いか、手ごろなのか、評価は、まだ高いと言う所だろう。

 だが、値段が下がれば、欲しい機能を早めに手に入れた代償という事かもしれない。

追記(2014/3/25): その後、いろいろ試したが、Intelのソフトをアンインストールしてからスリープ設定をする。その方が早い事が分かりました。スリープからの復帰は、3秒程度です。Intelのソフトを使った上記テストは、持ち運ぶノートでは役に立つ物かもしれません。ですが、メモリをたくさん積み、電源が常時通電されたシステムでは、返って足手まといのソフトだと分かりました。

posted by おやじ at 2014/03/22 11:00
コメント(0)  トラックバック(0)

 新しいパソコンの性能を上げたいのは、誰しも考えること。そこで注目したのが、SSDだ。SSDに興味はあるが、まだ容量が少なく、C:ドライブに使うには、躊躇する。ReadyBoostの機能を使って起動を早くするという方法もあるが、Netで調べる限り、メモリが32GBiteも積んであれば、プリフェッチ機能が働くのでReadyBoost機能は、効果が少ないとMicrosoftのページにあった。

 試しに、USB3.0に3.0対応のUSBメモリを装着するが、「このディバイスはReadyBoostに使用できません」とメッセージが出る。しかも、「このコンピュータは十分に高速で、ReadyBoostによるさらなる効果が得られないと思われるため、ReadyBoostは有効になってません。」ともある。コントロールパネルを開き、SuperFetchを確認する限りにおいては、自動になっているので、設定が悪いわけではない。SSDの価格をkakaku.comで調べると、250GBiteで1万3千円台。これでは、2TBiteのHDDが2台買えそうだ。

 SSDを使って、もう一つの欲しい用途は、VirtualPC用だ。WindowsXPが、Windows8.1のVirtualPCで起動できるが、起動には、起動ボタンをクリックして、マウスの砂時計が消えるまでに、28秒から30秒くらい掛かる。同様に、VirtualPCにインストールしたLinuxもそこそこ掛かる。これを早くしたい。これは、どのくらい早くなるか分からないが、確実に早くなるだろう。XPは3月16日のブログに書いたが、セキュリティに注意して使い続けたい。

 通常は、Windows8.1は、スリープ状態からの復帰だから、起動の遅さは、さほど気にならない。だが、VirtualPCは、スリープ状態からの復帰で使うのは、心もとない。幸い、XPだけでなく、多くのLinuxが、インストールできることが分かった。250Gbiteもあれば、使うには十分だ。思い立った今を逃したら、後悔するぞ、という事で、意を決して高いSSDを買う理由を自分に納得させて買うことにした。

 すぐに届いたので、さっそく装着、試しにReadyBoostを試みようとするが、例のメッセージが出て、使えない。やはり、VirtualPCの起動改善に使うのが良い。

 HDDに作ったVirtualPCのディスク部分をSSDにコピーする。そんなやり方で、難なく引っ越しは済んだ。起動すると時間にして、13秒程度だ。HDDの半分程度の時間だ。続いて、ベンチマークを測定する。使ったのは、HDBENCH を使う。

 結果は、驚くべき数字を叩き出した。だから、これを書いている。
 簡単に数字だけを羅列するが、同じソフトを使えば、意味は分かると思う。

All 202,857
Int 228,115
Flo 64,824
MR 186,702
MW 184,110
RW 361,669
DD 453
Rec 629,800
Txt 31,352
Elli 22,320
Bit 2,562
Read 408,782
Wrtie 297,674
SP 11,765

 特に驚くのは、グラフィックで、3Dの性能に当たるDDは、453を叩き出す。何だよ、HDDのReadじゃないのかと、言われるかも知れないが、それもある。だが、グラフィックがすごい事になっている。使った感じは、スパスパという言葉がよく似合う。もっとも、計算速度はそれなりだけどね。

 VirtualPCで使いたいときにすぐに起動する。もたつくのではなく、スパスパ動く。VirtualPCが、完全にWindows8のアプリケーションの一つになった気がする。でも、高いなぁ~。

posted by おやじ at 2014/03/20 13:36
コメント(0)  トラックバック(0)

 Windows8.1のVirtualPCにWindowsXPをインストールする。4月には、Microsoftのサポートが切れるXPだが、3月16日に書いたブログの様に、VirtualPCの中にXPを置き、土台となるWindows7やWindows8のセキュリティを利用して、使うのも良い。

 そこで、WindowsXPをWindows8.1のVirtualPCにインストールする。手順は、ネットでググれば、出ているが、それと変わらない。一応、簡単にまとめれば、

①Hyper-V マネージャーを起動し、右ペインのメニューから、仮想スイッチマネージャーを選択。内部、外部では、外部を選択して、仮想ネットワーク接続を作る。

②同じく右ペインの新規から仮想マシンを作る。

③仮想マシンに接続して、インストールを開始する。

④インストールができたら、画面の大きさをWindowsXPから指定する。この時、すぐに再起動を求められるので、素直に応ずる。

⑤再起動ができたら、総合サービスをインストールする。これで、初めてネットワークが繋がる。

⑥認証を手続して、updateを繰り返す。

 注意点は、画面の大きさを、総合サービスをインストールする前に実行すること。後で行うと、再インストールの憂き目を見ることになる。

 同じ要領で、
 UBUNTU、KNOPPIX、ZORIN、OpenSUSE、Fedora、DEBIANをインストールしてみた。うまく行かないときは、USB経由のDVDだったり、ISOファイルを使ったり、変えると出来た。いずれもネットワークにつながり、良さそうだ。VINEだけが、まだうまく行かないので、再度挑戦してみよう。

posted by おやじ at 2014/03/18 10:28
コメント(0)  トラックバック(0)

 いよいよカウントダウンが始まったWindowsXPのサポート終了ですが、Windows7の付録に付いてくるXPをどうしますか。VirtualPCの問題ですね。使い続けたいが、危険はヤダと、迷いますよね。

 まず、いつの間にか、だんだんと遅くなったXPモードを早くする方法は、ネットをググると出ています。それによれば、Options.xml ファイルを開き、<enable_idle_thread type="boolean">true</enable_idle_thread>を追加すると有ります。確かに早くなりました。

 今回は、そのXPをサポート終了後も、使うのか、止めるのか、どうするのかを決めなくてはなりません。サポートが終了すると言う事は、Updateが無くなる事で、ウイルスの感染など、危険が増すと言う事を意味します。こうした危険は、メールやインタネットの閲覧が、感染源と考えて良いでしょう。

 メールもインタネットの閲覧も、何もXPでやらなくても困る話ではないと思いますので、ここは、そうしたプログラムを使わないと決める事で、危険をある程度回避できます。出来れば、使わないのだから、利便性を多少犠牲にしても、ポートを閉じてしまうなど、更に安全を図るのが良いかと思います。

 それでも、もし、ウイルスにかかったら、それをどうやって駆除するのか、考えますよね。実は、方法は有るのです。それを解説します。でも、あくまでも、自己責任ですよ。

①まず、VirtualPCのディスクの場所を調べましょう。プログラムメニューから「Windows Virtual PC」を起動します。そこの「プライマリーディスク」から.vhdディスクの場所を調べます。

②次に、コンピュータのアイコンを右クリックして、「管理」を開きます。左ペインの「ディスクの管理」を選択し、メニューの「操作」を展開し、「VHDの接続」を選択します。

③もうお分かりですね。先程のVirtualPCを接続すれば、本体のWindows7にディスクが追加されたと同じになりますから、「Microsoft Security Essentials」を起動して、ウイルスチェックをする。

④終わったら、コンピュータの管理で、ディスクの左側、「ディスク~ ベーシック」などと書かれた所を右クリックして、「VHDの切断」を選択しましょう。

 時々こうして、ウイルスチェックをしてやれば、安心ですね。これで、XPを使い続けられるんじゃないでしょうかね。

posted by おやじ at 2014/03/16 10:53
コメント(0)  トラックバック(0)

 勝手に文章を送信するとして、中国検索大手「百度(バイドゥ)」製の日本語入力ソフト「バイドゥIME」がスパイソフトとして注目された。それと同じく、スマートフォンでは同社製Simejiが、スパイソフトとして注目されている。

 日本で販売されているパソコンで、中国で組み立てられた日本向けパソコンのレノボには、組み立て段階でボットネット・マルウエアがプレインストールされる事が、マイクロソフトの調べで明らかになった。マイクロソフトのホームページにも掲載されている。しかも、そのパソコンに指令を出すサーバーまで準備されている。そんなレノボは、今でも日本国内で、売りまくられている。

 これらは、中国のサイバー空間での覇権を狙った国家戦略と見る事が出来る。中国から指令を出せば、何時でも情報を抜いたり、パソコンの機能を停止する事を狙いとする戦略的目的が、見え隠れする。

 そうした問題を持つSimejiを、そんな事をしているとは知らず、スマホにインストールして、Wifi接続してずいぶん使っていた。問題が顕著に分かったのは、使い続けてずいぶん経過してからだ。きっかけは、Apacheのログを独立行政法人情報処理機構が提供するウェブサイト攻撃の検出ツールに掛けた時、何故か11月に、なんとスマホからサーバーに攻撃が有るぞと、レポートされたからだ。疑問は、①何か月も使って居るのに、なぜ11月なんだ。早速に、Semejiをアンインストールする。当然だが、攻撃は止まった。と同時に、②それ以降、おはようのWeb Attack Report で、分かる通り、外部からの攻撃も停止した。全くもって不思議だ。1月の今に至っても、攻撃は無い。

 改めて、問題部分のログの問題部分と思われる所を一部抜粋すると
=.%2Fimg%2FH25.11.15%2Fharuto090Xhp.jpg HTTP/1.1" 200 
 となっている。当然、これだけではないが、どこかで見た様な。。。 これって、ウイルスのトロージャンが、OSに知られぬ様に、他のウイルスを連れ込むときに、使うのと同かも。③いったい、Simejiは、これで何をしようとしているのか。思い当たるのは、一つ、バックドアだ。

 単純に推理すると、Simejiは、文章を送るだけでなく、①から言える事は、外部からの指令に基づいて特別な活動をする。それも、勘ぐれば、レノボパソコン同様に、パソコン内にバックドアーを仕掛けるソフトを導入する目的が有るのではないか。それが意味する所は、更に勘ぐれば、仕事が終われば、もはや、外部からサーバーに攻撃する必要はない。そういう事なのか。

 バックドアは、アンチウイルスソフトには、検出できない。ロジックも定かで無い。と言って、すべてのパソコンのOSを再インストールするのは、現実的でない。バックドアーを仕込まれたとしたら、どうやってそれを見つけるのか。いやはや、参ったね。

posted by おやじ at 2014/01/21 11:40
コメント(0)  トラックバック(0)

 このサイトでも結構便利に使わせて頂いているのが、「小説」と言うアプリケーションだ。ページ毎に記事が増える用途には、都合が良い。例で言えば、「Web Attack Report」などがそれに当たる。

 記事の本文には、HTMLが使えるので、ページに変化をもたらす事が出来る。HTMLの編集が出来るホームページビルダーなどで簡単にページを作り、中身だけをコピペすれば良い。だが、そこで問題になるのが、改行だ。改行コードを取り除かないと、上部に不必要な空白が出来てしまう。

 そこで、この改行を取り除くプログラムを作った。サーバーの片隅に置いて、必要なときに呼び出す。上部の四角にホームページビルダーのBodyタグ内のソースをコピペする。そして改行を取り除いだら、結果を「小説」アプリケーションの本文にコピペする。それで見栄えの良いページが完成する。簡単なプログラムですが、結構使えると思います。

<html>
<head>
<title>改行を取り除く</title>
<script language="JavaScript"><!--
function repCRLF()
{
 txt1 = document.myFORM.myTEXT.value;
 txt2 = txt1.replace(/[\n\r]/g,"");
 document.myFORM.result.value = txt2;
}
// --></script>
</head>
<body>
<a>テキストから改行を取り除く</a>
<form name="myFORM">
元テキスト:<textarea rows="8" cols="50" name="myTEXT"></textarea><br>
  処理後:<textarea rows="8" cols="50" name="result"></textarea><br>
<input type="button" value="取り除く"  onClick="repCRLF()">
<input type="reset" >
</form>
</body>
</html>

posted by おやじ at 2013/12/07 11:16
コメント(0)  トラックバック(0)

 ASP.NETを始めようとすれば、一つのパソコン上で、Web Deloper ExpressとIISの2つを使う。ASP.NETでプログラムを書くなり、参考書に掲載されているプログラムを試すなりする。次に、それをIISにコピーするなりして、動作を確認する。

 所が、IISの使い方が、今一分かりづらい。初めの内は、問題も無く動作するが、データベースなど、プログラムが複雑化すると、Web Developerでは、動作したのに、IISでは、動作しない。アプリケーションプールを変えると、動作する事も有ったり、無かったり。なんだこれは、と訳が分からないとぐろにハマる。

 IIS単独で仕立てたパソコンでは、動作するが、何故か開発用に仕立てたパソコンでは、エラーが出る。そんな時、ネットで目にした対策が、役に立った。実際多くのこうした問題は、これ一つで何とかなる場合が多かった。
 Web Developer上は動作しても、IIS上では、「HTTP エラー 500.22 - Internal Server Error  ASP.NET 設定が、統合されたマネージ パイプライン モードで適用されないことが検出されました。」などと出る場合には、まさにこれだと、言える。

 対策は、Web.configファイルに、次の事を追加する。これは、開発環境ばかりでなく、これが書き込まれたままでも、プログラムをサーバに移しても、エラーにもならずに、動作した。

<configuration>
<!--

・・・・・・・・・

以下を追加  -->

    <system.webServer>
     <handlers>
            <remove name="PageHandlerFactory-ISAPI-2.0" />
            <remove name="PageHandlerFactory-Integrated" />
       <add name="MRWebResource" preCondition="integratedMode" path="MRWebResource.axd" type="GrapeCity.Web.MultiRow.MRWebResource" verb="GET" />
            <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
            <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
     </handlers>
     <validation validateIntegratedModeConfiguration="false" />
   </system.webServer>

<!-- ここまで -->

</configuration>

posted by おやじ at 2013/11/25 10:11
コメント(0)  トラックバック(0)

 ASP.NETで、使える認証は、数が多そうだ。その中でも、Form認証は、良く使われると見えて、解説が多い。ただ残念な事に、ツールボックスのLoginを使った物に出くわさない。そこで、変な話だが、敢えてツールのLoginを配置して作ってみようとした。だが、結構まごついた。

 ASP.NETには、名著と言われる適切なマニュアルが無い。Helpは、VB6.0と比べると、全くなって居ない。それでも、何とかHelpで探し当てた感じだ。

 出来上がってみると、結局なんていう事は無い、自分で作るなら、TextBox1.Textと簡単に分かるが、Loginでは、何なの? そこが迷ったわけだ。結論から言えば、ユーザー名とパスワードは、Login1.UserNameとLogin1.Passwordだ。これが分かれば、後は、他の解説を参考に組める。たったこれだけの事だが、他のコマンド同様に、ASP.NETのHelpは、実に分かりにくい。VB6.0とは、そこが大違いだ。

 参考に、リストを載せる
ファイル名<Web.config>
<?xml version="1.0"?>
<configuration>
  <system.web>
    <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="Login.aspx" protection="All" timeout="30">
        <credentials passwordFormat="Clear">
          <user name="watashi" password="007"/>
          <user name="sasoh" password="12345"/>
          <user name="suzuki" password="12345"/>
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
    <compilation targetFramework="4.0"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
</configuration>

ファイル名<Login.aspx>は、ツールよりLoginを配置する。ボタンには、下記コードを配置する
    Protected Sub LoginButton_Click(sender As Object, e As System.EventArgs)
        If FormsAuthentication.Authenticate(Login1.UserName, Login1.Password) Then
            FormsAuthentication.RedirectFromLoginPage(Login1.UserName, False)
        Else
            Login1.FailureText = "Error"
        End If
    End Sub

 後は、Default.aspxなどを配置して、ページを作る。出来たら、そのページを動かしてみる。開かずにLoginに飛べば、めでたしめでたし。

posted by おやじ at 2013/11/10 09:11
コメント(0)  トラックバック(0)

 Windows8にExpress 2012をインストールしようと、Microsoftのページからアイコンをクリックする。時間が掛かるので、放って置き、インストールがされた事を確認する。

 あれ、立ち上がったのは、Express 2013だ、どうなっているのだ。残るfor Webは、2012にしようとアイコンをクリックすると、何故か、2013に飛ぶ。そこには、2012は無く、後は、2010になってしまう。

 まあ良いか、とインストールを進める。所が、このExpress 2013 for Web にハマった。何故かデザイン画面が出てこない。表示メニューを片っ端から試すが、ダメ。ソルーションエクスプローラには、以前のバージョンの様な、それに該当するアイコンが無い。いや、参ったな。

 所が、Default.aspxのコード画面を消し、ソルーションエクスプローラのDefault.aspxを右クリックすると、メニューにデザイナーの表示(Ctrl+F7)と有るではないか。クリックすると、難なく表示された。ちょっと迷うね。

 これで安心したのが、つかの間、拡張子が.htmlになると、デザイナーの表示が無くなる。確か、以前のバージョンでは、これがっできたが。。。

 それに、新しいバージョンでは、.htmlファイルを読み込んで、単独で編集する術が見つからない。あれ? ファイルを開くと言うのが有ったが、いつの間にか消えている。どうなっているのだ、新バージョン。格闘は、更に続きそうだ。

posted by おやじ at 2013/11/04 11:26
コメント(0)  トラックバック(0)

 ASP.NETでデータベースを利用するのは、実に簡単だ。データベースを選択してフィールドを作る。フォームに表示の為のコントロールを配置する。後は、接続や操作の為に、簡単な設定をすれば、それで一応使えてしまう。

 そんなアプリケーションを作って、コピーするが、コピーすると、データベースが読み取り専用だと叱られる。ネットをググるが、なかなかズバリと言うのに出くわさない。幾つか探して、合わせると答えが見えてきた。

 要は、新しくASPNETとか、そんな名前のグループを作る。そいつに書き込み許可を与える。たったこれだけなのだが、結構試行錯誤するはずだ。

**グループの追加**
プログラムとファイルの検索にmmcと入力。
ファイル、スナップインの追加と削除、ローカル ユーザーとグループ、追加、ローカルコンピュータ、完了、OK。
左ペインでグループ選択、右クリック、新しいグループ、グループ名、ASPNETと入力、作成。

**書き込み許可**
IISマネージャでデータベースを選択して、右ペインでアクセス許可の編集、セキュリティー、編集、追加、名前の確認、OK。
そのASPNETに書き込み権限を与える。めでたしめでたし。

posted by おやじ at 2013/10/24 13:30
コメント(0)  トラックバック(0)

 「いいね!」のクリックをページに貼り付けるのが、面白そうだ。調べると、FaceBookのコードを張り付ければ、実現できそうだ。それを自前で作れないか、そう考えるのは、プログラムを楽しむサンデープログラマーにとって、当然の事だ。

 クリックしたら、そのカウントを数える。イベントドリブンのASP.NETで組めば、Hello World並みで、難しさは全くないだろう。Javaでも行けるかも知れない。PHPでは、どうか。ちょと詰まるね。

 そこで考えた。まず必要な情報は何か。いろいろなページに貼り付けるとして、ページのURL、次に日付、件数、できれば、IPアドレスかな。となると、思い出す。PHPの学習でお世話になった、「PHPによるWebアプリケーションスーパーサンプル」の本だ。そのログがそのまま使えるではないか。つまり、クリックしたら、それを記録する。すでに出来たも同然だ。

 と言う事で、「いいね!」の画像を準備して、HTMLにコードを書く。
<form action="log.php" method="get">
<input type="image" src="good.png" value="submit" />
</form>
てな具合だ。だがこれでは、クリックした途端、画面が切り替わる。ならば、「いいね!」をフレームに押し込もう。そんな事で作ってみた。

 まず、index.htmlに入れ物をフレームで作る。
<body>
<iframe src="goodlog.html" width="100px" height="40px" marginwidth="0px" scrolling="no">
</iframe>
</body>

 それを受け、「いいね!」ボタンのgoodlog.htmlを作る。
<body>
<form action="log.php" method="get">
<input type="image" src="good.png" value="submit" />
</form>
</body>

 log.phpは、ちょこっとコードを追加したのを使う。
<?php
require "config.php";
$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die("接続エラー");
$log_date = date("Y-m-d");
$log_time = date("H:i:s");
$log_ip = getenv("remote_addr");
$log_url = getenv("http_referer");
$sql = "INSERT INTO log ("
    . " log_date, "
    . " log_time, "
    . " log_ip, "
    . " log_url "
    . ") values ("
    . "'" . $log_date . "',"
    . "'" . $log_time . "',"
    . "'" . $log_ip . "',"
    . "'" . $log_url . "'"
    . ")";
mysql_query($sql, $conn);
mysql_close($conn);
include "goodlog.html";
?>

 付録のconfig.phpには、接続の為の情報だ。
<?php
$sv = "localhost";
$dbname = "test";
$user = "root";
$pass = "password";
?>

 MySQLのデータベースは、
>mysql -u root -p で接続したのち、
>create database test;
>use test;
>CREATE TABLE log (
  log_date date NOT NULL default '0000-00-00',
  log_time time NOT NULL default '00:00:00',
  log_ip varchar(50) default NULL,
  log_url varchar(255) default NULL
);
とすればよい。

 後は、クリックした後の飾りとか、いろいろ工夫だね。

posted by おやじ at 2013/10/23 10:08
コメント(0)  トラックバック(0)

 Windows8.1がリリースされた。Windows8を持っていれば、無償でダウンロードできる。ファイルの大きさは、3Gバイトを超える大きさなので、そこそこ時間は、掛かる。すんなり、バージョンアップできるかと思えば、VirtualPCでつまづいた。10月5日のブログに有るが、仮想OSとしてLinuxが入っている。これをネットに接続する為に、「Network Bridge」を組んだが、そこの処理が、自動では上手くやってくれていない。悪い事に、本家のExplorerですら、ネットに接続できなくなってしまった。

 ネットワークのプロパティーを開き、アダプターの設定の変更を開く。問題を起こしている接続を、さらにプロパティを開き削除する。それだけでは、繋がらず、残った接続もプロパティを開き、インストールをやり直す。そんな事をして、無事再開となる。

 次は、Apacheは、起動できず、ポート80は、既にシステムに使われているとある。Skypeが、ポート80をデフォルトで使うので、ポートを移動するが、事態は変わらない。次にIISをしたべると、いつの間にか、起動していた。そんな事したなか? そんな疑問を持ちつつ、停止する。今度は、無事起動した。同じような状況をWindows7で経験したが、その時は、Microsoft Security Essentialsが、ポート80を使って居た。何か、Windowsも問題点有りだよね。

 Windows8.1は、スタートボタン位置に、ボタンが出来るが、ユーザーが期待したスタートボタンとは違う。あくまで、プログラムの起動は、タイルメニューでやれと言う事らしい。今回のトラブルでもそうだが、問題の対応の為に、システム関連のプログラムを動員したい。だが、それらは、タイルには無い。別の言葉で言えば、使いづらい。メールとか、インターネットとか、それしかやらないユーザーには、タイルはデカくて使いやすいかも知れないが、パソコンをいろいろ使おうとする人には、使いづらい構成だ。

 そこで、ClassicShellの導入となる。最新版をダウンロードしてインストールする。別段問題も無く、インストールは完了する。やっぱり、スタートボタンは、手放せないね。

 Windows8.1自体は、確かに進化して居る様だ。PowerShellも付属する。試しに、Linuxの様に、lsとコマンドを打つと、ちゃんと答えるではないか。ClassicShellを導入すれば、Windows7に先祖帰りする必要は、なくなる。むしろ、強力に進化したWindows8.1は、頼もしい位だ。

 パソコンは、CPUが命。市販のノートパソコンのスペックを見れば、そのスペックは、低いのが一般的。そうしたピカピカだが、おもちゃの様なパソコンには、どうでも良い様なCPUが乗っている。そのCPUの値段をkakaku.comで調べれば、何万円のマシンですら、わずか3か4千円だ。周りを見れば、実に多くの人がそうしたカッコだけのパソコンを選択する。4コア8CPUでの処理を実現する高性能のi7は、自作に限るね。

 もっとも、メールとインターネットでは、i7の処理能力は、必要ないけどね。必要になるのは、仮想OSの導入でしょうか。パソコン上に同時にいくつものOSを走らせる。一つが、大体15%くらいの資源を使う。となると、4つも乗せると、4コアの処理は必須となりますね。その目的には、Windows7では、実現できなかったバーチャルな世界が、Windows8.1では、実現できるし、OSでそれを完全にサポートしている。

 Windows8と8.1では、何が違うのか。正直、言われれば、確かにその点はそうだが、実の所良く分からない。それが、本音かな。Windows8のままでも良いが、8.1なら、細かい所が改良されていると言うのが、本当の所の様だ。そう考えるに、バージョンアップに、損は無さそうだ。

posted by おやじ at 2013/10/21 09:45
コメント(0)  トラックバック(0)

 ASP.NETは、まだ駆け出しだ。何が困るって、適切なマニュアルが無い事だ。Helpをひも解いても、例文も無い。あれでは、単語を並べた単なる表だ。その表からは、何もわからない。この辺は、VB6.0のHelpを踏襲すべきだ。

 Web Developerで使うBasicもVisual Basic NET と比べると、同じ2010シリーズでも、やはり単語が違う。9月にVisual Basic NET を始めた新参者には、別の言語の様に映る。

 だが、ASP.NETのデザインとコードの分離は、徹底してると思う。PHPやJavaでは、組みずらい事が、始めたばかりの新参者でも組める。このBasicに馴れれば、大きなシステムでも組めそうな予感がする。分離される事で、見た時に、間違いも分かり易いし、他人のプログラムも良い所取り出来そうだ。サンデープログラマーとすれば、そこが大事な所だ。

 と言う事で、アンケートの例を頭に描き、使い勝手を調べた。部品の配置は、Panelを使うと良さそうだ。まず、Panelを幾つか配置する。その中に部品を入れる。部品は、PanelのプロパティーでHorizontalAlignを使ってPanel内の位置を決める。10月15日のブログのレイアウトもPanelで試してみると、ちゃんと機能する。だが、Panelの言う事を聞く部品と知らん顔の部品がある。知らん顔する部品は、ソースを開き、Align="center"などと指示をする必要がある。この辺が、まだ未完成なのかな。

 以下に、作った画面とコードを掲げる。データベースの問題が片付いていないが、ファイルを使う事で、9月20日の「ApacheでASPを使う」を利用して、Apache上で動作を確認できる。



'Headerの所から抜粋
<head runat="server">
    <title></title>
    <style type="text/css">
        .newStyle1
        {
            font-size: large;
            text-align: center;
            color: #0000FF;
        }
        .newStyle2
        {
            font-size: small;
            color: #00FF00;
        }         
        .secondary
        {
            float:right;
            margin-top:10px;
            background-color:#f9cfba;
            height:70px;
        }
        .primary
        {
            float:left;
            margin-top:10px;
            background-color:#c7d5ed;
        }
    </style>
    </head>
    <body>        
        <form id="form1" runat="server">
        <asp:Panel ID="Panel1" runat="server" CssClass="newStyle1">
            アンケートの収集(模擬Webパネル)<br /> 内容は、何も無いよ!<br />
            <br />
        </asp:Panel>
        <asp:Panel ID="Panel2" runat="server">
            <asp:RadioButtonList ID="RadioButtonList1" runat="server" align="center"
                CssClass="newStyle2">
                <asp:ListItem>項目の選択1</asp:ListItem>
                <asp:ListItem>項目の選択2</asp:ListItem>
                <asp:ListItem>項目の選択3</asp:ListItem>
                <asp:ListItem>項目の選択4</asp:ListItem>
            </asp:RadioButtonList>
        </asp:Panel>
        <asp:Panel ID="Panel3" runat="server" HorizontalAlign="Center">
            <br />
            <asp:Button ID="Button1" runat="server" Text="回答" />
        </asp:Panel>
        <asp:Panel ID="Panel4" runat="server" Width="610px">
            <asp:Panel ID="Panel5" runat="server" Width="200px" CssClass="primary">
                Primary</asp:Panel>
            <asp:Panel ID="Panel6" runat="server" CssClass="secondary" Width="400px">
            Secondary</asp:Panel>
        </asp:Panel>
        </form>        
    </body>


'ここからコード
    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        If RadioButtonList1.SelectedIndex <> -1 Then
            Dim fileno As Integer
            fileno = FreeFile()
            FileOpen(fileno, "d:\Express_for_Web\test14\test.txt", OpenMode.Append)
            PrintLine(fileno, RadioButtonList1.SelectedIndex.ToString)
            FileClose(fileno)
        End If
    End Sub

posted by おやじ at 2013/10/20 07:13
コメント(0)  トラックバック(0)

 あれ? どうなっているんだ。

 機能的Webページを作るには、PHPやJavaを動員するのが、主流だ。だが、ASP.NETが持つ魅力は、それを凌駕するかも知れない。そんな予感がした。それが故か、ASP.NETを勉強する気になった。

 
 ちょっと大き目なシステムを組もうと考えると、PHPやJavaで組むには、相当の技量を要求される。ASP.NETなら、Visual Basicの延長で、だらだらコードを書けば、何か出来上がる気さえする。と言う事で、ASP.NETの勉強をスタートした。

 まず、Visual Basicの延長なら、演算処理が得意の筈。その結果を文字やグラフや画像で表示する。ツールボックスには、それを可能にするツールが並ぶ。文字、Chartなど沢山ある。その数は、かつてのVB6.0の比では無い。これらを使えば、グラフも簡単に出来そうだ。所が、便利な、PictureBoxが無い。どうやって、図形などの結果を表示しようか。その代役として、無理やりにも、ツールのImageを使うか。と言う事で、Imageをいじる。

 まず、簡単に、ボタンをクリックすれば、直線を表示する。そこまでを考える。

 プログラムは、

    Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click
        Dim img = New Drawing.Bitmap(400, 400) '入れ物準備
        Dim g = Drawing.Graphics.FromImage(img) 'ツールの準備
        g.FillRectangle(Drawing.Brushes.White, 0, 0, 400, 400) '白で
        g.DrawLine(Drawing.Pens.DeepPink, 20, 20, 400, 400) '直線

 これで、imgには、直線が出来たはずだ。これをツールで貼り付けたImage1コントロールに代入すれば、表示されると思った。これが、まず始めの誤り。

 いろいろ調べると、コントロールのImage1には、URLは入るが、イメージそのものを直接入れる事は出来ないらしい。やむなく、ファイルを経由して表示させると言うウルトラカッコ悪い方法を心みる事になる。まず、イメージファイルの作成だ。上記のリストに続けて、

        img.Save("d:\Express_for_Web\test14\image\TEST.png", System.Drawing.Imaging.ImageFormat.Png)

 として見た。画像は、出来た。となれば、次は、

        Image1.ImageUrl = "./image/TEST.png"
        g.Dispose()
   End Sub

 で表示される。一応、繕ったが、なんとも可笑しなプログラムだ。まず第一に、何でファイルを経由しなければならない。ネットをググるが、まだ、解決に至らない。次に、ファイルのパスだ。Saveでは、Windowsの「¥」を使い、他では、「/」とは、妙な組み合わせだ。

 前途多難か、はたまた、こんなコードでも動くすごい事なのか、ろくなマニュアルが無い中、手探りは当分続きそうだ。

posted by おやじ at 2013/10/19 08:18
コメント(0)  トラックバック(0)

検索


リンク

カウンター
今日: 今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター
昨日: 昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター
累計: 累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター

RSS Feed
RSS Feed  最新の記事
RSS Feed  最新のコメント
RSS Feed  最新のトラックバック

プロフィール
ニックネーム:おやじ
誕生日:4月8日
性別:男
血液型:A型

管理

Copyright 2007 サンデープログラマー All Rights Reserved.
Powered by PocketBlog