Avatar billede martin_moth Mester
20. juni 2005 - 16:12 Der er 7 kommentarer og
1 løsning

Opret shortcut-tastetryk til copy-paste

Ved ikke om det er den rigtige kategori

Sidder i winXP med et CAD program, hvor jeg kopierer tal fra et regneark ind i en dialogbox i CAD-programmet

Der er en rutine, hvor jeg i CAD-programmet kopierer fra en textbox til en anden ved at taste

Ctrl+C
Shift+TAB
Ctrl+V

da jeg skal taste det ca. 27 millioner gange, kunne det være smart, om der kunne laves en shortcut, som virker ved at jeg fx. taster:

Ctrl+G

Når det tastes udføres ovenstående tastetryk. Kan man det - uden at lave et eksternt program, der sender tastetryk afsted? HAr windows muligheder for at lave sådanne ting?
Avatar billede mtj111 Novice
21. juni 2005 - 12:07 #1
Umiddelbart, nej. Windows har ikke funktioner til dette.

Du skal, som du selv skriver, bruge et eksternt program

Michael :-)
Avatar billede collin Nybegynder
21. juni 2005 - 12:41 #2
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "Notepad"
WScript.Sleep 1000
WshShell.AppActivate "Notepad"
WScript.Sleep 100
WshShell.SendKeys "Martin Moth"
WshShell.SendKeys "  "
WScript.Sleep 500     
WshShell.SendKeys "^{a}"
WScript.Sleep 500     
WshShell.SendKeys "^{c}"
WScript.Sleep 500
WshShell.Run "Wordpad"
WScript.Sleep 1000
WshShell.AppActivate "WordPad"
WScript.Sleep 500

x=1

Do until x = 201
WshShell.SendKeys "^{v}"
WshShell.SendKeys x
WshShell.SendKeys "{Enter}"
x=x+1
loop
   
       
'****************************************************

Ovenstående er et eksempel på hvordan du kan - ved at tage Windows WScript i brug -  gentage en indtastningsrutine meget hurtigt. Følg denne procedure:
1.) Højre klik et tomt sted på dit skrivebord og vælg 'Ny' og så 'Tekstdokument' 
2.) Kopier ovenstående tekst til din nye Tekstdokument.
3.) Vælg Filer fra Notepad menuen linjen og 'Gem som...'
4.) I feltet Filnavn skriv navnet "MM.vbs" og vær sikker på at citationstegnene er med. Klik på Gem.
5.) Så skulle der stå en .vbs fil på dit skrivebord der hedder MM. Dobbeltklik den.
6.) Det kan være at din antivirus program vil brokke sig, men fortæl den at filen skal have lov at køre idet den er  fuldstændigt skadeløs. Så skulle du se at Notepad åbner, Martin Moth bliver skrevet og markeret og så åbner WordPad og Martin Moth bliver kopieret 200 gange til WordPad.

Jeg kan ikke fortælle dig præcist hvordan du kan redigere i kodelinjerne ovenfor så du kan benytte teknikken til det formål du har - men i anden linje hvor der står WshShell.Run "Notepad" skal du for Notepad erstatte den fulde sti og programnavn til din AutoCad programer efterfulgt af et mellemrum og stien til den fil du vil arbejde med. Istedet for appactivate "Notepad" skal der stå appactivate "[registreret programnavn]" og så skal du slette de næste 11 linje så der kun står 'WScript.Sleep 500' under appactivate linjen. Og nu skal du være meget sikker på at du ved præcist hvilke taste rutine der er tale om og hvor mange gange den skal gentages. Der kan
lynhurtigt gå ged i det! Du skal øve hele rutine uden brug af musen så du er helt sikker på du har alle taste tryk med i den rigtige rækkefølge. Du kan se at linjerne mellem 'Do until...' og 'loop' er en løkke der gentages 201 gange. (x=201). Når du tror du har en script der vil virke prøv den af med x=3 - så kan det ikke gå helt galt! Din script i de 7-8 linje mellem 'Do unti..' og 'loop' kan se således ud:

WshShell.SendKeys "^{c}"
WScript.Sleep 10
WshShell.SendKeys "%{TAB}"
WScript.Sleep 10
WshShell.SendKeys "^{v}"
WScript.Sleep 10
x=x+1
       
hvor "^{c}"  sender tasterne Ctrl + C, "%{TAB}" sender tasterne Alt + Tab, "^{v}" sender Ctrl + V. Sleep linjerne indsætte en lille pause på en tiende del af et sekund så Windows grafikflade har en chance at følge med.
Held og lykke!
Avatar billede collin Nybegynder
21. juni 2005 - 12:46 #3
Ups! Jeg kan se at det var Shift+Tab du skulle have - så skulle der står "+{TAB}" i stedet for "%{TAB}"
Avatar billede mtj111 Novice
21. juni 2005 - 13:41 #4
Fedt!

Michael :-)
Avatar billede martin_moth Mester
23. juni 2005 - 10:29 #5
Ok - kender til script, så ovenstående er helt forståeligt. Men det kræver at jeg afvikler programmet hver gang jeg taster
Ctrl+C
Shift+TAB
Ctrl+V

For jeg foretager mig nemlig andre ting ind imellem, så de kan ikke bare fyres afsted 100 gange i et loop.

Men hvis vbs'en bare kunne afvikles med en tastekombination er det jo fint. Så kunne jeg have min vbs:

  WshShell.SendKeys "^{c}"
  WScript.Sleep 10
  WshShell.SendKeys "%{TAB}"
  WScript.Sleep 10
  WshShell.SendKeys "^{v}"
  WScript.Sleep 10

Og aktivere den med F.eks. Ctrl+G.

Men kan man det - aktivere en vbs-fil ved et tastetryk?

Skal jeg dobeltklikke på den hver gang, er det lige så hurtigt at taste tastetrykkene på normal vis
Avatar billede collin Nybegynder
24. juni 2005 - 00:21 #6
Ingen problem. Du laver din script og gem det et hvilket som helst sted - f.eks C:\Windows. Så træk en genvej fra filen over til din Start|Programmer mappe, så den optræder i den liste der ses når du trykker Start og vælger Alle Programmer. Gå til genvejen, højreklik på den, vælg Egenskaber og her får du mulighed for at tildele en tastatur genvej. Kun Ctrl + Alt muligheder findes men du kan bruge Alt Gr for Ctrl + Alt. Alt Gr + 6 for eksempel kan nemt tastes med en hånd. Men husk så at den tastatur kombination vil fremover altid starte den rutine hvilket kunne give katastrofale resultater i andre programmer. Det ville måske være mindre risikabelt at tildele Alt Gr + en af tallene på nummer tastaturet. Din script vil således se sådan ud:

  set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^{c}"
  WScript.Sleep 10
  WshShell.SendKeys "+{TAB}"
  WScript.Sleep 10
  WshShell.SendKeys "^{v}"
  WScript.Sleep 10
Avatar billede martin_moth Mester
24. juni 2005 - 00:34 #7
Sådan!

Smid svar
Avatar billede collin Nybegynder
24. juni 2005 - 09:03 #8
Et svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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