Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
23.09.09, 17:44
|
#1
|
Erfahrener Newbie
Registriert seit: Apr 2009
Beiträge: 148
Bedankt: 878
|
[BATCH] Input verstecken bzw als ***** anzeigen?
Hey,
Ich wollte wissen ob es möglich ist ein Input als */zahl anzeigen zu lassen?
Ich hab schon ein bisschen geggogelt aber dafür hab ich nur komplizierte "verfahren"
gefunden, die ich mit meinen kenntnissen noch nicht verstehen kann.
Eine weitere möglichkeit währe es den Input in der gleichen Farbe wie der Hintergrund anzeigen zu lassen.
Aber ich weiß auch nicht wie ich zwei verschiedene Farben aufeinmal "einstellen" kann.
Ich hoffe dass ihr meine Frage so gut genug versteht
BadFriend
|
|
|
23.09.09, 21:34
|
#2
|
PC Doktor
Registriert seit: Apr 2009
Ort: 127.0.0.1
Beiträge: 1.885
Bedankt: 901
|
ich weiß nicht, wie es beim batchen aussieht, aber bei webanwenungen musst du dem feld einen typ zuweisen. es gibt text, textarea, passwort und ein paar andere.
bei password werden die zeichen automatisch als *** angezeigt!!!
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
"95% aller Computerprobleme befinden sich zwischen Tastatur und Stuhl"
|
|
|
23.09.09, 23:16
|
#3
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
mit reinen .bat-mitteln geht das mit den sternchen leider nicht.
ebenfalls geht es nicht vorder- und hintergrundfarbe auf den den selben wert zu setzen.
wenn das passwort feststeht oder in einer datei steht (oder so) könnte evntl. ein kleines C-programm helfen.
hab das hier im [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] gefunden:
passwd.bat:
Code:
@echo off
call:pwd pass
if "%pass%"=="dostips" (
echo.password accepted
) else (
echo.password denied
)
GOTO:EOF
:pwd var title color -- shows a password dialog box
:: -- var [in] - return variable
:: -- title [in,opt] - dialog title, default is "Password:"
:: -- color [in,opt] - color default is AB (Light Green on Light Aqua)
:$created 20060101 :$changed 20080226 :$categories Input,Password
:$source http://www.dostips.com
SETLOCAL
set "tit=%~2"
set "col=%~3"
set "pwd="
if not defined col set "col=EF"
if not defined tit set "tit=Password:"
set "f=%temp%\%~nx0.tmp~0.tmp"
start "%tit%" /wait cmd /c "mode con cols=24 lines=1&color %col%&set /p "in="&call echo.%%in%%>"%f%""
for /f "usebackq tokens=*" %%a in ("%f%") do set "pwd=%%a"
del /q "%f%"
ENDLOCAL&if "%~1" NEQ "" (SET %~1=%pwd%) ELSE ECHO.%txt%
EXIT /b
|
|
|
24.09.09, 01:38
|
#4
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
was hälst'n du davon:
Code:
@echo off
call \temp\read_passwd "bla x"
if errorlevel 1 goto passok
goto :eof
:passok
echo ok
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
getestet unter xp-32 und win7-64.
für interessierte, das c(++)-programm:
Code:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
int _tmain(int argc, char* argv[])
{
using namespace std;
if (argc < 2) {
cout << "usage read_passwd <passwd>\n";
return 0;
}
string password;
char ch;
const char ENTER = 13;
const char BS = 8;
cout << "enter the password: ";
while((ch = _getch()) != ENTER)
{
if (ch == 3) { // ctrl-c
return 0;
}
if (ch == BS) {
if (password.length() > 0) {
password = password.substr (0, password.length() -1);
cout << BS << " " << BS;
}
continue;
}
password += ch;
cout << '*';
}
cout << "\n";
return strcmp (argv[1], password.data()) == 0;
}
|
|
|
24.09.09, 10:11
|
#5
|
Erfahrener Newbie
Registriert seit: Apr 2009
Beiträge: 148
Bedankt: 878
|
Cool. Vielen Dank für eure Antworten 
Ich werde es die tage mal durchtesten
|
|
|
25.09.09, 22:39
|
#6
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
obiges prgramm vergleicht nur ein vorgegebenes passwort mit der eingabe und setzt den errorlevel entsprechend.
nach einigem nachforschen (jahrelang unter unix via sh und perl programmiert, da wird man bei win-batches wahnsinnig  wenn man es nicht kennt)
bin ich auf folgendes gekommen:
das c-programm schreibt seine eingabe in eine temporäre datei, die das batch vorgibt, ausliest und gleich wieder löscht. evntl. geht das auch eleganter, hab aber nix gefunden.
.bat
Code:
@echo off
set tmpfile=%TEMP%\%DATE%%RANDOM%%RANDOM%.tmp
call \temp\file_passwd "%tmpfile%"
if errorlevel 1 goto passok
echo es gab fehler
goto :eof
:passok
FOR /f "delims=" %%i IN (%tmpfile%) do set PW=%%i
echo passwort=%PW%
del %tmpfile%
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
28.09.09, 14:08
|
#7
|
Little Boy
Registriert seit: May 2009
Ort: BY
Beiträge: 20
Bedankt: 0
|
Zwei farben einstellen ist einfach. gib mal in der CMD help color ein und durchlesen.
Hier mal ein beispiels***** für zwei farben:
Code:
@echo off
title Hier wird die farbe geändert
echo Beim fortsetzen werden zwei farben eingesetzt
pause
cls
color fc
echo zwei farben wurden eingesetzt
pause
cls
:anf
color fc
color cf
goto anf
|
|
|
11.10.09, 14:10
|
#8
|
Erfahrener Newbie
Registriert seit: Apr 2009
Beiträge: 148
Bedankt: 878
|
@Answer
Ich meine mit 2 Farben nicht Vorder-Hintergrundfarbe sondern dass der Text der angzeigt wird verschiedene Farben hat.
z.B.:
Code:
echo Blauer test
echo Roter text
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
().
|