{title}

Ich bin neu in diesem Forum, daher könnte dies bereits gepostet worden sein. Ich habe mich gefragt, wie eine Batch-Datei Aufgaben in Programmen ausführen soll. Dies ist für ein Projekt vorgesehen, bei dem eine Batch-Datei erstellt wird, in der sndrec32.exe geöffnet wird, und das Programm dann angewiesen wird, die Aufzeichnung zu starten. Wenn es überhaupt möglich ist, möchte ich in der Lage sein, es zum Systembehälter herabzusetzen. Danke im Voraus!.

Sie können dies nicht im Batch tun, zumindest nicht mit den Standardbefehlen, wenn Sie einen Batch-Datei-Wrapper für eine .vbs-Datei erstellen möchten, dann ist es möglich, checken Sie wsh.sendkeys google it aus

Ja, ok, ich habe das getan, aber es ist nicht sehr klar. Übrigens habe ich dir gesagt, dass ich ein Neuling bin, also brauche ich SEHR klare Anweisungen, weil ich neue at.bat- und.vbs-Dateien habe. Ich kenne grundlegende Art von.

Ich erkläre zunächst wsh.sendkeys, um eine neue Instanz von sndrec32.exe zu öffnen, verwenden Sie Folgendes set oShell = CreateObject ("WScript.Shell") oShell.run "sndrec32.exe" WScript.Sleep 500oShell.SendKeys "" Wenn Sie das Obige in den Notizblock einfügen, speichern Sie es unter Alle Dateitypen und something.vbs, doppelklicken Sie auf something.vbs und es wird sndrec32.exe öffnen und eine Leertaste senden, oShell.SendKeys "" Als ich vor einer Minute sndrec32.exe geöffnet habe, war die Leertaste die erste Taste, die ich gedrückt habe, und die Aufzeichnung wurde gestartet. Daher funktioniert das oben Gesagte, wenn die erste Zeile auf oShell = CreateObject ("Wscript.shell") gesetzt ist. OShell ist die Variable und kann Alles sein, die zweite Zeile oShell.Run "sndrec32.exe" wird sndrec32.exe öffnen, YourVariable.Run "sndrec32.exe" Wenn Sie CreateObject ("Wscript.shell") als YourVariable festlegen, können Sie stattdessen YourVariable.SendKeys "" eingeben. In der dritten Zeile Wscript.Sleep 500 wird das Skript für 500 Millasekunden in den Ruhezustand versetzt, bevor die Leertaste an sndrec32 gesendet wird. exe, Sie müssen dafür sorgen, dass das Skript zwischen dem Senden eines anderen Schlüssels in den Ruhezustand wechselt, da das Skript möglicherweise zu schnell arbeitet und fehlerhaft funktioniert (ich nehme an, dies ist der Grund). Aber es wird fehlerhaft funktionieren, ohne dass die letzte Zeile, oShell.SendKeys "", Dadurch wird die Leertaste charachter an sndrec32.exe gesendet. Wenn Sie sich sendkeys und die Liste der akzeptierten Zeichen ansehen, wird kein Leerzeichen angezeigt, da dies nur ein leeres Leerzeichen ist. Sie möchten dies jetzt einer Batch-Datei hinzufügen , Hier ein Beispiel: @echo offset a =% temp% sendkeys.vbsecho set oShell = CreateObject ("WScript.Shell")>% a% echo oShell.run "sndrec32.exe" >>% a% echo WScript. Sleep 500 >>% a% echo oShell.SendKeys "" >>% a%% a% & del/q/f% a% ok in der ersten Zeile setze ich% temp% sendkeys.vbs als Dateinamen ein "% a%" In der zweiten Zeile habe ich die erste Zeile mit der Variablen in die Datei eingefügt.> Dies wird als Anhängen an eine Textdatei mit einem einzelnen Umleitungszeichen bezeichnet > Fügt eine einzelne Zeile hinzu und schreibt eine andere Zeile neu. Wenn Sie also mehrere Zeilen hinzufügen möchten, verwenden Sie zwei davon >> Wie Sie in der vierten Zeile feststellen werden, wird der Text in die Datei zurückgegeben, ohne dass alles andere neu geschrieben wird ECHO Echo Text auf dem Bildschirm, wenn Sie nicht verstehen, öffnen Sie eine neue Instanz von cmd.exe, und geben Sie Echotest und es wird "testing" ausgegeben, der Rest ist direkt vorwärts bis zur letzten Zeile,% a% & del/q/f% a%,% a% ein Ist die Variable der.vbs-Datei. Wenn Sie also% a% eingeben, entspricht dies% temp% sendkeys.vbs. Das Skript wird also in anderen Worten gestartet, direkt nachdem es ein kaufmännisches Und ist. Dann wird del (DELETE) verwendet. Nachdem das Skript ausgeführt wurde, wird die Skriptdatei gelöscht./q ist für den stillen Modus und/f für Force. In anderen Worten werden Sie nicht gefragt, ob Sie diese Datei wirklich löschen möchten.

In welcher Java-Klasse bin ich?

Wie kann ich zur Laufzeit herausfinden, in welcher Java-Klasse ich mich befinde oder welche Java-Klasse mich nannte? Danke.

A In jeder einzelnen Klasse (Code) schreiben Sie einfach einen Code, der die Informationen ausgibt, die sich auf die Klasse beziehen. Einfach, ich weiß nicht, warum Sie das tun möchten.

benutze Reflektion.

Danke für die Antworten. Lassen Sie mich das eigentliche Problem erklären. Ich habe eine Hauptmethode, die eine Datei liest und die Daten an eine Klasse übergibt, deren Name ein Statuscode ist. dh AZ, DE, MA usw. Jede dieser Zustandsklassen schreibt Daten aus, die den Zustandscode verwenden. Jede dieser Zustandsklassen ist von einer anderen Person codiert und enthält derzeit jeweils eine Anweisung mit den Worten: theState; Dabei ist xx der Name der Klasse. Ich versuche zu vermeiden, dass einer der Programmierer den falschen Statuscode verwendet, wenn es sich nur um den Namen der Klasse handelt. Ich habe die folgende Methode gefunden: private static String myName () {String className; int i = 0; Klassenname; try {int ii = 1/i; } catch (Ausnahme e) {StackTraceElement se = e.getStackTrace (); String fullClassName = se.getClassName (); int lastDot = fullClassName.lastIndexOf ("."); className = fullClassName.substring (++ lastDot); } return className;} Gibt es eine einfachere Möglichkeit, dies zu tun? Ich sehe nach Reflexion, konnte aber nicht herausfinden, wie man es benutzt. Vielen Dank für jede Hilfe.

Was ist mit this.getClassName (), anstatt absichtlich einen Fehler zu verursachen, einen Stack-Trace abzurufen und das oberste Objekt zu greifen? Oder fehlt mir etwas?

this.getClassName () wird nicht kompiliert. Ich muss es kompilieren. Vielen Dank an alle.

Beliebte Beiträge