Zum Inhalt springen

Java Tastenkombination


Gast Blub666

Empfohlene Beiträge

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);


    }        

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Blub666
Link zu diesem Kommentar
Auf anderen Seiten teilen

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. ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...