Ho realizzato un piccolo programma in C# che voglio eseguire in background e dovrebbe apparire solo quando viene premuta una determinata combinazione di tasti. Come posso fare questo?Sviluppa un programma che viene eseguito in background in .NET?
risposta
ci sono almeno tre modi per farlo:
Classic Windows Service applicazione. L'articolo "Creating a Basic Windows Service in C#" di CodeProject ti aiuterà. In tal caso si utilizza lo spazio dei nomi
System.ServiceProcess
. A proposito, in tal caso si dovrebbe leggere l'articolo "System.ServiceProcess Namespace" da MSDN. Ecco una breve citazione:Lo spazio dei nomi System.ServiceProcess fornisce classi che consentono di implementare, installare e controllare le applicazioni di servizio di Windows. I servizi sono eseguibili di lunga esecuzione che vengono eseguiti senza un'interfaccia utente.
residenti in memoria programma. Ma questo è quasi impossibile da fare con C#. Usa C++ o meglio C per questo scopo, se vuoi. Se vuoi cercare da solo, usa la parola chiave
TSR
.L'ultimo che è uno sporco. È sufficiente creare un'applicazione C# senza forma e try a hide da Task Manager.
una domanda. posso aggiungere una GUI al servizio di Windows? –
No, ma è possibile creare un'applicazione GUI separata per l'interconnessione con un servizio – gahcep
qualsiasi linea guida su come posso farlo? –
Per consentire al programma di essere completamente invisibile, penso, una cattiva idea. Quindi l'utente non può integrarsi con il programma. Suggerirei di inserirlo nella SysTray (un'icona accanto all'orologio di Windows)
trayIcon = new NotifyIcon();
trayIcon.Text = "My application";
trayIcon.Icon = TheIcon
// Add menu to tray icon and show it.
trayIcon.ContextMenu = trayMenu;
trayIcon.Visible = true;
Visible = false; // Hide form window.
ShowInTaskbar = false; // Remove from taskbar.
Per monitorare la tastiera è possibile utilizzare il gancio tastiera a basso livello (see example) o allegare un hootkey (See example)
Che ne dici di Sticky Keys? O lo strumento Magnifier? Ci sono alcune possibilità interessanti .. (concesse queste non in realtà "eseguite sullo sfondo" AFAIK) –
Beh, non è un programma commerciale qualcosa che sto solo cercando di imparare. Il progarm avrebbe una GUI per la prima volta, quindi funzionerà in background e diventerà visibile solo dopo aver premuto una determinata combinazione di tasti. –
Se voglio davvero creare un programma che sia realmente in esecuzione in background, prova a creare un servizio di Windows. relativo là, se quando si crea un nuovo progetto
ok ho guardato fatto una rapida ricerca sul web sul servizio di Windows e wikipedia dice che un servizio Windows non richiede l'intervento dell'utente. Forse potrei chiaramente cancellare il mio requisito. Il programma dovrebbe avere una GUI la prima volta che viene eseguito. Successivamente apparirà solo quando viene premuta una determinata combinazione di tasti. È possibile creare una GUI con il servizio di Windows? –
È possibile creare un servizio di un'applicazione Windows. Funziona come un processo in background. Nessuna interfaccia utente. Questo può anche avviarsi automaticamente all'avvio del computer. È possibile visualizzare il resto dei processi in background in Task Manager oppure digitare services.msc nel prompt dei comandi.
Questo potrebbe aiutare. http://msdn.microsoft.com/en-us/library/9k985bc9%28v=vs.80%29.aspx
Una soluzione rapida e sporca (credo che il modello di finestra di Application Service non è disponibile in Visual Studio Express e Standard):
Nuova Windows Form. Aggiungi una nuova classe alla soluzione e scrivi il codice che desideri all'interno.
Torna finestra di progettazione form, impostare la proprietà WindowState a Minimized, e aggiungere un evento Load al form. Nel gestore eventi nascondere il form e chiamare la classe:
private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
MyNewClass mynewclass=new MyNewClass();
}
L'applicazione non appare nella barra delle applicazioni e non si vede quando si preme Alt + Tab.È possibile aggiungere un'icona systray ad esso se si vuole, proprio come magol ha scritto:
NotifyIcon trayIcon = new NotifyIcon();
trayIcon.Icon=new Icon(@"C:\iconfilename.ico");
trayIcon.Visible = true;
creare un'applicazione Windows Form, ed eliminare Form1
Modify Program.cs Application.Run(new Form1());
a Application.Run();
- 1. PHP viene eseguito in background quando il browser è chiuso?
- 2. Come posso creare un thread che viene eseguito tutto il tempo in background in un sito Web .net?
- 3. dove viene eseguito l'output quando viene eseguito come processo in background?
- 4. significato di "applicazione non viene eseguito in background"
- 5. shell_exec non viene eseguito in background, altre soluzioni?
- 6. Visualizza casuale URL ngrok quando viene eseguito in background
- 7. Fare un'applicazione .NET l'unico programma che può essere eseguito?
- 8. ffmpeg si blocca quando viene eseguito in background
- 9. Come rendere il mio programma un processo in background
- 10. L'attività viene eseguita in background
- 11. Quando viene eseguito il garbage collector .net?
- 12. Servizio Windows che viene eseguito periodicamente
- 13. Programma Java in esecuzione in background
- 14. Can Emacs comando eseguito in background
- 15. Quando viene eseguito .Net su UNIX?
- 16. Gli indirizzi dei puntatori cambiano ogni volta che il programma viene eseguito in C?
- 17. Arrestare un PC Windows 7 dall'arresto in modalità standby mentre viene eseguito un programma Ruby
- 18. Esecuzione di un programma Java in background in Tomcat
- 19. Come portare un programma in background mettere in primo piano
- 20. Come arrestare un programma java se viene determinato che non dovrebbe essere eseguito?
- 21. Come far funzionare un programma Java in background?
- 22. Come eseguire un'applicazione console .NET in background
- 23. Come posso simulare l'app che viene uccisa in background?
- 24. In che modo viene eseguito il 302 Redirect?
- 25. L'eccezione com.google.zxing.NotFoundException arriva quando viene eseguito il programma Java core?
- 26. PerformSelector Dopo il ritardo non viene eseguito in modalità background - iPhone
- 27. server di sviluppo django, come fermarlo quando viene eseguito in background
- 28. Perché il codice in fine blocco non viene eseguito?
- 29. Evitare che "il programma smetta di funzionare" in C# /. NET
- 30. Perché il ciclo do-while non viene eseguito come previsto in questo programma Java?
Window Application Service - http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx – adatapost
Hai guardato questa risposta: http://stackoverflow.com/questions/2499095/how-to -assign-a-shortcut-key-qualcosa-come-ctrlf-a-un-testo-box-in-windows-fo – Kane