14 svar
98 visningar
delz är nöjd med hjälpen!
delz 47
Postad: 13 feb 2018

Ö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 56
Postad: 13 feb 2018

Jag tror att det ska vara:

objSkal.WriteLine("Hej");

delz 47
Postad: 13 feb 2018

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Å 1031
Postad: 13 feb 2018

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 56
Postad: 13 feb 2018

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 47
Postad: 13 feb 2018
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 47
Postad: 13 feb 2018
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Å 1031
Postad: 14 feb 2018

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 47
Postad: 14 feb 2018
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Å 1031
Postad: 14 feb 2018 Redigerad: 14 feb 2018

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 47
Postad: 14 feb 2018
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Å 1031
Postad: 14 feb 2018

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 47
Postad: 14 feb 2018

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Å 1031
Postad: 15 feb 2018 Redigerad: 15 feb 2018

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 47
Postad: 16 feb 2018

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

Svara Avbryt
Close