maison
Top.Mail.Ru Yandeks.Metrika
Forum: "WinAPI";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

vers le bas

WinExec ou ShellExecute Trouver des branches similaires


PONTIY   (2001-11-01 10:06) [0]

Je voulais imprimer un fichier texte (codage dos) sans aucun effort supplémentaire avec une simple commande dans le shell: copier c: \ aa.txt \\ printsrv \ epson
J'ai essayé de faire cela avec la fonction ShellExecute, comme ceci:
ShellExecute (Handle, "print", "aa.txt", "D: \\ printsrv \ epson", nil, SW_HIDE);
Rien ne fonctionnait, il ouvrit le bloc-notes et en sortit l'impression que l'encodage du texte en souffrait. Et malgré l'indication explicite du paramètre (chemin d'accès du périphérique), il imprimait toujours par défaut sur l'imprimante installée dans le système. Que peut-on faire de plus sans se départir de ces fonctions?



Anatoly Podgoretsky   (2001-11-01 15:41) [1]

Si vous voulez utiliser le shell, vous devez appeler le shell et lui transmettre la commande copy en tant qu'argument.



PONTIY   (2001-11-02 06:19) [2]

Et comment faire cela, puis-je montrer un exemple dans le code?



Anatoly Podgoretsky   (2001-11-02 09:44) [3]

Copie du processeur c: \ aa.txt \\ printsrv \ epson
Lancer avec ShellExecute
Vous reconnaissez le nom du processeur via les variables système



PONTIY   (2001-11-02 18:56) [4]

2 Anatoly Podgoretsky

Tu me retiens complètement pour un idiot? :) montre comment utiliser cette commande de console dans ShellExecute. Comme ça ...
ShellExecute (Handle, "open", "cmd.exe", "copie c: \ aa.txt \\ printsrv \ epson
, nil, SW_HIDE);

Naturellement, ce code est incorrect, mais comment l'écrire correctement?



Anatoly Podgoretsky   (2001-11-02 23:18) [5]

Eh bien, vous, toutes les informations vous ont été données, tout le monde devrait écrire les programmes lui-même.
Et qu'est-ce qui ne fonctionne pas pour vous? Est-ce que ça marche en ligne de commande?
Eh bien, je n'ai ni "cmd.exe" pour vérifier la liste de ses clés (cmd /?), Ni NT pour tester, ni \\ printsrv \ epson, mais pour Win9x le code est quelque chose comme ceci, pour une autre commande que je peux vérifier:

ShellExecute (Handle, "open", "C: \ Command.com", "/ c dir C: \ / s", "C: \", SW_SHOWNORMAL);

Votre code pèche avec les erreurs suivantes:
Le nom du shell doit être obtenu à partir de variables d’environnement,
Le processeur devrait commencer avec les clés dont vous avez besoin, j'ai appliqué / c ici, Le répertoire par défaut n'est pas spécifié.

Tout cela n’a aucune importance, mais c’est un gâchis.



PONTIY   (2001-11-03 11:38) [6]

Oui, il était vraiment nécessaire de commencer à régler le paramètre avec le commutateur / C, tout fonctionne, merci. En fait, il est peu probable que ce projet fonctionne avec les systèmes d'exploitation Win9x, mais existe-t-il encore une variable indiquant un processeur de commandes?



Anatoly Podgoretsky   (2001-11-03 15:10) [7]

Exécutez la commande SET dans la fenêtre DOS, j'ai COMSPEC
Le fait que cela ne fonctionne pas sur d'autres systèmes d'exploitation ne signifie pas que le nom du processeur dans le système d'exploitation concerné sera cmd.exe ou que le processeur sera disponible sans spécifier le chemin d'accès.
Et la clé / C est facultative, elle affecte uniquement le comportement du processeur, ainsi que d'autres clés.



Pages: 1 branche entière

Forum: "WinAPI";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

à l'étage









Mémoire: 0.57 MB
Heure: 0.025 c
1-22091
Mikhalyov Dmitry
2001-12-19 16:02
2002.01.08
question de Pascal


6-22313
SB
2001-10-01 15:05
2002.01.08
Aidez le décrochage du réseau! S'il vous plaît faire


14-22360
ENG
2001-11-07 19:16
2002.01.08
Internet Explorer


3-21934
Alexsyy
2001-12-04 08:52
2002.01.08
Aidez-moi s'il vous plaît


14-22415
Wetnose
2001-11-12 06:42
2002.01.08
Thèmes pour WinXP





afrikaans albanais Arabic arménien azerbaïdjanais basque Biélorusse Bulgare catalan Chinois simplifié) Chinois (traditionnel) croate Tchèque Danois Néerlandais Anglais estonien Filipino Finlandais Français
galicien géorgien Allemand Grecque Créole haïtien hébreu Hindi Hongrois Islandais Indonesian irlandais Italien Japonais Coréen letton lituanien macédonien Malay maltais Norvégien
persan Polonais Portugais Roumain Russe serbe Slovaque Slovène Espagnol Swahili Suédois Thai turc ukrainien Urdu vietnamien gallois yiddish bengali bosniaque
Cebuano espéranto gujarati Hause hmong Igbo Javanais Kannada Khmer lao latin maori Marathi mongol népalais punjabi somali tamil telugu yoruba
zoulou
Английский Français Allemand Italien Португальский Русский Espagnol