SQLの窓

2009年12月07日


コマンドプロンプト : 入力したキーストロークを表示しない readkey.exe

ブラウザでダウンロード
標準入力でデータを入力できるアプリケーションに対して、
パスワード等の入力時に表示させたくない処理を想定して作成しました。

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 関連の記事


posted by lightbox at 2009-12-07 17:18 | VB.NET : ベーシック | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり