Ö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...
Jag tror att det ska vara:
objSkal.WriteLine("Hej");
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.
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?
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.
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..
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.
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?
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.
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?
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
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
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.
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.
Tack för att du är så noggrann, jag har löst det nu!