gjorde som så att jag använde DOS-kommandot > för att dumpa till en fil som jag sedan läste in och tog bort.
dir > kallestring.txt
läs in kallestring.txt och ta bort den sedan, givetvis utan att användaren märker att DOS är inblandat eftersom man sätter ShowMode till 0 i ShellExecuteEx
men iaf, det är ju för Windows det där, för DOS vet jag inte vad som gäller...
å jag kör inte C ens, jag kör Delphi jag :) ...men du kan ju få se min kod ändå, det är ju i stort sett likadant.
Här är själv rutinen jag har för att köra DOS-kommando:
function TFormMain.RunProgram(ExecuteFile, ParamString, StartInString: String; ShowMode: Integer): boolean;
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
begin
//ExecuteFile:='Calc.exe';
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
{
ParamString can contain the
application parameters.
}
lpParameters := PChar(ParamString);
{
StartInString specifies the
name of the working directory.
If ommited, the current directory is used.
}
lpDirectory := PChar(StartInString);
// nShow := SW_SHOWNORMAL;
nShow := ShowMode;
end;
if ShellExecuteEx(@SEInfo) then begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
// ShowMessage('Calculator terminated');
result := true;
end
else
// ShowMessage('Error starting Calc!');
result := false;
end;
ja jag hittade den där koden på delphipages, dom skulle köra miniräknaren, calc.exe som du ser, jag har kommenterat bort alla rutor som hoppar upp (showmessage
Här är en rad där jag anropar den där functionen:
RunProgram('cmd.exe','/c dir "'+s+'"*.mp3 /s /ogn >"'+s+'index.tmp"','', 0)
det kör en DOS-prompt helt dold och skapar en mp3-lista i katalogen som står i strängen s.