Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизВопрос про SW_MAXIMIZE. Найти похожие ветки
← →
vegarulez © (2007-07-05 17:48) [0]Привет всем мастерам. У меня вот такой вопрос. допустим открываю программу (к примеру блокнот) с помощью
ShellExecute(h, "open", PChar("C:\windows\notepad.exe"), nil, nil, SW_MAXIMIZE);
Она естественно раскрывается на весь экран.
Но есть другая программулина - онау себя где-то хранит настройки может... или как... но вообщем она открывается всегда в маленьком окошке - пока не нажмёшь на кнопочку развернуть - она не развернётся. А с вызовом приведённым выше не получается её развернуть.... :(
Подскажите как можно допустим какой нить апишный вызов в программу передать, чтоб она развернулась... или ещё как... подскажите...
← →
Игорь Шевченко © (2007-07-05 18:00) [1]
> А с вызовом приведённым выше не получается её развернуть.
> ...
Программа запросто может игнорировать то, что ей передали через ShellExecute.
> Подскажите как можно допустим какой нить апишный вызов в
> программу передать, чтоб она развернулась... или ещё как.
> .. подскажите...
Найти окно программы (по заголовку, например) и сказать
PostMessage(найденное_окно, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
← →
vegarulez © (2007-07-05 18:47) [2]>> Найти окно программы (по заголовку, например) и сказать
Подскажи как это сделать? Какую комманду почитать в HELPe
← →
{RASkov} © (2007-07-05 19:08) [3]> Какую комманду почитать в HELPe
FindWindow
← →
vegarulez © (2007-07-05 21:15) [4]Ахха пасип. получилось всё.
Тока вот ещё пару вопросов возникло...
1. В той программмулине - пока она подключается - название окна одно как только подключится - название окна становится другим.... Так вот можео как нить по маске попробовать его отловить? т.е туда в файндвиндов запихнуть маску какую нить...
2. Если допустим есть какой-то процесс... то как его закрыть? Просто ситуация такая - это программа тока в процессах почему-то, а в приложениях её даже нет. Можно тогда впринципе не на название окна опираться, а на название процесса... там он называется всегда одинаково.
З.Ы. Ещё одно заметил... когда пытаюсь закрыть эту программулину
PostMessage(FindWindow(nil, "Тут название моего окна"), WM_QUIT, 0, 0);
он её нормально закрывает...
но когда пытаюсь
PostMessage(FindWindow(nil, "Тут название процесса типа *.exe"), WM_QUIT, 0, 0);
то моя прога просто вылетает ничего не делая...
Как это объяснить? почему там низя писать название процесса "название.exe"?...
← →
vegarulez © (2007-07-07 07:24) [5]Привет мастерам!
и ещё 1 вопрос + к тем 2-ум которые написал выше.
как узнать что PostMessage отработал?
В хелпе написано что возращает либо зеро либо нонзеро... в булевом формате... как это понять?
← →
Washington © (2007-07-07 07:44) [6]Насчёт закрытия процесса - поищи в Нете KillProcessByName. Я это где-то видел, когда делал прогу, которая вырубает комп.
← →
Однокамушкин (2007-07-07 08:59) [7]
> vegarulez © (05.07.07 21:15) [4]
> 1. В той программмулине - пока она подключается - название
> окна одно как только подключится - название окна становится
> другим.... Так вот можео как нить по маске попробовать его
> отловить? т.е туда в файндвиндов запихнуть маску какую нить.
Нет, маску в FindWindow нельзя, можно получить все окна верхнего уровня через EnumWindows и там уже самому реализовать любую маску...
> В хелпе написано что возращает либо зеро либо нонзеро...
> в булевом формате... как это понять?
Тяжёлое наследие C/C++... В С нет вообще лагоического типа, а в С++ есть, но условно, он совместим с целым... Считается, что любое ненулевое значение это TRUE, а нулевое - FALSE... В Delphi есть тип BOOL, который надо использовать в таких случаях, он при необходимости автоматически приводится к Boolean, программисту можно об этом вообще не думать...
← →
vegarulez © (2007-07-08 07:38) [8]
> Тяжёлое наследие C/C++... В С нет вообще лагоического типа,
> а в С++ есть, но условно, он совместим с целым... Считается,
> что любое ненулевое значение это TRUE, а нулевое - FALSE.
> .. В Delphi есть тип BOOL, который надо использовать в таких
> случаях, он при необходимости автоматически приводится к
> Boolean, программисту можно об этом вообще не думать...
Ну хорошо. Пусть так. Но как же всёже проверить что комманда действительно выполнилась? Проверяю на true - всегда срабатывает независимо оттого выполнилась или нет, проверяю на false - никогда не срабатывает - если даже успешно выполнилась... как быть?
← →
vegarulez © (2007-07-20 07:33) [9]Никто не может подсказать про vegarulez © (08.07.07 07:38) [8] ?
← →
Dib@zol © (2007-07-20 09:41) [10]Может :) Понимаеш, ПостМессидж он на то и Пост, а не Сенд, что вылетает сразу как передал кому надо сообчение, и ему конкретно в отличие от SendMessage наплевать выполнилось оно или нет. А true он возвращает потому, что посылка (да, посылка а не обработка) мессиджа окончилась успешно. Вывод - юзай SendMessage.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.052 c