Nevíte někdo kód jak vypnout např. winamp.exe při stisku tlačítka.Zkoušel jsem Application.Exit() ale ta nefunguje nic jinýho mě nenapadá.
Fórum › .NET
Jak ukončit jinou aplikaci
Nemůžu na to příjít.
Jiný program otevřu takto Process myProcess = Process.Start(OpenFileDialog.FIleName);
ale když pak zadám myProcess.Close(); nebo myProcess.Kill(); tak se nic nestane.
Nejlepší by bylo abych jenom zavřel už oteřenou aplikaci abych ji nemusel programově otvírat.Dělám program kterej po uplynutí nastavenýho času vypne přehrávač.
Pripadne se zkus optat jeste zde.
http://www.dotnetforum.cz/index.php
Editoval DeaLer: Dávejte si pozor na podobné příspěvky, mohou být považovány za reklamu a to je v rozporu s pravidly této diskuze: http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=1698-dulezite-pravidla-pro-psani-prispevku. Smazání takového příspěvku pak závisí pouze na mém úsudku (vždy je možné se dohodnout, ale ne tak jak to zkoušel autor příspěvku).
To Hula : Pošli sem prosím celej kód. Příště tohle napiš rovnou do úvodního příspěvku.
Jasny příště už to tak udělám.
Zde je kód :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace skola
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (NUDhodiny.Value == 0 && NUDminuty.Value == 0 && NUDsekundy.Value == 0)
MessageBox.Show("Žádný čas","Chyba",
MessageBoxButtons.OK,MessageBoxIcon.Warning);
else
{
button2.Enabled = true;
button1.Enabled = false;
timer1_Tick(null, null);
timer1.Interval = 1000;
timer1.Enabled = true;
progressBar1.Maximum = Convert.ToInt16(NUDhodiny.Value * 3600) + Convert.ToInt16(NUDminuty.Value) * 60 + Convert.ToInt16(NUDsekundy.Value);
}
}
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = false;
button1.Enabled = true;
timer1.Stop();
minuty = 0;
sekundy = 0;
hodiny = 0;
label1.Text = "";
progressBar1.Value = progressBar1.Minimum;
}
int sekundy = 0, minuty = 0, hodiny = 0;
private void timer1_Tick(object sender, EventArgs e)
{
sekundy++;
progressBar1.Value++;
if (sekundy == 60)
{
sekundy = 0;
minuty++;
}
if (minuty == 60)
{
minuty = 0;
hodiny++;
}
if (hodiny == 24)
hodiny = 0;
label1.Text = hodiny.ToString() + ":" + minuty.ToString() + ":" + sekundy.ToString();
if (sekundy == NUDsekundy.Value && minuty == NUDminuty.Value && hodiny == NUDhodiny.Value)
{
//ZDE SE BY MEL VYPNOUT
button2.Enabled = false;
button1.Enabled = true;
timer1.Stop();
timer1.Enabled = false;
progressBar1.Value = progressBar1.Minimum;
MessageBox.Show("Vyp");
//System.Diagnostics.Process.Start("ShutDown", "/s /t 120");
}
}
public void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Process novy = Process.Start(openFileDialog1.FileName); //Tady se přehravac otevre
}
}
public void Form1_Load(object sender, EventArgs e)
{
button2.Enabled = false;
}
}
}
Na řádku 98 se přehravač v pohodě otevře a na řádku 76 by se měl zavřít zkoušel jsem různě ale nic mi nefungovalo.
Muzes mi rict v jakem rozporu DeaLere prosim??? Procetl jsem DUKLADNE pravidla. Ocekavam ze editujes i ten svuj Google... bo se jedna o to same. Nemusime chodit daleko http://vyvojar.cz ??? Prosim vrat mi tam ten muj odkaz snazil jsem se pomoci jak jsem mohl. Bohuzel nemam takove znalosti jako ty, ale urcite jsem neporusil pravidla a myslel to v dobrem.
To wen : Promiň, ale příspěvek s odkazem na jinou diskuzi s pouhým doporučením "zkus se zeptat tady" mi přijde jako reklama a navíc to nic moc neřeší. Pokud bys uvedl konkrétní odkaz na řešení (v dané diskuzi) nebo kdyby z tvého příspěvku nějak vyplývalo, že se tam daný problém řešil, tak by mi to bylo jedno (ale nestalo se tak).
4) Nevkládejte sprosté nebo urážlivé příspěvky, příspěvky reklamního charakteru nebo příspěvky nabízející/poptávající kradený software, seriové klíče, cracky a další. Vlákna a příspěvky založené za tímto účelem budou smazány.
Můžeme se dohodnout, třeba jsem se zmýlil (jsem taky jenom člověk), ale za svým názorem si stojím.
Odkaz na partnerský server (navíc web, kterej vyvíjím) v mém podpisu jistě ničemu nevadí. A myslím, že odkaz na tu diskuzi v tvém podpisu taky nebude na škodu (pokud nebude čistě reklamní).
To Hula : Uveď prosím i kód pro vypnutí, kterej jsi zkoušel. Stačí když ho tam doplníš.
Dohoda je jista...
Ale tvuj Google vede na stejne stranky jako muj odkaz... tedy stranky zabyvajici se danou problematikou. Uzivatel Hula snad nevypada na takovu Lamu aby se na goole nepodival. Zalozil tema dobreho nazvu a dostatecne popsal problem (bez kodu)
Tak ze tedy muj odkaz NEVEDL na stranky reklamniho charakteru, nenabizel ani nepoptaval kradeny SW ani seriovy klic ani crack!
Mas tam jine pravidlo, ktere by bylo s rozporem?
Jinak stranky s odkazem nevlastnim, nepodilim se na jejich vyvoji... nemam s nimi nic spolecneho.
Take se muzu mylit a stojim si za svym nazorem, ktery jsem uvedl vyse. ( snazil jsem se v dobrem Hulovi pomoci )
To wen : Nemám teď chuť tohle řešit. Odkaz tam vrátím, ale dávej si na to pozor.
Zkoušel jsem
novy.Close();
ale to fungovat nemůže protože proces novy neni přístupný v timer1_Tick.Tak jsem zkoušel vytvořit proces novy na začatku programu jako globalni ale pak nefungovalo
novy.Start("openFileDialog.FileName")
tim pádem ani novy.Close()
v timeru.A ještě jsem zkoušel aby se to při prvním Timer1_Tick oteřelo a v poslednim zavřelo a to taky ne.Takže podle mě by stačilo nějak udělat aby proces novy byl přístupný ve metodě Timer1_Tick...V C# nejsem nějak zběhlý takže opravdu nevím zda postupuju správně.To Hula : Nepostupuješ, už několik příspěvků zpět jsem věděl, kde je tvůj problém, ale čekal jsem, že ti to dojde. Seš zběhlej alespoň v nějakým jazyku?
To Hula : rekl bych ze si nemel zrovna produktivni mesic co? :)
ale k veci zkus to nejak podobne:
public partial class Form1 : Form {
private Process process = null;
public Form1() {
InitializeComponent();
}
private void StartProcess(string path) {
try {
this.process = new Process();
this.process.StartInfo.FileName = path;
this.process.StartInfo.UseShellExecute = true;
this.process.Start();
} catch {
if (this.process != null) {
this.process.Close();
this.process.Dispose();
}
}
}
private void StopProcess() {
try {
this.process.Kill();
} finally {
if (this.process != null) {
this.process.Close();
this.process.Dispose();
}
}
}
}
pokud to pouzijes takhle ujisti se ze pred zavrenim app zvolas StopProcess()
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Pls jak zpustit z programu jinou aplikaci, a jak dělit aby zůstal zb… — založil Choco-TUx
Otevření txt souboru pro čtení, kdyz už je otevřen jinou aplikací — založil Propas
Vlákna, jak je ukončit — založil Kartmen
Jak ukončit if bez returnu — založil Draffix
[Java6]Jak ukoncit thread? — založil shadius
Moderátoři diskuze