Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   DELPHI (http://forum.oszone.net/showthread.php?t=29643)

Surround 15-06-2004 14:36 205120

Подскажите, где можно найти спарвочник по API-функциям для делфи. :)
И еще. Говорят, что если в оконном интерфейсе DELPHI вместо VCL использовать KOL, то откомпилированное приложение будет весить вместо ~400kb 20-30kb. А где можно это дело скачать? и вообще, так ли это? :)

hasherfrog 15-06-2004 15:30 205121

Не знаю, как сейчас, а раньше вместе с делфи всегда ставился win32 API в виде hlp-файлов. Чтобы использовать их под паскалем, особых мысленных усилий, имхо, не требуется. Просто надо будет привыкнуть к некоторым странным записям типа LPCSTR

Prisoner 17-06-2004 00:45 205122

hasherfrog прав. Есть такой файлик как win32s.hlp. Кроме того, существуют справочники сторонних "производителей". А на счет KOL можно почитать тут

Surround 19-06-2004 19:57 205123

Хочу передать строковой параметр для выполнения WinExec, но тот пишет несоответсвие типов String и PAnsiChar. Мона ли строку как-нить переконвертировать в этот тип, или что-нибудь еще?

Surround 19-06-2004 22:20 205124

еще несколько вопросов :)
[1] можно ли под XP сделать, чтобы прога была не видна в Диспетчере задач?
[2] и возможно ли оставить консольное приложение в памяти после его выплнения?
[3] как добавить приложение в автозапуск в качестве сервиса?

Thanks!

[s]Исправлено: Surround, 19:52 20-06-2004[/s]

Villy 20-06-2004 23:52 205125

Surround
PAnsiChar это строка оканчивающаяся "/0" соответственно перекодировка сводится к банальному
PChar:=String+'#0';

hasherfrog 21-06-2004 10:34 205126

Surround
1. Теоритически да. Если поломать "Диспетчер задач". Подобные темы неоднократно поднимались на форуме. Поищите их.
2. Откройте "консоль" cmd.exe. Запустите из неё Notepad.exe. Закройте cmd.exe. Как видите, блокнот жив. ЕМНИП, в винде, в отличие от линукса, закрытие родительских приложений не убивает процессы, порождённые из управляющего терминала через SUGHUP.
3. Как вариант "без программирования" - используйте команду консоли sc. Позволяет больше чем достаточно. WinExec + sc -> :)
4. Casting a (long) String to a PChar

Surround 21-06-2004 18:05 205127

hasherfrog
я что-то не понял со вторым вопросом. Notepad - это оконное приложение, ожидающее ввода символов с клавиатуры, а если консольная программка все сделала, но ей нужно еще следить за процессом, как эй-то в памяти остаться?
Может каким-нибудь циклом занять, или лучше таймер поставить?

может припомнишь, как хотяб ы примерно тема называлась, че-та не нахожу по ключевым словам.... :(

[s]Исправлено: Surround, 18:17 21-06-2004[/s]

hasherfrog 22-06-2004 09:42 205128

Цитата:

Может каким-нибудь циклом занять
Циклом, но с использованием usleep(1000), например. А иначе все ресурсы виндов сожрешь ('этим как раз грешат старые проги под дос). Что касается порождения процессов в винде, то я сейчас как раз с этим работаю. Тут Вам не там :) В линуксе fork - и всех делов. А под виндами будет CreateProcess, но дальше... Дальше всё зависит от того, что Вы конкретно хотите.
По поводу пряток - здесь и точно где-то ещё.


Время: 11:28.

Время: 11:28.
© OSzone.net 2001-