Как запустить чужое приложение в фоновом режиме???
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Как запустить чужое приложение в фоновом режиме??? т.е. чтобы его небыло видно.
Спасибо....!!!
Спасибо....!!!
а что подразумевается под фоновым режимом? В свернутом окне? или в виде иконки в правом нижнем углу? 

Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
послать ему Sw_hide ?
С уважением, Lost Angel...
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
procedure DeComp(const fn:string);
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrLCopy(zAppName,PChar(fn),Length(fn));
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:=Sizeof(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=0;
If CreateProcess(nil,zAppName,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo) then while WaitforSingleObject(ProcessInfo.hProcess,200)=WAIT_TIMEOUT do Application.ProcessMessages
end;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrLCopy(zAppName,PChar(fn),Length(fn));
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:=Sizeof(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=0;
If CreateProcess(nil,zAppName,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo) then while WaitforSingleObject(ProcessInfo.hProcess,200)=WAIT_TIMEOUT do Application.ProcessMessages
end;
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Если ты имеешь ввиду Паскаль, и "чтобы программа оставалась в фоновом режиме" у тебя означает в оперативной памяти, тогда для этого есть специальная функция keep. Вот пример использования функции.
Код: Выделить всё
Uses Crt, Dos;
Var KbdIntVec : Procedure;
{$F+}
Procedure Keyclick;
Interrupt;
Begin
If Port[$60] < $80 Then
Begin
Sound(5000);
Delay(1);
NoSound;
End;
InLine($9C);
KbdIntVec;
End;
{$F-}
Begin
GetIntVec($9, KbdIntVec);
SetIntVec($9, Addr(KeyClick));
Keep(0);
End.
[code]
Взято из Help'a паскаля.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Спасибо конечно. Но не работает. Я понимаю так что мне надо передать данной процедуре адрес и имя вызываемой программы.... не работает.
У меня одна программа написана на VC++ а другая на Delphi. Так вот надо из Дельфийской программы вызвать сишную..... но чтобы ее небыло вообще видно.
У меня одна программа написана на VC++ а другая на Delphi. Так вот надо из Дельфийской программы вызвать сишную..... но чтобы ее небыло вообще видно.
Blood_Magic писал(а):procedure DeComp(const fn:string);
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrLCopy(zAppName,PChar(fn),Length(fn));
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:=Sizeof(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=0;
If CreateProcess(nil,zAppName,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo) then while WaitforSingleObject(ProcessInfo.hProcess,200)=WAIT_TIMEOUT do Application.ProcessMessages
end;
У меня одна программа написана на VC++ а другая на Delphi. Так вот надо из Дельфийской программы вызвать сишную..... но чтобы ее небыло вообще видно.
т.е. только видна в Диспечере задач.
Sw_hide не работает. А вот минимизация - работает.... но меня это не устраивает....
-----------------------------------
Очень прошу ....... ХЕЛП.......
т.е. только видна в Диспечере задач.
Sw_hide не работает. А вот минимизация - работает.... но меня это не устраивает....
-----------------------------------
Очень прошу ....... ХЕЛП.......
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
extreme писал(а):У меня одна программа написана на VC++ а другая на Delphi. Так вот надо из Дельфийской программы вызвать сишную..... но чтобы ее небыло вообще видно.
т.е. только видна в Диспечере задач.
Sw_hide не работает. А вот минимизация - работает.... но меня это не устраивает....
-----------------------------------
Очень прошу ....... ХЕЛП.......
где ты видишь Sw_hide??? у меня работает то, что я тебе написал, там STARTF_USESHOWWINDOW стоит, единственное поэксперементируй с параметром CREATE_NEW_CONSOLE. передать надо имя файла (например 'c:\maf\maf.exe')
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
А если сделать из то программы, которую надо вызывать DLL, а не EXE-шник? Тогда подлинковываешь в твоей дельфийной программе Си-шную DLL и вызываешь проимпортируемую функцию.extreme писал(а):У меня одна программа написана на VC++ а другая на Delphi. Так вот надо из Дельфийской программы вызвать сишную..... но чтобы ее небыло вообще видно.