標準入力でデータを入力できるアプリケーションに対して、 パスワード等の入力時に表示させたくない処理を想定して作成しました。 php による FTP ダウンロードのサンプルを付加しています Framework では、日本語入力がうまくいかなかったので、VC8 でビルド した readkey_vc.exe ( 含ソースコード ) も添付しています
Imports System.Text Imports System.Threading Module MyModule ' ******************************************************** ' * エコー無しのキー入力 ' * Backspace キーでバッファクリア ' * Enter で入力内容を標準出力 ' ******************************************************** Sub Main() Dim cki As ConsoleKeyInfo = New ConsoleKeyInfo() Dim ret As String = "" Do ' 押されたキーが入力ストリームに入るるまで待つ Do While Console.KeyAvailable = False Thread.Sleep(250) Loop ' キーを取得( エコーしない ) cki = Console.ReadKey(True) if cki.Key = ConsoleKey.Enter Exit Do end if if cki.Key = ConsoleKey.Backspace ret = "" else ret = ret & Char.ToString(cki.KeyChar) end if Loop Console.WriteLine( ret ) End Sub End Module
#include <stdio.h> #include <tchar.h> #include <conio.h> #include <ctype.h> int _tmain(int argc, _TCHAR* argv[]) { int ch; char buff[1024]; int p; buff[0] = 0x00; p = 0; while(1) { ch = _getch(); if ( char(ch) == 0x0d ) { break; } if ( char(ch) == 0x08 ) { buff[0] = 0x00; p = 0; continue;; } buff[p] = ch; p++; buff[p] = 0x00; } printf("%s\n", buff); return 0; }
@echo off echo 以下にパスワードを入力して下さい & readkey | php.exe ftp_download.php
************************************************************ * エコー無し入力 * 入力した結果は表示されず、Enter キーを入力すると * 標準出力へ出力します * Back Space で入力内容をリセットできます ************************************************************ 【VB.net : 日本語入力不可】 readkey.exe 【VC8 : 日本語入力可】 readkey_vc.exe ************************************************************ * 利用方法 ************************************************************ 入力時に表示したくないパスワード入力に使用します。 結果をリダイレクトする事によって次のアプリケーション にパスワードを引き渡します ************************************************************ * 自分でビルドしたい場合( readkey.vb ) ************************************************************ Framework3.5 でビルドする場合は、build_35.bat を実行します。 以下のファイルがあれば動作するばずです C:\WINDOWS\Microsoft.NET\Framework\v3.5\vbc.exe Framework2.0 でビルドする場合は、build_2.bat を実行します。 以下のファイルがあれば動作するばずです ■ 同梱している httpdownload.exe は、2.0 でビルドしています C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe ************************************************************ * ソースコード ************************************************************ ■ readkey.vb ■ readkey_vc.cpp ************************************************************ * PHP を使ったサンプル ************************************************************ ■ ftp_download.php ■ run.bat ************************************************************ * その他 ************************************************************ ■ 著作権その他 このプログラムはフリーです。どうぞ自由に御使用ください。 著作権は作者である私(lightbox)が保有しています。 また、本ソフトを運用した結果については、作者は一切責任を 負えせんのでご了承ください。
VB.net 関連の記事