Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ejecutar el defragmentador desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=53178)

RoyTan 13-02-2008 02:29:47

Ejecutar el defragmentador desde Delphi
 
Saludos.

Necesito ejecutar el defragmentador de windows desde delphi.

Estoy utilizando este código pero nada de nada...

WinExec(PChar('C:\Windows\System32\Dfrg.msc'),SW_SHOWNORMAL);

Los programas con extension EXE los ejecuta todos, pero por el contrario si se utiliza programas con extension MSC, pues no.

Alguien me podría aclarar porqué.

Gracias.

cHackAll 13-02-2008 02:49:07

Código Delphi [-]
WinExec('mmc c:\windows\system32\dfrg.msc', SW_SHOWNORMAL);

ixMike 13-02-2008 14:19:10

Para eso tendrías que asegurarte que el directorio de Windows es C:\Windows\. Por ejemplo, en Win2000 se llama WINNT y yo he tenido el sistema instalado en la unidad H:

Hay una función, GetSystemDir o algo así, pero creo que lo mejor es esto:

Código Delphi [-]
ShellExecute(Handle, 'open', 'dfrg.msc', nil, nil, SW_MAXIMIZE);


Salu2 :)

cHackAll 13-02-2008 19:32:47

Cita:

Empezado por ixMike (Mensaje 265502)
Para eso tendrías que asegurarte que el directorio de Windows es C:\Windows\. Por ejemplo, en Win2000 se llama WINNT y yo he tenido el sistema instalado en la unidad H:

Te referes a mi codigo ixMike¿? pues deberia funcionar en cualquier instalación porque mmc.exe es un utilitario hubicado en %SystemRoot%\system32, y dicha ruta está en la variable de entorno PATH que es utilizada por WinExec.

En todo caso ambas alternativas funcionan.

Saludos

ixMike 13-02-2008 20:59:28

Es en general, pero... después has escrito "c:\windows\system32\dfrg.msc", y ahí sí aparece "C:\Windows\". En todo caso (para evitar errores y añadir ShellApi), sería:

Código Delphi [-]
WinExec('mmc %systemroot%\system32\dfrg.msc', SW_SHOWNORMAL);

Ale, ya :D;)

RoyTan 14-02-2008 00:30:24

Perfecto.

Gracias cHackAll.

RoyTan 14-02-2008 00:32:10

Perdón IxMike, Gracias a tí tambien.

Funciona a la perfección.


La franja horaria es GMT +2. Ahora son las 18:12:13.

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