![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как установить шрифт консольному приложению [D7, WinXP]
ANB © (2010-06-23 12:29:00)при запуске его через CreateProcess
Запускаю так :
// Параметры процесса
GetStartupInfo(lpStartupInfo);
lpStartupInfo.cb := sizeof(TStartupInfo);
lpStartupInfo.dwFlags :=
STARTF_USESHOWWINDOW
+ STARTF_USESIZE + STARTF_USECOUNTCHARS {+ STARTF_USESTDHANDLES};
lpStartupInfo.wShowWindow := SW_SHOWDEFAULT;
case WinSizeType of
0 : begin WinX := 132; WinY := 60; end;
1 : begin WinX := 80; WinY := 50; end;
2 : begin WinX := 80; WinY := 25; end;
3 : begin WinX := 152; WinY := 76; end;
4 : begin WinX := 110; WinY := 40; end;
5 : begin WinX := edSizeWidth.AsInteger; WinY := edSizeHigh.AsInteger; end;
else
WinX := 80; WinY := 25;
end;
// lpStartupInfo.dwXSize := WinX * 8;
lpStartupInfo.dwXSize := WinX * 10;
lpStartupInfo.dwXCountChars := WinX;
// lpStartupInfo.dwYSize := WinY * 12;
lpStartupInfo.dwYSize := WinY * 18;
lpStartupInfo.dwYCountChars := WinY;
lpStartupInfo.lpTitle := PChar(EXEFileName);
{
lpStartupInfo.hStdOutput := ChildStdOutWr;
lpStartupInfo.hStdError := ChildStdOutWr;
}
// Диалог с параметрами, если надо
if edIsShowCmd.Checked then begin
if (ShowDialog('Запуск модуля'
, RunParams + #13#10
+ #13#10
+ 'Рабочий каталог :' + #13#10 + WorkFolder + #13#10
+ #13#10
+ 'Запускать ?'
, sdiConfirm, ['&Да', '&Нет']) 1) then Exit;
end;
if not CreateProcess(
nil
,PChar(RunParams)
,nil
,nil
,False
,0 // creation flags
,nil // pointer to new environment block
,PChar(WorkPath) // pointer to current directory name
,lpStartupInfo // pointer to STARTUPINFO
,lpProcessInformation // pointer to PROCESS_INFORMATION
)
then Exception.Create('Ошибка при выполнении командной строки ' + #13#10 + RunParams);
Добился синхронного измения размера при установке шрифта в свойствах окна, но сам шрифт приходится :
1. Выбирать в свойствах
2. Надо как то указать его программе для расчета размера окна в пикселях.
Вариант - считать размер шрифта из свойств, но тоже не знаю как.
0x00FF00 (2010-06-30 00:13:00) [1]
> Нашел. Надо перед стартом ключи в реестре подкрутить.
Поведай свой секрет, Просветлённый =)
После тебя ещё 100500 человек тему прочтут, а решения так и не найдут) придётся бедолагам перелопачивать реестр самим. Нехорошо.
ANB (2010-06-23 14:29:00) [2]Нашел. Надо перед стартом ключи в реестре подкрутить.
ANB (2010-06-23 14:07:00) [3]1. Win XP
2. В делфи 7 прототипа нету
3. В консольное приложение вломиться не могу. Я его только запускаю. К тому же оно не одно. Т.е. нужно им управлять извне.
Игорь Шевченко (2010-06-23 13:27:00) [4]SetCurrentConsoleFontEx в программе ?