PDA

View Full Version : Vise tekst


Waffle King
11. januar 2008, 00:49
er det noen coder jeg kan skrive for å få vist en tekst i cmd?

flexd
11. januar 2008, 01:04
Det spørs hvilket språk du programmerer i, *alle* programmerings språk kan vel egentlig vise tekst i cmd.

Jeg anbefaller C++, http://cplusplus.com/doc/tutorial/introduction.html

fulloggal
11. januar 2008, 01:05
Hvis det er i .bat filer er det bare til å skrive echo.



@echo off
echo Jeg vil ha mat
pause


Lagre den som *.bat og se:D

Waffle King
11. januar 2008, 13:45
takk. men går det an å få noen linjer med tekst til å dukke opp med 1 sekund melommrom

Synderen
11. januar 2008, 14:18
Bruk denne og les deg frem

@echo off
cd %userprofile%
cd desktop
:: Erstellung des Ordners.
md Matrix
cd Matrix
:: "The Matrix has you"
echo Set wshshell = CreateObject("WScript.Shell") > vbsmatrix.vbs
echo wshshell.run ("cmd.exe") >> vbsmatrix.vbs
echo wshshell.AppActivate "cmd.exe" >> vbsmatrix.vbs
echo wscript.sleep 1000 >> vbsmatrix.vbs
echo wshshell.Sendkeys "color 0a {Enter}" >> vbsmatrix.vbs
echo wshshell.Sendkeys "cd\ {Enter}" >> vbsmatrix.vbs
echo wshshell.Sendkeys "cls {Enter}" >> vbsmatrix.vbs
echo wscript.sleep 400 >> vbsmatrix.vbs
echo wshshell.Sendkeys "H" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "e" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "l" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "l" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "o" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys " " >> vbsmatrix.vbs
echo wscript.sleep 400 >> vbsmatrix.vbs
echo wshshell.Sendkeys "%username%..." >> vbsmatrix.vbs
echo wscript.sleep 2000 >> vbsmatrix.vbs
echo wshshell.Sendkeys "{Enter}" >> vbsmatrix.vbs
echo wshshell.Sendkeys "cls {Enter}" >> vbsmatrix.vbs
echo wscript.sleep 1000 >> vbsmatrix.vbs
echo wshshell.Sendkeys "T" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "h" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "e" >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys " " >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys "M" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "a" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "t" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "r" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "i" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "x" >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys " " >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys "h" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "a" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "s" >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys " " >> vbsmatrix.vbs
echo wscript.sleep 300 >> vbsmatrix.vbs
echo wshshell.Sendkeys "y" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "o" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "u" >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "." >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "." >> vbsmatrix.vbs
echo wscript.sleep 200 >> vbsmatrix.vbs
echo wshshell.Sendkeys "." >> vbsmatrix.vbs
:: Matrix Zahlen.
echo @echo off > matrix.bat
echo color 0A >> matrix.bat
echo :ANZEIGE >> matrix.bat
echo echo %%random%% %%random%% %%random%% %%random%% %%random%% %%random%% %%random%% %%random%% >> matrix.bat
echo ping ^-n 01 127.0.0.1 ^> nul >> matrix.bat
echo ping ^-n 01 127.0.0.1 ^> nul >> matrix.bat
echo goto ANZEIGE >> matrix.bat
echo @echo off > piep.bat
:: Erstellung des Piepers.
echo :piep >> piep.bat
echo echo  >> piep.bat
echo goto piep >> piep.bat
:: Starten des Piepers.
echo set osh = wscript.CreateObject("wscript.Shell") >> piepcontrol.vbs
echo osh.run "piep.bat",0,TRUE >> piepcontrol.vbs
:: Öffnen des CD-Rom Laufwerks.
echo Do > wscriptshell.vbs
echo Set oWMP = CreateObject("WMPlayer.OCX.7" ) >> wscriptshell.vbs
echo Set colCDROMs = oWMP.cdromCollection >> wscriptshell.vbs
echo if colCDROMs.Count >= 1 then >> wscriptshell.vbs
echo For i = 0 to colCDROMs.Count - 1 >> wscriptshell.vbs
echo colCDROMs.Item(i).Eject >> wscriptshell.vbs
echo Next >> wscriptshell.vbs
echo End If >> wscriptshell.vbs
echo loop >> wscriptshell.vbs
echo do > screensaver.vbs
echo set osh = wscript.CreateObject("wscript.Shell") >> screensaver.vbs
echo osh.run "scrnsave.scr",1,TRUE >> screensaver.vbs
echo loop >> screensaver.vbs
:: Starten der Programme.
start vbsmatrix.vbs
ping -n 13 127.0.0.1 > nul
start matrix.bat
ping -n 3 127.0.0.1 > nul
start piepcontrol.vbs
ping -n 3 127.0.0.1 > nul
start wscriptshell.vbs
ping -n 3 127.0.0.1 > nul
start screensaver.vbs
ping -n 10 127.0.0.1 > nul
:: Beenden des Scherzprogramms.
tskill wscript*
tskill scrnsave*
tskill cmd*

desperat
11. januar 2008, 14:18
takk. men går det an å få noen linjer med tekst til å dukke opp med 1 sekund melommrom

@echo off
echo.
echo.
echo random tekst
@ping 127.0.0.1 -n 2 -w 500 > nul
@ping 127.0.0.1 -n %1% -w 500 > nul
cls

echo.
echo.
echo random tekst
er ikke 100% sikker men, det er omtrent slik jeg lagde den blinkende teksten i slutten av batch scriptet mitt (http://www.freakforum.nu/forum/showthread.php?t=94560) for en god stund siden

Dyret
11. januar 2008, 15:32
Synderen: Bra du bare limer inn 19kg udokumentert kode, da lærer han nok.

Så godt som alle programmeringsspråk har muligheten til å skrive ut tekst til skjermen, men skal du bare skrive ut tekst - og det i Windows - så gjør du det enklest med et batch-script.


@echo off
echo tekst 1
ping 127.0.0.1 > nul
echo tekst 2
ping 127.0.0.1 > nul
echo tekst 3
etc...


ping-kommandoen brukes her for å pause, og kan med variasjoner av -n <antall pakker> og -w <timeout i millisekunder> stilles inn etter ønske.

Dodecha
11. januar 2008, 15:52
Og igjen vil jeg vise at det kan gjøres mye mer elegant og lett i C++, istedet for å bruke alle disse kvasiløsningene med ping og eksterne sleep scripts:


#include <unistd.h>
#include <stdio.h>
#include <iostream>


using namespace std;
int main(int argc, char* argv[]) {
cout << "Det vil nå gå 5 sekunder før neste linje med tekst vises\n";

sleep(5);
cout << "Tadaa!";
cin.get();
return 0;
}


Forklaring av koden:
Først i C++ må man si ifra hvilke header filer man trenger, dette har med hvilke funksjoner vi skal bruke.
Vi henter stdio.h og iostream, fordi vi vil hente og sende informasjon til skjermen (også kallt stdout) og tastaturet. Så må vi ha unistd.h for å hente sleep(); funksjonen vi trenger.

Så starter vi med hovedfunksjonen i programmet, main.
Du legger kanskje merke til at den er deklarert som en integer (int main....), du kunne liksågodt deklarert den som void/char etc, i vårt tilfelle er det ikke så viktig: Hva du deklarerer hovedfunksjonen har bl.a. med hvilken type return du vil gi. Når et program/funksjon avslutter, gir man gjerne fra seg en return kode, for å fortelle om programmet avsluttet på riktig måte (return 0; i vårt tilfelle med integer funksjon).

Etter main er det et parantes, og inn i de finner du "int argc, char* argv[]", de trenger man strengt tatt ikke heller, men de hjelper oss å hente kommandolinje argumenter:
argc inneholder et tall på hvor mange argumenter brukeren har gitt programmet, og argv[] er et array som inneholder selve argumentene. f.eks, hadde jeg byttet ut sleep(5), med sleep(argv[1]); hadde du kunne selv spesifisere hvor lenge sleep skal vare: sleeptest.exe 10, hadde endt opp med at programmet ventet 10 sekunder.

cout << "": er vel veldig selvforklarende, den putter tekst på skjermen.. \n på slutten er for å starte på en ny linje.
cin.get(); venter på et tastetrykk fra brukeren før programmet går videre og avslutter.
og tilslutt returnerer vi 0: programmet har avsluttet på en vanlig måte.