Avatar billede troublemaker Nybegynder
18. august 2005 - 23:06 Der er 11 kommentarer og
1 løsning

Hvordan bruges WriteConsoleOutput

Hej

Er denne commando (WriteConsoleOutput) til at skrive til konsollen (cmd.exe) og hvis ja, hvordan bruges den?

Hvis ikke den er det så hvordan kan jeg få mit konsol program til at udskrive en tekst som mit .bat/.vbs kan læse?

Jeg kan os godt bruge et svar til hvordan man får et konsol program til at skrive til commandoen "set" programmet som man kan bruge fx sådan her "set var=noget" i cmd.
Avatar billede arne_v Ekspert
18. august 2005 - 23:11 #1
Den funktion er en del af Win32 API.

Du kan læse docs her http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/writeconsoleoutput.asp

Den skriver simpelthen til skærmen.

Jeg er ikke sikker på at jeg forstår hvad d vil.

Et ofte anvendt trick er at lade et program skrive en BAR fil og så eksekvere den
bagefter (og evt. slette den bagefter).
Avatar billede troublemaker Nybegynder
18. august 2005 - 23:14 #2
Tror du, du kunne give et eksemple på at bruge WriteConsoleOutput ?
Avatar billede arne_v Ekspert
18. august 2005 - 23:21 #3
ja men det vil tage lidt tid

kan du ikke bruge følgende opgooglede eksempel:

http://www.delphipraxis.net/topic27848_writeconsoleoutput.html

?
Avatar billede troublemaker Nybegynder
18. august 2005 - 23:22 #4
Det jeg vil er at få UserName på den bruger man er logget ind med og så bruge den i en .vbs fil. Mit problem er bare at med den kode jeg har prøvet der vil mit .vbs ikke få output fra mit program som er en string men den skriver bare 0.

Koden:
program GetUserName;

{$APPTYPE CONSOLE}

uses
  Windows;

Function GetCurrentUserName : String;
var
  Size : Cardinal;
begin
  Size := MAX_PATH;
  SetLength(Result, Size);
  Windows.GetUserName(PChar(Result),Size);
  SetLength(Result, Pred(Pos(#0,Result)));
end;

begin
  WriteLn(GetCurrentUserName);
end.
Avatar billede arne_v Ekspert
18. august 2005 - 23:31 #5
det kan jeg ikke se at WriteConsoleOutput kan hjælpe dig med

men hvorfor henter du ikke bare brugernavnet i VBS koden ?
Avatar billede troublemaker Nybegynder
18. august 2005 - 23:34 #6
fordi det kan jeg ikke på windows 98 :(
Avatar billede arne_v Ekspert
18. august 2005 - 23:35 #7
WScript.NetWork findes ikke på Win98 ?
Avatar billede arne_v Ekspert
18. august 2005 - 23:37 #8
2 ideer:

1) skriv en BAT/VBS fil med hardcoded username fra Delphi inden du kører den

2) angiv username som parameter når du starter BAT/VBS fil
Avatar billede troublemaker Nybegynder
18. august 2005 - 23:38 #9
jo hvis man installere det men det vil stadig ikke virke da der ikke er sat en variable i win98 som der er i 2k/xp osv (det kan man se når man skriver "set" i cmd)
Avatar billede arne_v Ekspert
18. august 2005 - 23:45 #10
På min XP lader WScript.NetWork sig altså ikke påvirke af den environment variabel
Avatar billede troublemaker Nybegynder
19. august 2005 - 00:05 #11
nej med det er også xp.. men det virker ikke i 98 for jeg har siddet og bøvlet med at få det til at virke hele dagen idag ca ;)

har dov fået det til at virke nu ved at lave en bat fil og så køre den hvor der står "set user=bruger".

Hvis du laver et svar må du godt få de points :)
Avatar billede arne_v Ekspert
19. august 2005 - 00:12 #12
ok
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester