標準入力でデータを入力できるアプリケーションに対して、 パスワード等の入力時に表示させたくない処理を想定して作成しました。 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 関連の記事
|
【VB.NET : ベーシックの最新記事】
- VB.net : 「ファイルを開くダイアログ」のパラメータを単純なテキストファイルより取得する
- VB.net での テキストファイルの読み書きを、出力時のみキャラクタセット毎に条件コンパイル指定する
- VB.net での DateDiff メソッドの使用方法
- VB.net : 整数 : カンマ編集/前ゼロ/前スペース/16進数文字列変換
- テキストファイルとキャラクタセットの処理
- VB.net : String、Char()、Byte() の相互変換
- VB.net : 文字単位の ASCII と Unicode
- VB.net/C# : 連続する文字の作成と良く使う文字列フォーマット
- VB.net : 各種ディレクトリパスの取得 : テンポラリ/システム/特殊ディレクトリの列挙
- VB.net : アプリケーションを開始した実行可能ファイルのパス
- VB.net : アプリケーションディレクトリ
- VB.NET : バッチファイル用ファイルの参照ダイアログ
- コマンドプロンプト : クリップボードにあるファイル情報を標準出力へ
- VB.NET(コマンドプロンプト) : 指定した文字列だけ色を変えて表示する
- VB.NET : SHA256