Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.07.24;
Скачать: CL | DM;

Вниз

Как установить шрифт консольному приложению   Найти похожие ветки 

 
ANB   (2010-06-23 12:29) [0]

при запуске его через 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. Надо как то указать его программе для расчета размера окна в пикселях.

Вариант - считать размер шрифта из свойств, но тоже не знаю как.


 
Игорь Шевченко ©   (2010-06-23 13:27) [1]

SetCurrentConsoleFontEx в программе ?


 
ANB   (2010-06-23 14:07) [2]

1. Win XP
2. В делфи 7 прототипа нету
3. В консольное приложение вломиться не могу. Я его только запускаю. К тому же оно не одно. Т.е. нужно им управлять извне.


 
ANB   (2010-06-23 14:29) [3]

Нашел. Надо перед стартом ключи в реестре подкрутить.


 
0x00FF00   (2010-06-30 00:13) [4]


> Нашел. Надо перед стартом ключи в реестре подкрутить.

Поведай свой секрет, Просветлённый =)
После тебя ещё 100500 человек тему прочтут, а решения так и не найдут) придётся бедолагам перелопачивать реестр самим. Нехорошо.



Страницы: 1 вся ветка

Текущий архив: 2016.07.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1416664103
Drowsy
2014-11-22 16:48
2016.07.24
Почему не очищаются Columns in DBGrid?


2-1414391990
JohnKorsh
2014-10-27 10:39
2016.07.24
Включение в программу номера версии.


11-1264061698
Kitten
2010-01-21 11:14
2016.07.24
Интерпритатор скрипта


15-1441281618
Landon
2015-09-03 15:00
2016.07.24
Крах приложения внутри FinalizeUnits


2-1415425555
Signal
2014-11-08 08:45
2016.07.24
Чтение почты через протокол с TLS порт 995