brg Skrevet 22. februar 2009 Del Skrevet 22. februar 2009 (endret) Hei Har forran meg en kjedelig oppgave. Skal redigere en database hvor jeg må flytte en opplysning fra et felt til et annet. Dette må jeg gjøre over 10000 ganger . Har begynt og klarer ca. 100 endringer pr. time, men ønsker å kunne effiktivisere for å spare hendene litt. Opersjonen jeg ønsker å effektivisere er [marker] [klipp ut] [bytt bilde] [lim inn] [lukk bilde]. Ser etter noe som kan kjøre en makro e.l. som utfører dette på en enkel måte. Bruker Windows XP. Alle forslag mottas med takk. Endret 22. februar 2009 av brg Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Bump. Ingen som har noen forslag?? Lenke til kommentar
geir__hk Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Du må jo beskrive hva slags database det dreier seg om. Ingen som gidder å gjette seg frem - det løser jo ingenting uansett. Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Hvilken database spiller i dette tilfellet, ingen rolle. Derfor tok jeg ikke med info om dette. Her der det snakk om å finne et program som kan ligge på toppen og utføre en rekke med taste komandoer. F.eks Ctrl-X, Alt-2, Ctrl-V osv. Forøvrig er databasen en slektsdatabase i meget gammelt program somheter Winfamily og har ikke innebygd mulighet for makroer. Skal over til Legasy og må editere databasen for å få dataene kompatible med det nye programmet. Lenke til kommentar
what_no2000 Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Kanskje AutoIt kan hjelpe deg (?), men da kreves det litt innsats for å lage et skript som gjør som du vil. Se http://www.autoitscript.com/autoit3/ Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Kanskje AutoIt kan hjelpe deg (?), men da kreves det litt innsats for å lage et skript som gjør som du vil. Se http://www.autoitscript.com/autoit3/ Meget godt forslag, men noe for teknisk for meg. Trenger nok noe som er mer intuitivt eller noe der jeg kan "spille inn komandoene/handlingen). Også en bakdel at Scripet måtte kjøre manuelt hver gang, men muligens overkommelig. Lenke til kommentar
geir__hk Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Her der det snakk om å finne et program som kan ligge på toppen og utføre en rekke med taste komandoer. F.eks Ctrl-X, Alt-2, Ctrl-V osv.Se der ja - sånn info er jo viktig å få med Jeg kan godt lage et vbs-script på noen få linjer som gjør denne jobben, men du må vite om det ligger begrensninger i hvor raskt tastene skal "trykkes på". Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 (endret) Se der ja - sånn info er jo viktig å få med Jeg kan godt lage et vbs-script på noen få linjer som gjør denne jobben, men du må vite om det ligger begrensninger i hvor raskt tastene skal "trykkes på". Supert. Det hadde vært fint. Komandoene er [CTRL] x [ALT] 2 [TAB] [TAB] [CTRL] v [ALT] s Skulle tro at det ikke er nødvendig med delay mellom tastetrykkene. Endret 23. februar 2009 av brg Lenke til kommentar
what_no2000 Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 (endret) Komandoene er[CTRL] x [ALT] 2 [TAB] [TAB] [CTRL] v [ALT] s Skulle tro at det ikke er nødvendig med delay mellom tastetrykkene. Nå ser det ut som om du får hjelp av en annen, men hvis du har lyst til å prøve AutoIt så vil kanskje følgende lille programsnutt gjøre det du vil (i en evig løkke). I det programmet har jeg lagt inn 1/2 sekund pause mellom tastetrykk og hver tast blir holdt nede i et 1/2 sekund (500 milisekunder). Opt("SendKeyDelay", 500) Opt("SendKeyDownDelay", 500) While 1 send ("^x!2{tab}{tab}^v!s") WEnd Hvis du ikke føler deg komfortabel med å skrive det i autoit så er nok forslaget om vba bedre. Endret 23. februar 2009 av what_no2000 Lenke til kommentar
geir__hk Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Her er ferdig kode som bør fungere. Kopier inn i notepad og lagre det som en *.vbs fil. dim i, shell Set shell = Wscript.CreateObject("Wscript.Shell") ' Vente 6 sekunder for å la brukererenen ' fokusere på vinduet det skal skrives inn i. ' Hvis ikke, så vil tastetrykkene genereres ennå mens bruker ' er i desktop eller evt utforskeren. WScript.Sleep 6000 ' Løkke som genererer tastetrykkene i en helvettes fart... ' Begrenset til ti tusen ganger, men det kan settes inn ' et annet tall om ønskelig. for i=0 to 10000 shell.Sendkeys "^x" shell.Sendkeys "%2" shell.Sendkeys "{TAB}" shell.Sendkeys "{TAB}" shell.Sendkeys "^v" shell.Sendkeys "%s" Next Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 (endret) Nå ser det ut som om du får hjelp av en annen, men hvis du har lyst til å prøve AutoIt så vil kanskje følgende lille programsnutt gjøre det du vil (i en evig løkke). I det programmet har jeg lagt inn 1/2 sekund pause mellom tastetrykk og hver tast blir holdt nede i et 1/2 sekund (500 milisekunder). Opt("SendKeyDelay", 500) Opt("SendKeyDownDelay", 500) While 1 send ("^x!2{tab}{tab}^v!s") WEnd Hvis du ikke føler deg komfortabel med å skrive det i autoit så er nok forslaget om vba bedre. Kan også prøve dette. Men går det i en evig løkke. Ser at jeg kansje må forklare litt mere også. Jeg åpner posten som skal redigeres manuelt. På noe poster må jeg gjøre andre endringer individuelt(ca 20% av postene), men for alle poster avslutter jeg med denne tasterekken etter at jeg har markert det som skal flyttes. OBS: Kan med fordel avslutte med "piltast ned" hvis mulig slit at den er kalr for å åpne neste post. (Åpnes ved høyre klikk på musa og velge rediger i menyen). Vil Autoit eller VBA kunne utføre dette. For Autoit forstår jeg det slik at en må kjøre skriptet mauelt. Antar at det vil si å dobbeltklikke på en eller annen fil på skrivebordet. I så fall vil den da kunne gå inn i rett vindu for å utføre disse komandoene? Er som du ser ganske noob på dette Endret 23. februar 2009 av brg Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 (endret) Her er ferdig kode som bør fungere. Kopier inn i notepad og lagre det som en *.vbs fil. dim i, shell Set shell = Wscript.CreateObject("Wscript.Shell") ' Vente 6 sekunder for å la brukererenen ' fokusere på vinduet det skal skrives inn i. ' Hvis ikke, så vil tastetrykkene genereres ennå mens bruker ' er i desktop eller evt utforskeren. WScript.Sleep 6000 ' Løkke som genererer tastetrykkene i en helvettes fart... ' Begrenset til ti tusen ganger, men det kan settes inn ' et annet tall om ønskelig. for i=0 to 10000 shell.Sendkeys "^x" shell.Sendkeys "%2" shell.Sendkeys "{TAB}" shell.Sendkeys "{TAB}" shell.Sendkeys "^v" shell.Sendkeys "%s" Next Takker, har skrevet litt mer utfyllende info og noen spørsmål ii posten over. Endret 23. februar 2009 av brg Lenke til kommentar
what_no2000 Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Her er et AutoIt skript som trykker tastekombinasjonen for deg når du trykker F2: HotKeySet("{F2}", "PressKeys") Opt("SendKeyDelay", 500) Opt("SendKeyDownDelay", 500) While 1 Sleep(1000) WEnd Func PressKeys() send ("^x!2{tab}{tab}^v!s{down}") EndFunc Jeg har lagt til en pil ned til slutt. Hvis du får det til å virke kan du endre 500 (1/2 sekund) til lavere for å få det til å gå fortere. Du kan også endre F2 til noe annet hvis F2 alt brukes av programmet. For å kjøre programmet må du ha AutoIt installert, så lagrer du koden i en fil som f.eks heter skript.au3, som du dobbeltklikker på. Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Fant ut at det. TUSEN TAKK VBS funker. Tok bort loop'en og endret delayen til passende nivå. Kan jeg vidreutvikle denne til å ta med en [PIL NED] komando og evt. Komando for å åpne neste post. [Høye mus klikk] og velg [rediger i menyen] ? Her er et AutoIt skript som trykker tastekombinasjonen for deg når du trykker F2: HotKeySet("{F2}", "PressKeys") Opt("SendKeyDelay", 500) Opt("SendKeyDownDelay", 500) While 1 Sleep(1000) WEnd Func PressKeys() send ("^x!2{tab}{tab}^v!s{down}") EndFunc Jeg har lagt til en pil ned til slutt. Hvis du får det til å virke kan du endre 500 (1/2 sekund) til lavere for å få det til å gå fortere. Du kan også endre F2 til noe annet hvis F2 alt brukes av programmet. For å kjøre programmet må du ha AutoIt installert, så lagrer du koden i en fil som f.eks heter skript.au3, som du dobbeltklikker på. Ah, glimrende, må prøves. TUSEN TAKK. Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Fikk testet det i Atuoit nå, og det funker veldig bra. Spesielt bra kan bruke F2 til å kjøre det. Eneste er at den tar 2 piltaster ned på slutten av en eller annen grunn. Lenke til kommentar
brg Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Da har jeg fått kjør en god del poster ved hjelp av Autoit scriptet. Kuttet pil ned funksjonen, endret delay til 50 og har doblet hastigeten på redigeringen. Og ikke minst sparer jeg fingrene en hel del slitasje. TUSEN TAKK igjen til dere begge. Dette er til stor hjelp for meg. Og jeg håper å være ferdig til påske med redigeringen. Setter av 1 time om dagen til dette Lenke til kommentar
geir__hk Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Pil-ned taste-trykk: shell.Sendkeys "{DOWN}" Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå