Конференция "WinAPI" » Как установить шрифт консольному приложению [D7, WinXP]
 
  • ANB (23.06.10 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. Надо как то указать его программе для расчета размера окна в пикселях.

    Вариант - считать размер шрифта из свойств, но тоже не знаю как.
  • Игорь Шевченко © (23.06.10 13:27) [1]
    SetCurrentConsoleFontEx в программе ?
  • ANB (23.06.10 14:07) [2]
    1. Win XP
    2. В делфи 7 прототипа нету
    3. В консольное приложение вломиться не могу. Я его только запускаю. К тому же оно не одно. Т.е. нужно им управлять извне.
  • ANB (23.06.10 14:29) [3]
    Нашел. Надо перед стартом ключи в реестре подкрутить.
  • 0x00FF00 (30.06.10 00:13) [4]

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

    Поведай свой секрет, Просветлённый =)
    После тебя ещё 100500 человек тему прочтут, а решения так и не найдут) придётся бедолагам перелопачивать реестр самим. Нехорошо.
 
Конференция "WinAPI" » Как установить шрифт консольному приложению [D7, WinXP]
Есть новые Нет новых   [134431   +11][b:0][p:0.002]