Archiv der Kategorie: Programmieren

Full Screen Black

Das Javaprogramm “ Full Screen Black“ erzeugt einen schwarzen Bildschirm im Vollbildmodus. Durch Doppelklicken der „FullScreenBlack_v1.0.jar“-Datei kann es ausgeführt werden, vorrausgesetzt eine JRE ist installiert.

Das Programm kann hier heruntergeladen werden:
FullScreenBlack_v1.0 (executable .jar file)

Funktion (“ Full Screen Black“ ):
Das Programm erzeugt einen JFrame in der Größe der akuellen Bilschirmauflösung. Der Frame wird in den Vordergrund gesetzt. Durch Drücken der Esc-Taste kann das Programm wieder beendet werden.

Javacode des Programms:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
 
public class BlackScreen {
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		//Set JFrame size to full screen size follow current screen size
		frame.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);
		frame.getContentPane().setBackground(Color.BLACK);
		frame.setUndecorated(true);
		frame.setAlwaysOnTop(true);
 
		KeyListener kl=new KeyAdapter(){
		  public void keyPressed(KeyEvent evt){
		   //If someone click Esc key, this program will exit
			  if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
				  System.exit(0);
			  }
		  }
		};
		//add Key Listener to JFrame
		frame.addKeyListener(kl);		
		frame.setVisible(true);
	}
}

Javascript onEnter() – Function

Folgendes Beispiel zeigt wie eine Javascript Function zum submitten eines Forms durch Drücken der Entertaste verwendet werden kann:
onenter

Beschreibung:
Da es in Javascript keine Event-Handler für onEnter()-events gibt möchte ich hier eine einfache Möglichkeit mittels einer Javascript Function vorstellen.
Zunächst muss die Function im Header-Bereich erstellt werden, „code==13“ steht hier für das Drücken der Entertaste. „myform“ ist der Name des Forms das abgeschickt werden soll.

<script type="text/javascript">
   function onEnter(event)
   {     
      var code = 0;
      code = event.keyCode;
      if (code==13)
         document.myform.submit();
    }
</script>

Mittels folgendem Befehl kann die Funktion über ein input Feld aufgerufen werden. Sobald der Benutzer Enter drückt, wird die onEnter-Function aufgerufen und das Form abgeschickt.

<form name="myform" action="onenter.php" method="post"> 
   <input type="text" name="Inputwert" size="10" maxlength="100" onKeyPress="onEnter(event)" ></input>
</form>

Folgender Code zeigt das komplette Beispiel der onEnter Funktion in php:

<html>
  <head>
    <title>On Enter Beispiel</title>
 
    <script type="text/javascript">
	function onEnter(event)
	{     
	   var code = 0;
	   code = event.keyCode;
	   if (code==13)
	      document.myform.submit();
	}
    </script>	
  </head>
  <body>
	Welchen Wert möchstest du übergeben?? 
	<form name="myform" action="onenter.php" method="post"> 
		<input type="text" name="Inputwert" size="10" maxlength="100" onKeyPress="onEnter(event)" ></input>
	</form>
 
	(drücke enter)
	<br/>
	<br/>
	Du hast folgenden Wert übergeben: <?php echo $_POST["Inputwert"];?>
  </body>
</html>

Reconnect FritzBox – Java Programm mit Quellcode

Zum Thema Reconnect und Beziehen einer neuen IP gibt es im Internet eine relativ große Anzahl von Lösungen. Auf gulli gibt es bereits fertige Implentierung zum herunterladen. Was mich an diesen Implementierungen ein wenig stört gestört hat ist, dass der Quellcode bei diesen .exe Dateien meistens nicht zur Verfügung gestellt wird. Kleine .exe Dateien erwecken bei mir nicht gerade einen „seriösen“ Eindruckt.

Deshalb möchte ich hier nun meinen Beitrag zum Thema reconnect leisten. Meine Implentierung ist ein kleines Java Programm, das den reconnect bei einer Fritz!Box automatisch durchführt. Damit das Programm funktioniert muss auf der FritzBox UPNP aktiviert sein.
Wie in den meisten anderen Implementierungen sendet auch mein Programm eine sogenannte XML-SOAP message an die FritzBox.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>

Diese SOAP Message bewirkt, dass die Fritz!Box ihre Internetverbindung terminiert und einen reconnect durchführt. Der Router erhält somit eine neue IP-Adresse. Den Quellcode möchte ich hier nicht im Einzelnen erklären. Wer sich ein wenig mit Java auskennt sollte eigentlich keine größeren Verständnisprobleme haben. Um es ausführen zu können sollte auf dem Rechner natürlich eine JRE installiert sein.

Eine ausführbare .jar Datei (einfach doppelklicken), sowie die Quellcode Datei können hier heruntergeladen werden:

ReconnectFritz (executable .jar file)
ReconnectFritz (Java Source file)

Die Datei kann kann dann beispielsweise in JDownloader eingebunden werden:

Quellcode des Java-FritzBox-Reconnect Programms:

import java.net.*;
import java.io.*;
 
public class PostSOAP {
 
  public static void main(String[] args) {
 
    sendSOAP();
    System.exit(0);
 
  }
 
  public static void sendSOAP(){
	  try {
	      String xmldata = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
	      "<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
	      "<s:Body>"+
	      "<u:ForceTermination xmlns:u=\"urn:schemas-upnp-org:service:WANIPConnection:1\" />"+
	      "</s:Body>"+
	      "</s:Envelope>";
 
 
	      //Create socket
	      String hostname = "fritz.box";
	      int port = 49000;
	      InetAddress  addr = InetAddress.getByName(hostname);
	      Socket sock = new Socket(addr, port);
 
	      //Send header
	      BufferedWriter  wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(),"UTF-8"));
	      wr.write("POST /upnp/control/WANIPConn1 HTTP/1.1");
	      wr.write("Host: fritz.box:49000" + "\r\n");
	      wr.write("SOAPACTION: \"urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination\""+"\r\n");
	      wr.write("Content-Type: text/xml; charset=\"utf-8\""+"\r\n");
	      wr.write("Content-Length: " + xmldata.length() + "\r\n");
	      wr.write("\r\n");
 
	      //Send data
	      wr.write(xmldata);
	      wr.flush();
 
	    } catch (Exception e) {
	      e.printStackTrace();
	    }
  }
}