Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как из НЕТ приложения вызвать другую программу? Добавлено: 10.06.08 12:52  

Автор вопроса:  Shota
Из коммандной строки я могу вызвать к примеру блокнот с параметром открываемого файла и Блокнот загрузиться сам и загрузит файл.
А как можно сделать тоже самое из НЕТ приложения? Причем приложение должно дождаться закрытия Блокнота, после чего измененный файл должен отправиться в базу данных.

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #1
Добавлено: 10.06.08 15:42
а не легче сделать свой редактор!??? тогда сможете отловить все действия пользователя =)

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 10.06.08 16:15
System.Diagnostics.Process.Start

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 10.06.08 16:15
Мог с пространством имен ошибиться, давно не кодировал :( Но класс точно называется Process. Найдёте.

Ответить

Номер ответа: 4
Автор ответа:
 ника



Вопросов: 1
Ответов: 111


 Профиль | | #4 Добавлено: 10.06.08 21:10

using System;
using System.Diagnostics;
using System.IO;

namespace VbNetExample
{
    public class Program
    {
        
        private static void Main(string[] args)
        {
            bool wait = true;
            StartNotepadProcess(@"C:\test.txt", wait);
            if (wait) DoWork(null, null);
        }

        private static void StartNotepadProcess(string filePath, bool wait)
        {
            if (!File.Exists(filePath)) throw new FileNotFoundException("File not found", filePath);
            
            Process m_notepadProcess = new Process();
            m_notepadProcess.StartInfo.CreateNoWindow = true;
            m_notepadProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
            m_notepadProcess.StartInfo.FileName = filePath;
            m_notepadProcess.StartInfo.Arguments = "notepad.exe";
            m_notepadProcess.EnableRaisingEvents = !wait;
            if (!wait) m_notepadProcess.Exited += new EventHandler(DoWork);
            m_notepadProcess.Start();
            if (wait) m_notepadProcess.WaitForExit();
        }

        private static void DoWork(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }
    }
}


Только учти, что в консоли ассинхронно запустить процесс не получится потому что основной поток закончит работу раньше, чем ты закроешь окно блокнота.

Ответить

Номер ответа: 5
Автор ответа:
 Shota



Вопросов: 22
Ответов: 52
 Профиль | | #5 Добавлено: 11.06.08 17:24
Всем спасибо за ответы..... если кому интересно я решил подругому:


dim command as string = "c:\Windows\system32\notepad.exe c:\myFile.txt"
Microsoft.VisualBasic.Interaction.Shell(command, AppWinStyle.NormalFocus, true, -1);

Ответить

Номер ответа: 6
Автор ответа:
 Shota



Вопросов: 22
Ответов: 52
 Профиль | | #6 Добавлено: 11.06.08 17:26
сори...... намешал бейсик и с шарп:) но все работает:)

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 11.06.08 18:52
ника, а можно твою асю?..

Ответить

Номер ответа: 8
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #8 Добавлено: 12.06.08 23:11
А если так:

For Each proc As Process In Process.GetProcesses()
            If InStr(proc.MainWindowTitle, "notepad";) > 0 Then proc.CloseMainWindow()
        Next


~'J'~

Ответить

Номер ответа: 9
Автор ответа:
 ника



Вопросов: 1
Ответов: 111


 Профиль | | #9 Добавлено: 12.06.08 23:28
Shota, но при таком раскладе ты не сможешь отловить момент закрытия приложения(блокнота), а в моем варианте это отслеживается.

AgentFire, а нафига она тебе?

Ответить

Номер ответа: 10
Автор ответа:
 Shota



Вопросов: 22
Ответов: 52
 Профиль | | #10 Добавлено: 14.06.08 16:09
мне нужно написать интерфейс к одной таблице в базе которая содержит XML. XML - редактор я писать не собираюсь...... ( да и не смогу:))
поэтому юзер сам выберит редактор по вкусу а я буду грузить в него XML и обратно в базу.
вот тут то и нужно вызвать другую программу и дождаться окончания ее работы.

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 14.06.08 23:33
 а меня заводят девчонки, смыслящие в программинге :)

Ответить

Номер ответа: 12
Автор ответа:
 ника



Вопросов: 1
Ответов: 111


 Профиль | | #12 Добавлено: 15.06.08 09:20
а меня заводят девчонки, смыслящие в программинге :)

:-))) Жесть! Дружище, ты извращенец!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам