Autor Beitrag
boontec
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Mi 14.12.05 17:24 
servus zusammen
ich habe ein kleines problem.. es kann sein das es eine lösung dafür schon auf dem board gibt aber nach dem ich 20 boards durchsucht hab und google schon von mir genervt ist poste ich mein problem hier
ich hoffe nicht das jemand sagt benutz die boardsuche (sorry bin grad etwas gereizt nicht übel nehmen)

zurück zu meinem problem.. (ich erwähne noch das ich erst vor einer woche mit delphi angefangen habe und ich gebe zu das ich mich gleich an ein etwas größeres projekt rangetraut habe)

also ich habe ein tool erstellt das die dos befehle ausliest wie zb.: Ping oder route
nu das problem ist das der code extrem langsam ist und bei einer langsameren rechnerleistung eine fehlermeldung kommt die wiefolgt aussieht: auf die datei **** kann nicht zugegriffen werden, da sie von einem programm verwendet wird..

(ich habe gerade tierisch probleme beim beschreiben sorry)

ich denke ich brauche eine routine die überprüft ob die datei komplett erstellt wurde oder nicht ichhabe das tool mal angehängt wer will kan es testen aber bei routen bitte nur die, die sich auskennen

hier noch ein teil des codes (ist etwas unstrukturiert sorry
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
  ProgressBar1.Position:=0;
  ShellExecute(0,'open','cmd.exe','/c arp -a > C:\arp.it14','',sw_hide);
  sleep(500);
    ProgressBar1.Position:=50;
  application.HandleMessage;
  sleep(500);
  application.HandleMessage;
  RichEdit1.lines.LoadFromFile('C:\arp.it14');
    progressbar1.Position:=100;
  sleep(500);
  sleep(500) ;
  ShellExecute(0,'open','cmd.exe','/c del C:\*.it14','',sw_hide);

end;


für tipps und tricks bin ich sehr dankbar

MfG boontec / Thomas

€dit ups ich glaube ich hab den thread an ner falschen stelle eröffnet fettes sorry bin grad ein wenig verpeilt)

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconTino: Titel geändert.
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von boontec am Mi 14.12.05 17:29, insgesamt 1-mal bearbeitet
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Mi 14.12.05 17:29 
Mh, das Problem hast du ja selber bechrieben, die Leseoperation kommt möglicherweise, bevor der Schreibvorgang abgeschlossen ist.

Schau dir mal die API-Befehle CreateProcess und WaitForSingleObject an, damit kannst du den Prozess starten und auf seine Beendigung warten, damit müsste es gehen.

_________________
Bravery calls my name in the sound of the wind in the night...
boontec Threadstarter
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Mi 14.12.05 17:34 
ja aber wie gesagt bin ich neuling .. und weiß nicht wie ich dieses einbaue.. ich will euch jetzt nicht um eure zeit berauben
aber das was ich bisher kann ist eben nur shellapi :S

aber thx schonmal für die schnelle antwort :wink:
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Mi 14.12.05 17:43 
Da muss ich aber nun doch leider auf die Forensuche verweisen, zum Thema CreateProcess müsste es hier satt und genug Beiträge geben.

_________________
Bravery calls my name in the sound of the wind in the night...
boontec Threadstarter
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Mi 14.12.05 20:02 
ja ok
aber nu kommts zum dicksten problem .. (lacht nicht :D hab ja erst vor ner woche angefangen :D )wie baue ich es nu ein das es klappt oO
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 14.12.05 20:20 
Lachen tun wir nicht, weil jemand was nicht weiß...
Da gibts aber andere Gründe...
Zum Beispiel: "ja ok" und dann "aber wie baue ich das ein"...

Das "ja ok" ließ vermuten, dass du da was gefunden hast und verstanden hast (zumindest was die Verwendung anbelangt...), aber dann frag ich mal, was du da ausprobiert hast?

Ich meine, wir können versuchen Code zu korrigieren, den du zusammengebastelt hast, aber wenn du keinen postest, in dem du CreateProcess oder so ausprobiert hast...
Ich meine, wenn du damit nicht klarkommst, dann frag, was du nicht verstehst!
(By the way: Eigentlich musst du nur nen Code mit WaitForSingleObject suchen, und dann den Befehl verändern, denn der Rest ist an sich gleich...)

Und wenn du nach WaitForSingleObject suchst, dann findest du da Lösungen, wo wirklich nur der DOS-Befehl ausgetauscht werden muss (und das seeehr weit oben auf der Trefferliste :roll: ). Aber mehr sag ich nicht, da hab ich ja praktisch schon die Lösung genannt, eigentlich solltest du es ja selbst ausprobieren...
boontec Threadstarter
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Mi 14.12.05 20:31 
lol dieses "ja ok" galt für die die forensuche das ich mich damit begnüge oO

aber danke ihr habt mir schon weitergeholfen
boontec Threadstarter
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Do 15.12.05 12:56 
so nochmal ich ..

bei mir hat nu alles geklappt big thx an euch

aber ein kleines problem hab ich noch

und zwar gibt DoS die textdatein mit einem ASCII code aus aber die RichEditBox liest sie mit dem Windows standart Ansi ein..
wie kann ich es ändern ? weil die sonderzeichen wie Ö, Ä, Ü werden als seltsame zeichen angezeigt danke im vorraus

und P.S. es eilt nicht so extrem ist halt nur für die optik nicht so toll

MfG
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Do 15.12.05 13:20 
Zunächst mal: Andere Frage, anderes Topic :)

Versuchs mal mit nem TMemo statt TRichEdit, vllt. geht das besser.

_________________
Bravery calls my name in the sound of the wind in the night...
boontec Threadstarter
Hält's aus hier
Beiträge: 15

Win XP Professional
Delphi 2005 Prof.
BeitragVerfasst: Do 15.12.05 14:51 
naja geht genau so wenig aber ich mach mal n neuen thread auf

thx
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 15.12.05 18:09 
Ich hab jetzt nicht in den neuen Thread gekuckt, aber es gibt da OemToChar und umgekehrt, das wandelt DOS in ANSI bzw. umgekehrt um. Brauchste auch nur nach Beispielen zu suchen...
Und ob nun Memo oder RichEdit ändert da gar nix...