Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.044 c
15-1185082566
dava
2007-07-22 09:36
2007.08.19
Редоктирование реестра запрешено администратором системы.


15-1184934390
UMU
2007-07-20 16:26
2007.08.19
Договор на продажу ПО (лицензирование)


3-1178306803
IMHO
2007-05-04 23:26
2007.08.19
Delphi and ESE


15-1184931279
Sandman29
2007-07-20 15:34
2007.08.19
Буш-диктатор?


2-1185121783
ququq
2007-07-22 20:29
2007.08.19
Приведение типов.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский