30. november 2005 - 11:45Der er
10 kommentarer og 1 løsning
Shellexecute hva?
Hej, jeg bruger delphi 7 men ka ik få "shellexecute" og "winexec" til at virke. Ka heller ikke finde noget i hjælpefilen. Ved i hvad jeg skal gøre. Jeg vil osse gerne ha et eksempel på brugen. Hilsen hallandsen
Hejsa Prøv med denne, som starter åbner filen c:test.txt i notebook.exe:
procedure TFrmVandLet.cmdFejllogClick(Sender: TObject); var cmdbuffer: array[0..80] of Char; begin strpcopy(cmdbuffer, 'notepad.exe c:text.txt'); WinExec(cmdbuffer, SW_Show);
with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile); lpParameters := PChar(ParamString); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.HandleMessage; GetExitCodeProcess(SEInfo.hProcess, ExitCode); until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
// her kan du evt indsætte kode som skal eksekveres efter du har afsluttet // det kaldte program og er vendt tilbage til dit delphiprogram..
end else begin Messagedlg('Kan ikke finde '+Program,mterror,[mbOk],0); end; end;
-----
Nu kan du så et sted i dit program skrive sådan her hvis du vil kalde notepad og åbne text.txt:
KaldProgram('notepad.exe', 'text.txt');
eller sådan hvis du bar vil starte lommeregneren: KaldProgram('calc.exe', '');
Det handler vistnok osse om at shellexecute ikke kan dirigeres til bestemt bibl. Derfor skal man sikre sig at bibbet er stillet til der hvor det ønskede progr. ligger..
Har selv fået anbefalet denne rutine engang, som stadig er funktionel:
procedure ChaDir(S: string); begin S:='C:\Programmer\Borland\Database Desktop\PrivDir'; ChDir('C:\Programmer\Borland\Database Desktop\PrivDir'); if IOResult <> 0 then Messagedlg('dir eksisterer ikke',mtWarning, [mbOk],0); end;
procedure buttonclick(sender:Tobject); begin ChaDir('C:\Programmer\Borland\Database Desktop\PrivDir');
undskyld småfejlene - det var ikke kopieret direkte fra min egen kode - noget af det var fra fri hukommelse og selvfølgelig er "program" et reserveret ord :)
takker for points..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.