Forum » Programiranje » Izdelava programa za delovanje v ozadju
Izdelava programa za delovanje v ozadju
marjan_h ::
Kar nekaj časa že programiram, vendar nimam pojma kako deluje recimo uTorrent ali pa antivirusni program, kjer dejansko ni odprt kot tole okno brskalnika, ampak nezavedno človeku deluje v ozadju.
Lahko date primer Java/C/C++ ali pa kakšno povezavo do teh knjižnic, oziroma če so sploh potrebne?
Hvala.
Lahko date primer Java/C/C++ ali pa kakšno povezavo do teh knjižnic, oziroma če so sploh potrebne?
Hvala.
technolog ::
Stvari imaš postavljene ravno obratno. Programi so ponavadi po defaultu v ozadju, za grafični vmesnik pa rabiš knjižnico.
techfreak :) ::
http://stackoverflow.com/questions/2242...
Ocitno obstaja /SUBSYSTEM compiler flag, ki sporoci da je win32 aplikacija, in ne bo prikazalo okna.
Podobno imas tudi pri Windows Forms, kjer v Main.cs (C#) nastavis da ne kreira okna.
Ocitno obstaja /SUBSYSTEM compiler flag, ki sporoci da je win32 aplikacija, in ne bo prikazalo okna.
Podobno imas tudi pri Windows Forms, kjer v Main.cs (C#) nastavis da ne kreira okna.
GupeM ::
Na hitro spisan primer za javo:
Koda ni najlepša, ampak ti bo morala zadostovati :D
package application;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
// Nastavimo, da 'X' za zaprtje aplikacije, le-te ne zapre.
Platform.setImplicitExit(false);
// Nastavimo meni, ki se prikaže ob desnem kliku na ikono v system trayu.
PopupMenu pm = new PopupMenu();
MenuItem show_hide = new MenuItem("Hide");
MenuItem close = new MenuItem("Exit");
// Listener, ki spreminja napis v popup meniju, glede na to, ali je okno prikazano ali ne
primaryStage.showingProperty().addListener((item, oldVal, newVal) -> {
show_hide.setLabel(newVal.booleanValue() ? "Hide" : "Show");
});
// Listener, ki skriva/prikazuje okno
show_hide.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Platform.runLater(() -> {
if (primaryStage.isShowing()) {
primaryStage.hide();
} else {
primaryStage.show();
}
});
}
});
// Listener, ki zapre okno ob kliku na "Exit"
close.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Platform.exit();
System.exit(0);
}
});
pm.add(show_hide);
pm.add(close);
// Damo ikono v System tray
SystemTray.getSystemTray()
.add(new TrayIcon(Toolkit.getDefaultToolkit().getImage("POT DO SLIKE"), "Tooltip", pm));
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Koda ni najlepša, ampak ti bo morala zadostovati :D
marjan_h ::
Hvala, ali ta JavaFX je že del Jave? Tako kot včasih, no kateri GUI je bil prvi pri javi.
GupeM ::
Ja, JavaFX je že del Jave. Mislim, da od verzije 7 naprej. Sigurno pa od 8 naprej. Lahko uporabiš tudi Swing, AWT, karkoli drugega.
GupeM ::
Kaj pa vem... AWT je res dead, Swing (SWT), pa je še vedno aktualen. JavaFX ima težave, ker je zadeva dokaj nova. Upam, da v verziji 9 porihtajo nekaj stvari. Pri nekaterih stvareh je res močna (Observable interface, Property interface ipd.).
konspirator ::
antivirusni program delujo kot sistemski servis https://www.howtogeek.com/50786/using-s... ,
ut gre v system tray
https://www.codeproject.com/Articles/60...
http://stackoverflow.com/questions/7705...
https://social.msdn.microsoft.com/Forum...
https://www.codeproject.com/Articles/27...
ut gre v system tray
https://www.codeproject.com/Articles/60...
http://stackoverflow.com/questions/7705...
https://social.msdn.microsoft.com/Forum...
https://www.codeproject.com/Articles/27...
--
Zgodovina sprememb…
- spremenilo: konspirator ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Vprašanje iz JaveOddelek: Programiranje | 1162 (902) | illion |
» | [Java] Nova nit znotraj JPanel.paintComponent()Oddelek: Programiranje | 1975 (1762) | alexa-lol |
» | [Java]VprašanjaOddelek: Programiranje | 2118 (1586) | Bela01 |
» | [Java] ZmešnjavaOddelek: Programiranje | 2085 (1590) | ]Fusion[ |
» | Java,actionlistener problemOddelek: Programiranje | 1143 (1129) | JaaZoo |