Passwort versteckt eingeben

Palladin007

assimiliert
Hallo, ich hab mal wieder eine Frage zu Batch-Scripten


Und zwar will ich eine Passwort-Abfrage gestalten, bei der das Passwort aber nicht gezeigt wird, sondern nur Sternchen

Ich weis, das ist mit den DOS-Befehlen nicht möglich, aber wohl mit anderen Sprachen.


Daher wollte ich frage, ob mir jemand ein paar Zeilen schreiben kann, mit denen die Eingabe als Sternchen angezeigt wird.

Das ist mir dabei wichtig:

Bei der Eingabe entsteht an Stelle jedes Tastendrucks ein Sternchen. (*)
Das ist man gewohnt und kennt man auch. So sieht es einfach am besten aus.

Es soll sich kein neues Fenster öffnen.
Denn sonst müssten alle Fenster mit Passwort-Abfrage ebenfalls so aussehen, wie das der Sternchen-Abfrage.
Wäre ja doff, wenn eine Variation im cmd-Fenster läuft und eine andere im selben Programm ein extra Fenster öffnet

Die Passwort-Variable muss nach dem Programm direkt an das eigendliche Programm übergeben werden.
Denn irgendwie muss das eingegebene Passwort dann ach von meinem Programm verarbeitet werden können. Es würde zur Not auch reichen, das Wort als txt zu speichern, dann lass ich es mit for abrufen und als Variable speichern.


Kann das jemand irgendwie realisieren?
Wäre echt klasse


Gruß
 
Ich hatte mal ein C++, was das angeblich kann. Aber ich weis nichtmal, wie man die Datei startet :D

Und dann hatte ich noch eine andere Datei, die auch funktioniert hat. Aber ich hab die Variable mit dem Passwort nicht auf die Batch übertragen bekommen
 
Das hier:

Code:
@Echo off
Set /P Passwort=Passwort verdeckt eingeben :<NUL
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>"%temp%\Inp.com"
for /f "tokens=*" %%i in ('"%temp%\Inp.com"') do set Passwort=%%i
Echo.&Del "%temp%\Inp.com" >NUL 2>&1 
echo %passwort%
pause

Versteckt die Eingabe. Schonmal ein Schritt näher, aber wie kann ich da Sternchen einfügen?


Hab da bei einem der beiden Links das gefunden:

Code:
@echo off & setlocal
set "GetPW=%temp%\GetPW.vbs"
echo WScript.Echo CreateObject("ScriptPW.Password").GetPassword()>"%GetPW%"
echo Bitte Passwort eingeben: 
for /f "delims=" %%i in ('cscript //nologo "%GetPW%"') do set "Pass=%%i"
del "%GetPW%"
echo %Pass%
pause

allerdings bekomme ich diese Ausgabe:

Code:
Bitte Passwort eingeben:
C:\Users\Malte\AppData\Local\Temp\GetPW.vbs(1, 1) Laufzeitfehler in Microsoft VBScript: ActiveX-Komponenten kann kein Objekt erstellen: 'ScriptPW.Password'

ECHO ist ausgeschaltet (OFF).
Drücken Sie eine beliebige Taste . . .


Und bei dem da:

Code:
Echo.
Echo Username:
set /P UNAME=
Echo Password:
Set pw=
format/f:160 a: >%temp%\#pass#
for /f "tokens=6" %a in ('find "EINGABETASTE" %temp%\#pass#') do Set pw=%%a
del %temp%\#pass#
if not exist g:\. net use G: \\server\resource /USER:domain\%UNAME% %PW% /PERSISTENT:NO
pause

Bekomme ich diese Fehlermeldung:

Code:
"tempa" kann syntaktisch an dieser Stelle nicht verarbeitet werden.



Also bei dem Programm, was bastla geschrieben hat, hies es danach ja auch noch, dass es bei Win 7 nicht geht.

Das erklärt, warum meins nicht funzt -.-

Gibt es denn eine Programmiersprache, wo das geht?

Ähnlich dem VBS, also Passwort als Sternchen eingeben, als Variable abspeichern und an die bat weiter geben, oder zur Not auch als txt speichern.

Wenn mir da jemand eine SPrache nennen kann, such ich mal direkt danach.
 
Zuletzt bearbeitet:
Kann ich nicht.
Und ich will nicht erst C# lernen müssen, bevor ich das hin kriege^^





Kurze Frage am Rand:
Wenn ich C++ lernen will, sind meine Programme vom Betriebssystem unabhängig. Aber wie kann ich sie starten?
Ich versuch mich grad zwischen C# und C++ zu entscheiden.
Da C++ unabhängig ist, war das bisher immer meine erste Wahl, aber ich krieg ja nichtmal ein gedownloadetes Programm zum laufen -.-
 
Wahrscheinlich hast du dir die Source heruntergeladen, diese musst du erst Kompilieren ;)

Ich kann dir zu C# raten, denn

  • C++ ist Hardcore. Man kann im Prinzip alles machen, und grade deswegen kann man sich auch leicht selber reinreiten. Dafür hat man aber die volle Kontrolle.
  • C# ist das, was Java hätte sein können/wollen. Es setzt auf die .NET-Plattform auf, behält aber eine C++-Syntax bei.
    C# ist wahrscheinlich einfacher, da einem viele Dinge abgenommen werden. Auch musst du nicht auf Speicherlecks achten (oder kaum).
  • Ein Nachteil: Der Benutzer muss die .NET-Runtime installiert haben. Ab XP ist schon die 1.0 dabei, ansonsten fällt da ein ca. 20 MB-Download an.
  • C# ist nicht komplett kompiliert, wird bei Programmstart nochmal übersetzt und hat gegenüber C++ ca. 5% Leistungsabfall. Das ist sowenig, das fällt kaum auf. Dafür bekommst du mächtige Grundklassen, die du in C++ selbst erst erstellen müsstest.
  • Der Vorteil von C# ist auch, dass es wie Java platformunabhaengig ist. Vorausgesetzt das Runtime-Environment steht fuer das Betriebssystem zur Verfuegung.
  • C/C++-Anwendungen muessen erst auf das jeweilige System portiert und neu kompiliert werden.

Allgemeines zu C#
 
Klingt mächtig kompliziert

Und du hast ziemlich oft Java erwähnt. Kann man das in Verbindung bringen?

Denn dann würde ich mich ab sofort schwer auf Java stürzen und hab dann gleich in der SChule einen fetten Vorteil, weil garantiert kein anderer in der Klasse auch nur eine Programmiersprache, nichtmal Batch beherscht^^
Vieleicht so grundlegende Dinge, wie copy, set, oder if, aber auch nur um einfache Routinen zu bauen. Mehr nicht.


Und wenn wirklich eine Verbindung zwischen Java und C# möglich ist, dann sattel ich von Java auf C# und hab hier gleich wen, den ich mit meinen Fragen ausquetschen kann :D
Und danach kommt C++ dran, wenn ich es mal brauchen sollte.

Warschenlich ja nur für Linux.

Achso: Hat Mac auch die .NET-Runtime installiert?
 
Jap gibt es (Mono)

Ich glaube nicht dass man Java und c# verbinden kann, doch man kann c# und c++ aufgrund der fast gleichen Syntax verwenden.

Von Java rate ich aufgrund der enormen Ressourcen ab, da das Programm nicht kompiliert, sondern zur laufzeit übersetzt wird ;)
 
Java kann aber auch sehr nützlich sein.
Z.B. wurde das Spiel Minecraft (sieht auf dem ersten Blick sehr gewöhnungsbedürftig aus, ist aber ein totaler Erflolg geworden, ein einfacher Blick in das PC- und Video-Spiele Forum zeigt, warum es so toll ist (am Meisten wegem unserem SNF-Server, auf dem CreamyCewie bedauerlicher Weise immernoch nicht draufkann))
ot:
Wenn du kein Fan von Minimalistikgames mit übertrieben schlechter Grafik bist, vergiss mein Geschwafel, aber ich kann dir diesen Artikel empfehlen. Das Spiel lohnt sich trotzdem total!(Link wird noch ergänzt)


Was ich sagen wollte:
Der Entwickler von Minecraft, unser hochgeliebter Notch, hat sein Spiel in Java geschrieben. (Was im Übrigen keine Auswirkung auf das Gameplay hat)

Der Vorteil: die Java Runtimes Environments, also der einfache Kompiler der den kompliimierten Quellcode in den für den PC richtigen Maschinencode umschreibt, gibt es für alle Betriebssysteme. Dann gibt es noch die Devolopertools von Java, in denen der Kompiler enthalten der aus den ".java"-Dateien, welche den Quellcode bilden, eine ".class"-Datei macht.
Die Java Runtimes Environment schreiben die ".class"-Datei in den passenden Maschinencode für Betriebssystem, Hardware usw. um.
ot:
Jetzt bin ich wieder vom Thema abgekommen :D:angel

Da Notch das ganze in Java schrieb, hat er jetzt ein Spiel entwickelt, welches von allen Betriebssystemen gespielt werden kann. Da die Grafik sowieso die schlechteste ist (hat aber trotzdem Stil, das Spiel) ist das Spiel auch recht energiesparend (soweit man das bei Java so nennen kann) und somit auch auf älteren Computern spielbar.

Zusätzlich gibt es viele Mods für Minecraft, die man einfach ergänzen kann, da das ganze Spiel eigentlich nur auf einer ".jar"-Datei basiert. ".jar"-Dateien sind sich selbst ausführende Programme unter Java. Praktisch wie eine ".exe"-Datei für alle Betriebssysteme, auf denen JRE installiert ist.

Minecraft gibt es auch schon für das Xpiria Play, ebenfalls auf Java-Basis!

Java ist leider keine freie Programmiersprache, es wird durch Sun überwacht und vertrieben.
Daher ist jedes Programm, welches auf Java basiert, eigentlich von Sun zu lizenzieren. Nur irgendwie macht das keiner :eek::rolleyes:.

Ich selber habe auch mal ein bisschen in Java programmiert, habe aber es später aufgegeben, da mir das ganze komplimieren der ".java"-Dateien zu nervig war, besonders wenn man ein aufwändiges Programm geschrieben hat, es komplimiert, einen Fehler findet, den Quellcode durchsucht und seine 100 verschiedene Lösungsvorschlage alle komplimieren darf, nur um festzustelllen, dass der Fehler damit nicht behohen wurde :sleep:daumen-.

Ich bin darauf lieber auf Batch umgestiegen, da man da nichts komplimieren muss. Falls ich den Quellcode doch verstecken möchte, kann ich einfach den Batch_To_Exe-Konverter anwenden und schon ist der Quellcode unsichtbar.

Leider bietet Batch bei weitem nicht so viele Möglichkeiten als andere Programmiersprachen, es ist sehr eingeschränkt und beziet sich fast nur auf Windows-Aufgaben (z. B. Registryeditierung usw.).
Da du schon in Batch programmiert hast, müsstes du das wissen.

Ich lerne daher VBS, das ist auch eine Programmiersprache nur für Windows, aber sehr mächtig!
Von einer Vollbildschirmanwendung bis zum Öffnen des CD-Laufwerks kannst du damit fast alles machen.
Kein Komplimieren ist erfordlich, man kann die ".vbs"-Datei, welche den Quellcode enthält und mit Doppelklick startbar ist, in eine ".exe"-Datei umwandeln, der Hersteller des Konverters ist der gleiche wie von dem ".bat" zu ".exe"-Konverter.

Es ist auch kein installieren neuer Software von nöten, nur ein Windows setzt die Sprache vorraus.

Wenn du mehr über VirutalBasicScripting erfahren möchtest, kannst ich dir ja mal ein PDF hochladen, weiss jetzt im Moment nicht mehr, wo ich es habe zustauben lassen auf meiner Festplatte.
Ich lade dir aber mal zwei "Bücher" zu Java hoch, das zip-File enpacken und die index.html starten.

Um auf CreamyCewies Vorschlag einzugehen:
C# kannst du hier (PDF-File) lernen.
Ich habe auch mal Python ausprobiert, ist so ähnlich wie Java, du brauchst ein Zusatzprogramm um ein Programm zu starten, allerdings muss man nichts komplimieren.

Um noch weitere Programmiersprachen zu lernen (für Java siehe meine Attachments) besuche diese Seite. Dort findest du "Bücher" in Fom von Webseiten.

Viel Spaß und Erfolg und Gruß
bastla
 

Anhänge

  • Programmieren in Java - Aufbau.zip
    255 KB · Aufrufe: 205
  • Programmieren in Java - Einfuehrung.zip
    185,8 KB · Aufrufe: 220
  • Webseiten erstellen mit Javascript.zip
    159 KB · Aufrufe: 204
Ah, ich sehe gerade, dass ich noch "Bücher" von C++ habe.
Wenn du also doch C++ lernen willst, findest du die Bücher im Anhang.

Wenn du Interesse an VBS hast, lade ich dir das PDF-File auch nochmal hoch, muss das nur gerade irgendwie finden.

Gruß
bastla

Edit:
@tobim:
Da waren wir ja fast gleich schnell, beide Einträge um 11:14 Uhr :D
 

Anhänge

  • Die Boost C++ Bibliotheken.zip
    354,4 KB · Aufrufe: 230
  • Programmieren in C++ - Aufbau.zip
    150,7 KB · Aufrufe: 225
  • Programmieren in C++ - Einfuehrung.zip
    182 KB · Aufrufe: 216
Zuletzt bearbeitet:
@bastla:
Der eine Beitrag hört sich fast so an, als sei Batch eine Alternative zu Java - auch wenn du das sicherlich nicht gemeint hast. Bei Problemen mit Java auf Batch umzusteigen, ist in etwa so, als würde man seinen VW Golf durch ein Kettcar ersetzen.
 
Ich glaube, er hat eher VBS und Java verglichen.
Batch ist wirklich das reinste Kettcar^^



Oh mann, C#, C++, Java, VBS, Python, etc.
Wie soll man sich da entscheiden? :D

Aber mit dem Punkt, dass das Kompilieren bei Fehlersuche schnell sehr nervig wird, hast du mich überzeugt^^

Mir ist für den Anfang eh nur wichtig, auch eine grafische Übersicht einbauen zu können, denn immer dieses Grau auf Schwarz (oder andere Kombis) und nur Zeichen nervt irgendwie.

Wollte erst mit HTML eine anrt Mittelweg graben. Ich wollte es nicht lernen, sondern mit einem Wysisyg-Editor eine grafische Übersicht basteln und dann überall ein Batch-Programm dahinter verlinken.
Zwar nur eine sehr unsaubere Lösung, aber ich finde, es ist eine gute Option, wenn man noch nicht so weit ist, eine grafische Übersicht direkt zu programmieren.
 
Was ist denn an Delphi besonders?
Eigentlich nichts. Gegenüber VBS könnte man vielleicht sagen, dass es professioneller und nicht von M$ ist. Ich würde es daher schon für eine bessere Möglichkeit betrachten.

ot:
Als ich vor Jahrzehnten mit dem Programmieren anfing, hatte ich auch dieselbe Qual der Wahl, wie du jetzt. Letztendlich lief es darauf hinaus, ob C oder Pascal. Beides zugleich war mir zu viel, da ich mir das Programmieren im Eigenstudium beibringen wollte. Ich hatte mich damals für Turbo Pascal entschieden, da es gegenüber C eine klare, übersichtliche und sauber strukturierte Programmierung geradezu erzwingt und damit leichter verständlich ist. Auch diese umgekehrt polnische Notation von C ist mir äußerst verhasst, so schreibt doch kein Mathematiker seine Formeln und Berechnungen. Kleine fertige Pascal-Programme in den Fachzeitschriften ließen sich während der Lernphase auch viel leichter analysieren. Das heute Delphi (hab die Version 6) ist für mich nur eine logische Fortsetzung davon und viele meiner alten Turbo Pascal Programme lassen sich sehr einfach portieren.
 
Aber laut Google kann man VBS sehr einfach mit Batch in Verbindung bringen, oder?

Dann könnte man ja im Grunde das rohe Programm mit Batch schreiben und mit VBS vollenden.
 
Oben