14 svar
275 visningar
delz behöver inte mer hjälp
delz 50
Postad: 13 feb 2018 13:24

Öppna upp anteckningar och ska stå 'hejsan' - Jscript

var SKRIVNYFIL = 2;
var filNamn = 'Laban.txt';
var i = 0;
var text = '';

 //Här har jag skapat ett filsystemobjekt

var fSysObj = WScript.CreateObject('Scripting.FileSystemObject');

//Ett textströmobjekt skapas

var objText = fSysObj.OpenTextFile(filNamn,SKRIVNYFIL,true);

//Här vill jag nu skapa ett objekt som öppnar min 'Laban.txt' och skriver dit 'hej'

var objSkal = WScript.CreateObject('WScript.Shell');

 

objSkal.sendkeys('hej');

objSkal.run('Laban.txt');


//Den öppnar upp `Laban.txt.` men det står ej 'hej' i den...

IGIL 43
Postad: 13 feb 2018 15:35

Jag tror att det ska vara:

objSkal.WriteLine("Hej");

delz 50
Postad: 13 feb 2018 16:30

Det funkar ej.. 

 

jag vill använda sendkeys för att simulera att jag använder tangentbordet samt att jag vill använda WScript.Sleep(500) efter det jag har skrivit. 

 

Jag försökte med objSkal.sendkeys(’a’,500) men inget hände och då försökte jag med bara objSkal.sendkeys(’hejsan’) men inget hände då heller. 

PeterÅ 842
Postad: 13 feb 2018 18:20

Du ska vara försiktig med sendkeys. Att det inte fungerar som du vill beror troligen på att du inte ser till att rätt fönster på skärmen har fokus. Ingår det i uppgiften att använda sendkeys?
Kan du visa originalfrågan?

IGIL 43
Postad: 13 feb 2018 19:46

Testa med att öppna text filen först med

objSkal.run('Laban.txt');

och sedan använder du sendKeys med

objSkal.sendKeys('Hej');

Så att fönstret är uppe när "du" skriver Hej.

delz 50
Postad: 13 feb 2018 22:47
IGIL skrev :

Testa med att öppna text filen först med

objSkal.run('Laban.txt');

och sedan använder du sendKeys med

objSkal.sendKeys('Hej');

Så att fönstret är uppe när "du" skriver Hej.

Tyvärr hjälpte det ej..

delz 50
Postad: 13 feb 2018 22:48
PeterÅ skrev :

Du ska vara försiktig med sendkeys. Att det inte fungerar som du vill beror troligen på att du inte ser till att rätt fönster på skärmen har fokus. Ingår det i uppgiften att använda sendkeys?
Kan du visa originalfrågan?

Skriv ett skript för WSH som automatiskt öppnar en tom textfil i din vanliga texteditor och skriver texten: 'Spöket Laban är här!' med en halv sekunds paus efter varje bokstav.

PeterÅ 842
Postad: 14 feb 2018 17:12

Tyvärr hjälpte det ej..
Om du vill ha hjälp är det bra att vi som försöker hjälpa får reda på hur du kom fram till att det inte hjälpte. Felmeddelande?

delz 50
Postad: 14 feb 2018 18:02
PeterÅ skrev :

Tyvärr hjälpte det ej..
Om du vill ha hjälp är det bra att vi som försöker hjälpa får reda på hur du kom fram till att det inte hjälpte. Felmeddelande?

Jag får ej upp något felmeddelande. 
Som jag skrev tidigare i i tråden:
--> //Den öppnar upp `Laban.txt.` men det står ej 'hej' i den... <---



Därefter försökte jag med: 
--> objSkal.sendkeys(’a’,500) <--

Men ingenting händer. 'Laban.txt' dyker som sagt upp men ingenting skrivs i den. Inget felmeddelande.


PeterÅ 842
Postad: 14 feb 2018 18:13 Redigerad: 14 feb 2018 18:16

Bra med skärmdumpen (bilden).
Du har massor med fel i din kod.

Du ska inte behöva en färdig textfil 'laban.txt'. Du ska öppna editorn direkt:

Set objSkal = CreateObject("WScript.Shell")
objSkal.run("notepad") 'öppnar en tom textfil i din vanliga texteditor 

Är du med så långt?

delz 50
Postad: 14 feb 2018 18:38
PeterÅ skrev :

Bra med skärmdumpen (bilden).
Du har massor med fel i din kod.

Du ska inte behöva en färdig textfil 'laban.txt'. Du ska öppna editorn direkt:

Set objSkal = CreateObject("WScript.Shell")
objSkal.run("notepad") 'öppnar en tom textfil i din vanliga texteditor 

Är du med så långt?

//Detta är vad jag har skrivit:
var text = 'hejsan';


var objSkal = WScript.CreateObject('WScript.Shell');
objSkal.Run('notepad'); // Notepaden kommer upp

objSkal.sendKeys(text, 500); // men texten läggs ej upp

 

PeterÅ 842
Postad: 14 feb 2018 19:14

Precis! Du har som sagt några fel i din kod.
Din dator gör vad den är tillsagd, dvs kör din kod. Vad du behöver förstå är att när du skickar iväg kommandot objSkal.Run('notepad');  så börjar notepad att starta.

Sedan kör du
objSkal.sendKeys(text, 500);

Från vad fick du den syntaxen? Vad är 500?
Om du läser denna sida ordentligt tror jag du fixar din uppgift:
https://ss64.com/vb/sendkeys.html

delz 50
Postad: 14 feb 2018 19:36

Från vad fick du den syntaxen? Vad är 500?
Om du läser denna sida ordentligt tror jag du fixar din uppgift:
https://ss64.com/vb/sendkeys.html

Det står att jag kan skriva så enligt min bok.
500 är paus i millisekunder.

PeterÅ 842
Postad: 15 feb 2018 15:59 Redigerad: 15 feb 2018 16:00

Då måste din skola köra en specialversion av WSH.
Har du läst länken jag skickade dig?
Där står hur det normalt går till.
Detaljer:
var objSkal = WScript.CreateObject('WScript.Shell');
objSkal.Run('notepad'); // Notepaden kommer upp
Bra. Så långt allt väl. Men nästa rad vill skicka in text i notepad direkt.
Tänk efter. Har notepad hunnit starta innan du skickar text till programmet?
Du kan ju inte direkt börja skriva något precis när du startar din dator heller.
Du måste alltså vänta en stund innan texten skickas. Hur gör du det?
Ledtråd: Sleep
Dessutom: Skicka text med objSkal.sendKeys("Hej"), inget annat.

delz 50
Postad: 16 feb 2018 17:48

Tack för att du är så noggrann, jag har löst det nu!

Svara
Close