Gast Blub666 Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 Hi @ all, ich möchte gerade ein kleine Programm schreiben, welches mir eine Ausgabe einer Variablen durch eine Tastenkombination ermöglicht. Genauer gesagt, möchte ich den Computernamen einlesen - in einer Variable schreiben - diese Variable durch die Tastenkombination "Alt + x" ausgeben. Momentan bin ich soweit, dass ich den Computernamen ausgelesen und in einer Variable geschrieben habe, glaube ich zu mindestens. Ich bin mit Java so ziemlich gar nicht "befreundet" - sag ich jetzt mal so. Ich habe erst ein paar Stunden Java in der Schule gehabt. Da jedoch auch nur sowas wie Operatoren, Schleifen, Verzweigungen, usw. Also nichts was mir bei diesem Problem weiterhelfen kann. Ich möchte jetzt aber keine andere Programmiersprache nehmen, da ich Java so oder so lernen muss... Hier mein aktueller Code... kann mir wer einen Tipp geben, der mir bei meinem Problem etwas weiterhelfen kann? (Ist nicht viel, aber komme gerade nicht weiter...) package computername; //import java.net.*; <-- kann ich weglassen, oder?! public class Computername { public static void main(String[] args) { String pcName = System.getenv("COMPUTERNAME"); System.out.print(pcName); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 siehe System (Java 2 Platform SE 5.0) Da Du das Programm mit einer Tastenkombination starten willst, ist das nicht Sache von Java, sondern Sache von Deinem OS. Du musst Deinem OS mitteilen, dass es eben bei Alt+x Dein Programm starten soll. Aber Java dafür zu verwenden, um eine einzelne Umgebungsvariable auszulesen ist, recht sinnlos. Ein entsprechendes Shellscript macht das gleiche und muss nicht kompiliert werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Blub666 Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 Ok, danke dir erstmal. Ich möchte das Java-Programm z.B. im Hintergrund laufen lassen, sodass ich mit einer Tastenkombination den Computernamen z.B in Word einfügen kann. Das kann man mit Java doch machen... und sollte doch auch recht schnell gehen, oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 Das kann man mit Java doch machen... und sollte doch auch recht schnell gehen, oder? Man kann es mit Java machen, ich rate aber davon ab. Du musst Dich via Java Native Access an die entsprechenden Windows Routinen binden (alternativ auch Java Native Interface ) Dir die aktuelle Word Instanz liefern lassen und dort dann die Daten einfügen. Da Du das KeyEvent global vom OS abfangen willst, da ja Word dann den Focus hat, musst Du Dich mit einer der beiden Methoden an die entsprechenden OS eigenen Komponenten hängen und Dir von dort die Events liefern lassen. Das Java Programm reagiert zunächst nur auf Events, wenn es den Focus hat. Für Dein Vorhaben würde ich Dir zu ein paar VB Zeilen raten, denn das liefert Dir das ganze viel schneller Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Blub666 Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 (bearbeitet) Ok, wenn ich das Ganze mit VB machen könnte, dann habe ich mir mal das gebastelt: Public Class Form1 Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Keys) As Short Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick If keyboardcheck(Keys.F7) = True Then Timer1.Stop() TextBox1.Text = My.Computer.Name Timer1.Start() End If End Sub Private Function keyboardcheck(ByVal key As Keys) As Boolean Return (GetAsyncKeyState(key) = -32767) End Function End Class Das funktioniert auch. Jedoch füge ich das Ganze momentan in die TextBox1 ein. Wie kann ich das Ganze in z.B. ein Word-Doc oder in ein Windows Fenster einfügen? //EDIT: Ich glaube ich habs gerade... //EDIT2: Wobei... eine Frage habe ich noch: Hotkey = GetAsyncKeyState(Keys.Alt And Keys.F7) funktioniert nicht. Wie kann ich eine Tastenkombination machen.. also z.B. Alt und F7, dann soll was passieren... ??? Bearbeitet 7. Februar 2012 von Blub666 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 Rufe den VB Code innerhalb des Worddokumentes auf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Blub666 Geschrieben 7. Februar 2012 Teilen Geschrieben 7. Februar 2012 Also es funktioniert, wenn ich z.B. nur das hier mache: Hotkey = GetAsyncKeyState(Keys.Alt And Keys.F7) Wenn ich jetzt jedoch Alt + F7 machen möchte... was ist dort die Verbindung? Habe schon &, and, + ausprobiert. Alles ohne Erfolg. ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rny Geschrieben 8. Februar 2012 Teilen Geschrieben 8. Februar 2012 ohne gewähr If (e.KeyCode = Keys.F7 AndAlso e.Modifiers = Keys.Alt) Then Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.