![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Sqwirl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.4.2007 Репутация: нет Всего: нет |
Не расскажите как
- запустить процессы с параметрами, - считать параметы в запущенном процессе, - использовать семафоры для синхронизации, - передавать данные через разделяемую память. Всё это использую C#. |
|||
|
||||
farad |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: -1 Всего: 6 |
а нет общих данных - так и семафоры не нужны |
||||
|
|||||
Sqwirl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.4.2007 Репутация: нет Всего: нет |
Просто нужно использовать разделяемую память! |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Sqwirl, давай поподробнее. Что за процессы, управляемые или нет, что за данные и зачем.
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
Sqwirl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.4.2007 Репутация: нет Всего: нет |
Нужно запускать процессы как будто выполняют работу. Передача данных между ними при помощи разделяемой области памяти (FileMapping - что-то вроде), синхронизация семафоры. Ещё нужно останавливать процесс (работу) по желанию и возобновлять. Всё должно происходить в реальном времени - постоянно должен отражаться ход работ.
|
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
по поводу разделяемой памяти посмотри
Using Shared Memory in a Dynamic-Link Library Creating Named Shared Memory, где
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
Alived |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.12.2007 Репутация: нет Всего: нет |
Возникла такая ситуация. У меня имеется прилжение a.exe, которое при запуске выдаёт форму с запросом пароля. Задача: написать программу, которая запустит это приложение, введёт имеющийся пароль (и как бы нажмёт "ок") и при правильном пароле (удачном прохождении идентифиуации) завершит свою работу. Реально? Технологию
System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "notepad.exe"; proc.Start(); пытался освоить. Запусить-то запустил, а что дальше делать? |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
а дальше - через P/Invoke
FindWindowEx() SendMessage() Что-то наподобие этого
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
Alived |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.12.2007 Репутация: нет Всего: нет |
Спс за скорый ответ. Я токо начал изучать С#. Да и вообще в программирование до этого не особо вдавался. Можно несколько вопросов по коду?
1. const int WM_LBUTTONDOWN = 0x0201; // 0х0201 - что означает? 2. static void Main(string[] args) // string[] args необходимо? если да, то где это используется в коде, т.е. изначально main() идёт без аргументов?.. 3. IntPtr mainHandle = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "WindowsForms10.Window.8.app.0.2e0c681", "bla-bla"); // "WindowsForms10.Window.8.app.0.2e0c681", "bla-bla" - просто в качестве примера, или "WindowsForms10.Window.8.app.0.2e0c681" - какой-то фиксированный параметр? Ещё раз извиняюсь за глупые вопросы (готов получить такие же ответы ![]() |
|||
|
||||
tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
я надеюсь, что глупые ответы я перестал давать уже достаточно давно и не стану их давать впредь ![]() 0х означает, что число написано в шестнадцатеричном формате. Т.е. в десятичной системе 0х0201 будет означать 513
в данном примере - нет. Просто студия автоматически генерирует такую сигнатуру и иногда (практически всегда) я забываю ее поменять. Если ты будешь передавать в программу какие-то аргументы командной строки, тогда да, такая сигнатура будет нужна. в качестве примера. Посмотри сигнатуру методов в Win API, там написано назначение и тип каждого из параметров. Или на www.pinvoke.net "WindowsForms10.Window.8.app.0.2e0c681" - имя класса, если не ошибаюсь, а вместо "bla-bla" нужно подставлять имя окна (кнопка - это тоже окно) -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |