Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detener aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=20707)

trex2000 22-04-2005 21:06:49

Detener aplicacion
 
Saludos:
Tengo una aplicación que cuando esta empezando a cargar ejecuta la funcion Winexecandwait32 y funciona bien en windows 98 y windows 2000 pero en windows Xp no funciona ¿alguien me podria decir el porque de esta situacion y como corregirlo?

De antemano muchas gracias :confused:

roman 22-04-2005 22:59:33

¿Es esta una función de la API de Windows? No he encontrado ninguna referencia a ella en el SDK de Windows.

// Saludos

marcoszorrilla 22-04-2005 23:02:35

Yo he estado buscando y se trata de una función que utiliza algunas del api de Windows, por ejemplo en Torrys hay una, y he encontrad otras en otros sitios, unas son para Delphi2 y Win95....

Por lo que sería necesario ver el código que está utilizando para poderse hacer una idea de que es lo que falla.

Un Saludo.

marcoszorrilla 22-04-2005 23:08:17

Aquí una muestra:
Código Delphi [-]
      This unit is based upon the well-known and largely used WinExecAndWait function The former
    WinexecAndWait function doesn't compile under Delphi 2.0 because the GetModuleUsage function is no longer
   supported under Win95.
   
     I have simply updated the previous code so that it works with Delphi 2.0 under Windows 95.
   With this function you can call Windows-based applications as well as Dos-based commands.
   That is 'c:\myapp\app32.exe' as well as command.com /c del *.bak'.
   
     This new WinexecAndWait32 is intended for Delphi 2.0 Win95 only, it works for me but you use it at
  your own risk:
   
      http://www.delphifaq.com/images/e1.gif
    http://www.delphifaq.com/images/e2.gif
    unit WinExc32;
   // Author    : Francis Parlant.
   // Update    : Bill Rinko-Gay
   // Parameters:
   //    Path: a null terminated string with the command line
   //    Visibility: Windows SHOW constant such as WS_RESTORE
   //    Timeout: DWORD time in miliseconds or INFINITE to wait forever 
   //
   // The previous version went into a loop, constantly checking to see
   // if the exec'ed program had terminated.  This version uses the Win95
   // API call to WaitForSingleObject to block processing until the
   // exec'ed program has terminated.  The return value will be either
   // an error code from the CreateProcess function, or the result
   // of the wait.
   
   interface
   
   uses Windows;
   
   function WinExecAndWait32(Path: PChar; Visibility: Word;
     Timeout : DWORD): integer;
   
   implementation
   
   function WinExecAndWait32(Path: PChar; Visibility: Word;
     Timeout : DWORD): integer;
   var
     WaitResult : integer;
     StartupInfo: TStartupInfo;
     ProcessInfo: TProcessInformation;
     iResult : integer;
   begin
     FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
     with StartupInfo do
     begin
       cb := SizeOf(TStartupInfo);
       dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
       { you could pass sw_show or sw_hide as parameter: }
       wShowWindow := visibility;
     end;
     if CreateProcess(nil,path,nil, nil, False,
           NORMAL_PRIORITY_CLASS, nil, nil,
           StartupInfo, ProcessInfo) then
     begin
       WaitResult := WaitForSingleObject(ProcessInfo.hProcess, timeout);
       { timeout is in miliseconds or INFINITE if
         you want to wait forever }
       result := WaitResult;
     end
     else
     { error occurs during CreateProcess see help for details }
       result:=GetLastError;
   end;
   
   end.

Un Saludo.

roman 22-04-2005 23:08:37

Sí, me imaginaba algo así por las búsquedas que había hecho pero no estaba seguro.

Al parecer WinExecAndWait32 es una función que publicó Peter Below
en los foros de Borland hace mucho tiempo y que más tarde actualizó
con WinExecAndWait32V2 para corregir problemas que presentaba.

Quizá esta otra le sirva.

// Saludos


La franja horaria es GMT +2. Ahora son las 22:23:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi