Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 23:19   #1
Maladoj
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 25
По умолчанию Word

Вот какая задача, есть, к примеру, 5 открытых документов word-да, и надо сделать так что б при нажатии на клавишу они стали невидимыми, и наоборот.
Заранее спасибо.
Maladoj вне форума Ответить с цитированием
Старый 05.06.2009, 16:03   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Код:
int hWnd;
Process[] processRunning = Process.GetProcesses();
foreach (Process pr in processRunning)
{
    if (pr.ProcessName == "word") // или word.exe
    {
        hWnd = pr.MainWindowHandle.ToInt32();
        ShowWindow(hWnd, SW_HIDE); // SW_SHOW чтобы показать
    }
}
Hollander вне форума Ответить с цитированием
Старый 05.06.2009, 20:50   #3
Maladoj
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 25
По умолчанию

Спасибо за ответ, но я тут порозбирался и увидел что функцыя ShowWindow принимает два параметра первый из которых типа InpPtr- это типа указатель на окно. Обявил переменную типа IntPtr а что дальше не знаю.
Maladoj вне форума Ответить с цитированием
Старый 05.06.2009, 21:56   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Первый параметр - это дескриптор окна. Его вы получаете здесь
Код:
hWnd = pr.MainWindowHandle.ToInt32();
hWnd - это дескриптор окна.
Никаких IntPtr не надо.

2Hollander
Кстати, в диспетчере задач если запустить даже 50 Вордов - процесс будет один, и называется он WINWORD.EXE
Так что ваш метод скроет только одно окно.

Подход должен быть именно к окнам.
Посмотрите Вот здесь

Последний раз редактировалось MaTBeu; 05.06.2009 в 22:11.
MaTBeu вне форума Ответить с цитированием
Старый 06.06.2009, 00:14   #5
Maladoj
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 25
По умолчанию

Вызываю функцию ShowWindow а оно пишет что не может привести первый параметр к типу IntPtr
Maladoj вне форума Ответить с цитированием
Старый 06.06.2009, 09:25   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А написать вот такой вызов не пробовали?
Код:
ShowWindow(new IntPtr(hWnd), SW_HIDE);
В MSDN все есть по этому поводу. IntPtr - указатель на обычный int. Обернутый в шарповую оболочку. Здесь ничего сверхестественного нет.
MaTBeu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
MS Word Witaliy Общие вопросы Delphi 6 27.04.2008 20:53
MS Word: Range kate4ka Общие вопросы Delphi 1 19.02.2008 06:14
Ms Word Farel Общие вопросы Delphi 0 12.01.2008 16:48