Salut les developpeurs
Je voudrais executer une commande comme c'etait sous dos mais avec delphi. Y'a t'il une fonction special qui peut faire ça?
Merci d'avance
Salut les developpeurs
Je voudrais executer une commande comme c'etait sous dos mais avec delphi. Y'a t'il une fonction special qui peut faire ça?
Merci d'avance
Salut
J'ai mal posé ma problème
Le problème c'est d'executé une commande dos et non pas d'ouvrir le dos.
D'autres part ,la commande que je voudrais l'executé et :
C'est à dire je veut envoyer le fichier text print1.txt vers mon imprimente connecté au port parallèle LPt1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2'Copy C:\print1.txt Lpt1'
J'espère que j'ai bien pricisé mon problème et merci d'avance!
bonjour,
Regarde dans l'aide des API windows
createprocess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 function ExecuteCommande(Commande: String;Attente : Boolean = True): Boolean; Var lpsaProcess, lpsaThread : PSecurityAttributes; StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; AddrCmd : Array [0..255] Of Char; ExitCode : DWord; begin FillChar(StartupInfo, SizeOf(TStartupInfo), 0); with StartupInfo do begin cb := SizeOf(TStartupInfo); dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; wShowWindow := SW_HIDE; end; New(lpsaProcess); New(lpsaThread); lpsaProcess^.nLength := SizeOf(lpsaProcess^); lpsaProcess^.lpSecurityDescriptor := Nil; lpsaProcess^.bInheritHandle := True; lpsaThread^.nLength := SizeOf(lpsaThread^); lpsaThread^.lpSecurityDescriptor := Nil; lpsaThread^.bInheritHandle := True; StrPCopy(AddrCmd, Commande); Result := CreateProcess(nil, AddrCmd, lpsaProcess, lpsaThread, False, STARTF_FORCEONFEEDBACK, nil, nil, StartupInfo, ProcessInfo); if not Result then Result:=(GetLastError>10000); Dispose(lpsaProcess); Dispose(lpsaThread); if Result then begin while Attente do begin // Solution d'attente 1 Sleep(500); GetExitCodeProcess(ProcessInfo.hProcess, ExitCode); if ExitCode<>STILL_ACTIVE then break; // Solution d'attente 2 // WaitForSingleObject(ProcessInfo.hProcess, INFINITE); end; CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end; end;
Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
Aymond d'Alost
Bonjour,
Et pourquoi pas mettre ta commande dans un fichier batch et l'exécuter avec ShellExecute.
Mais, c'est peut-être trop simple ?
j'ajouterais ceci, pour lancer une commande Dos, tu dois lancer
cmd.exe /c "commande dos"
donc avec le code de Yurck voici comment appeler ta commande dos:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function BuildDosCommandStr(Command:string):string; begin result:='cmd /c "'+Command+'"'; end; procedure TForm1.Button8Click(Sender: TObject); begin ExecuteCommande(BuildDosCommandStr('Copy C:\print1.txt Lpt1'),TRUE); end;
Comment dupliquer un disque...ça vous intéresse?
Tutoriel et code source delphi ici
Merci à tous
Je vais les tester
A bientot
Merci
Salut les developpeurs
Presque ç que j'ai voulu ;
Elle marche bien ,
Merci à tous et merci pour les gens qui m'ont aider
Salut,
J'ai beaucoup lu des articles sur la création de ces types de fichiers mais je ne comprend toujours pas. Alors, aidez-moi donc à créer ces types de fichiers avec des instructions un peu plus complexes telles que:
1- Utiliser la commande DISKPART
2- Formater un lecteur amovible (flash)
3- En gros, utiliser les commandes les plus usuelles de l'invite de commande de windows
Merci, je compte sur vous.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager