AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winexec

Ein Thema von Heinz-Erich · begonnen am 1. Okt 2005 · letzter Beitrag vom 2. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Heinz-Erich

Registriert seit: 18. Aug 2005
46 Beiträge
 
Delphi 2005 Architect
 
#1

Winexec

  Alt 1. Okt 2005, 18:29
Hi!

Ich würde gerne sowas machen wie Start/ausführen !

Funktionen
der benutzer soll in edit1 zb cmd eingeben dann auf button2 klicken dann soll das dos fenster kommen

wie soll ich es machen?
winexec('', edit1.text, 1); geht leider nicht

mfg Heinz-erich
mfg Heinz-erich
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Winexec

  Alt 1. Okt 2005, 18:34
Bitte nicht WinExec benutzen sonder nur ShellExecute!
WinExec ist nur der Kompatibilität wegen vorhanden. Du musst die Unit ShellAPI einbinden und die Funktion folgendermaßen aufrufen.

ShellExecute(handle, 'open', PChar('Pfad zur Console'), PChar('Parameter'), PChar('Verzeichniss'), 1);

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Winexec

  Alt 1. Okt 2005, 18:34
Machs einfach mit ShellExecute und übergib da den Wert aus dem Edit (In der Delphi-Hilfe solltest du ein Beispiel finden). Vergiss nicht die ShellAPI in die Uses-Liste aufzunehmen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Winexec

  Alt 1. Okt 2005, 18:35
Als erstes solltest du bitte MSDN-Library durchsuchenShellExecute statt WinExec benutzen und dann findest du zum Thema genügend hier im Forum: Hier im Forum suchenShellExecute!
  Mit Zitat antworten Zitat
Heinz-Erich

Registriert seit: 18. Aug 2005
46 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Winexec

  Alt 1. Okt 2005, 18:49
suppi es geht alles!!!
bis auf was muss ich eingeben wenn der benutzer es in edit1 eingeben soll den befehl und sich dann der befehl öffnet?

ShellExecute(handle, 'open', PChar('cmd'), PChar(''), PChar('C:\'), 1); hab ich
mfg Heinz-erich
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#6

Re: Winexec

  Alt 1. Okt 2005, 18:51
ShellExecute(handle, 'open', PChar(edit1.text), PChar(''), PChar('C:\'), 1);
  Mit Zitat antworten Zitat
Heinz-Erich

Registriert seit: 18. Aug 2005
46 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Winexec

  Alt 1. Okt 2005, 18:52
ups parameter hab ich übersehen sry
danke fuer die hilfe
mfg Heinz-erich
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: Winexec

  Alt 1. Okt 2005, 19:07
Statt 1 als letzten Parameter zu benutzen, gibt es auch noch diverse Konstanten, welche man bevorzugen sollte: SW_HIDE, SW_SHOW usw. nämlich.
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#9

Re: Winexec

  Alt 2. Okt 2005, 04:10
Hallo!

Da ist aber einer sehr inkonsequent:
Zitat von PierreB:
ShellExecute(handle, 'open', PChar(edit1.text), PChar(''), PChar('C:\'), 1);
Entweder schreibe ich alle Strings mit PChar, also
ShellExecute(handle, PChar('open'), PChar(edit1.text), PChar(''), PChar('C:\'), SW_SHOW); oder ich caste nur da, wo es auch notwendig ist. String-Literale (also das mit Hochkomma eingeschlossene) wird von Delphi nämlich automatisch umgewandelt, es reicht also:
ShellExecute(handle, 'open', PChar(edit1.text), '', 'C:\', SW_SHOW); Diese Inkonsequenz findet man allerdings bei fast allen Posts zum Thema "ShellExecute". Bei anderen WinAPI-Aufrufen kommt eine solche Misch-Schreibweise seltsamerweise nicht vor.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Winexec

  Alt 2. Okt 2005, 06:10
Zitat von Brüggendiek:
[...] oder ich caste nur da, wo es auch notwendig ist. String-Literale (also das mit Hochkomma eingeschlossene) wird von Delphi nämlich automatisch umgewandelt, es reicht also:
ShellExecute(handle, 'open', PChar(edit1.text), '', 'C:\', SW_SHOW);
Noch konsequenter wäre jedoch ShellExecute(handle, 'open', PChar(edit1.text), nil, 'C:\', SW_SHOW); ... was dann nämlich auch der Doku entspricht
Daß Nil und NULL in Delphi etwas anderes sind, ist eine andere Sache. Aber korrekter als ein Stringliteral wäre hier die Übergabe von Nil - ich weiß aber nicht, ob der Compiler es intern nicht sowieso schon macht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz