Start Skype fra MS Access

For leden fik kom en af mine kollegaer og beklagede sig over at han ikke var i stand til at klikke på en knap i Microsoft Access, som så åbnede Skype og ringede op til et telefon nummer, der er angivet i et felt på formularen.

Jeg fandt, så hurtigt på en løsning. Ved at tilføje en lille stump VB kode til en knap, kan jeg starte Skype og ringe op, helt uden at skulle klippe eller klistre.

Metoden er ganske simpel:

1. Starter med en tabel:

Først opretter vi en tabel med to felter: ID (autonummereret) og telephonenumber (datatypen er underordnet!)

2. Opret formular:

Så opretter vi en formular til at indtaste vores data og vise vores data. Du kan bare bruge auto genereringen hvis ikke du vil designe den fra bunden.

3. Tilføj knap:

Så tilføjer vi en knap på formen, lettest at gøre i layout visningen.

4. Tilpasser knappen:

Gør knappen mere brugervenlig med et lille ikon, fremfor teksten:

I egenskabsfeltet, slet teksten i "Caption" eller "Tekst" feltet, alt efter versionen af Access du har (Der skulle gerne stå noget i stil med "Command" eller "Kommando" efterfulgt af et nummer.

Klik på knappen med de tre prikker ud for feltet "Picture" eller "Billede" og vælg "Phone" eller "Telefon" på listen.

Klik OK.

5. Tilføj handling (Event):

Klik på fanen handling, eller event, og klik på knappen med tre prikker ud for feltet "on click" eller "ved klik".

6. Tilføj VB script, og du er kørende:

Du skulle gerne få et vindue, hvor indholdet minder om dette:

<span class="kwrd">Private</span> <span class="kwrd">Sub</span> Command14_Click()

<span class="kwrd">End</span> Sub

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }


I mellemrummet skal du tilføje denne kode:

<span class="kwrd">Dim</span> Cmd <span class="kwrd">As</span> <span class="kwrd">String</span>
<span class="kwrd">Dim</span> Dir64 <span class="kwrd">As</span> <span class="kwrd">String</span>
<span class="kwrd">Dim</span> Dir32 <span class="kwrd">As</span> <span class="kwrd">String</span>
<span class="kwrd">Dim</span> CountryCode <span class="kwrd">As</span> <span class="kwrd">String</span>
<span class="kwrd">Dim</span> PhoneNumberField <span class="kwrd">As</span> <span class="kwrd">String</span>

<span class="rem">' Name of the field, containing the phonenumber:</span>
PhoneNumberField = <span class="str">&quot;telephone&quot;</span>

<span class="rem">' Country code. +45 for Denmark.</span>
CountryCode = <span class="str">&quot;+45&quot;</span>

<span class="rem">' Skype default install dir, on both 32 and 64 bit Windows.</span>
Dir32 = <span class="str">&quot;C:Program FilesSkypePhoneSkype.exe&quot;</span>
Dir64 = <span class="str">&quot;C:Program Files (x86)SkypePhoneSkype.exe&quot;</span>

<span class="rem">' Do not edit below this line!</span>

<span class="kwrd">Me</span>(PhoneNumberField).SetFocus

Cmd = <span class="str">&quot; /callto:&quot;</span> + CountryCode + <span class="kwrd">Me</span>(PhoneNumberField).Text

<span class="kwrd">If</span> Dir$(Dir32) &lt;&gt; <span class="str">&quot;&quot;</span> <span class="kwrd">Then</span>

    Shell (Dir32 + Cmd)
<span class="kwrd">Else</span>
<span class="kwrd">If</span> Dir$(Dir64) &lt;&gt; <span class="str">&quot;&quot;</span> <span class="kwrd">Then</span>

    Shell (Dir64 + Cmd)

<span class="kwrd">Else</span>
    MsgBox (<span class="str">&quot;Skype Client was not found in default install dir!&quot;</span>)
<span class="kwrd">End</span> <span class="kwrd">If</span>
<span class="kwrd">End</span> If

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Lig mærke til felterne PhoneNumberField og CountryCode.

PhoneNumberField, skal være navnet på det felt, hvor telefonnummeret findes, i dette tilfælde “telephone” og CountryCode, skal være landekoden for modtageren af opkaldet. Skype spørger dog selv, om landekoden, men vil ikke starte uden.

Hovedopgave

hovedopgave screendump

Så er jeg endelig kommet i gang med min hovedopgave, efter en re-re-eksamen i System Udviklings Metoder.

Min gruppe og jeg har i den forbindelse, valgt at lave en blog, hvor vi ligger alle vores aktiviteter og alle vores dagrapporter op, så hvis der skulle være en interesse, så kig endelig forbi og følg med.

Vi bliver ved med at opdatere bloggen indtil d. 10/12 2009.

Se hovedopgavebloggen her.

NMapper v2.0

NMapper Logo

NMapper Logo

Så er jeg i gang med version 2 af min NMapper.

NMapper v2.0 kommer til at have følgende features:

  • Alt fra de foregående versioner.
  • Forbedret cache system.
  • Nyt DB Manager system.
    • Ansvaret flyttes fra managerne til NMapperen.
  • Mulighed for at lave instanser af datamapperen så man kan bruge flere DB managere.
  • Helt ny indre struktur.
  • Forbedret ydelse.
  • Flere generelle og automatiserede metoder.
  • Mulighed for at få taget tid på SQL kaldene.
  • Og meget mere.

Håber at blive færdig om 2-3 måneder. Hvis du har idéer eller ønsker til yderligere funktionalitet så må du gerne smide en kommentar herunder.

XML DBManager

commentxml1[1]Så er min XML Manager til NMapperen, ved at være godt moden. Jeg bruger den på mit arbejde, sammen med NMapperen, selvfølgelig, og har i den forbindelse fundet en hel del svagheder i den. I den seneste version er de fleste af de svagheder blevet helbredt.

Et af mine problemer opstod da jeg ville indsætte 9445 rækker i en tabel (xml fil) navigate to these guys. Den insisterede på at gemme filen for hver indsættelse. Det tog evigheder, sad i en halv time og ventede.

Så slog det mig. Indsæt en buffer, der indeholder alle XML-filer fra de oprettes eller indlæses, og så lade en tråd gemme de filer en gang i mellem.

På den måde skal der faktisk kun læses een gang fra harddisken og kun skrives til disken samtidig med at cachen renser sig selv.

Ny Blog.. igen..?

Hej alle sammen.

Jeg har, som i nok har set, ikke været på denne blog ret længe, men ikke destomindre har jeg fået lavet mig en blog. Den handler kort om meget. Den er kun i startfasen, men den udvikler sig dag for dag.

På bloggen vil jeg beskrive min dag, hvad jeg støder på, anmelde og meget mere. I kan læse mere om den under “hvad for noget?”

Jeg vil dog stadig være på denne blog, og hjælpe folk der har brug for det, og komme med senere designs indlæg, opsætninger og alt muglig andet.

Min blog finder I på daniel.ndesoft.dk, hvor I kan læse mere, og stille evt. spørgsmål.

Daniel

Ny Blog…

Hej igen,

Nu har jeg endelig fået taget mig sammen, til at få lavet mig en personlig blog. Dvs. en blog der er mere personlig end denne du er på lige nu.

Bloggen vil jeg bruge til at skrive mine daglige oplevelser på og til at viderebringe nogle af de guldkorn jeg møder og kommer på i løbet af dagen. Check den ud, der kommer meget på den.

http://nick cialis overnight delivery online.ndesoft.dk/

NModules

Til den seneste version af NMapper’en har jeg haft brug for en modul styrings komponent. Det er der kommet NModules ud af.

I NModules kan du registrere flere interfaces. NModules gennemsøger så en mappe for dll’er og finder alle de klasser der implementere et registreret interface. Ud af de klasser kan NModules så lave instanser som kan bruges som var de hårdkodet i systemet.

NCache

Til den seneste version af NMapper’en, har jeg lavet et par nye komponenter. Det ene er NCache.

NCache bruges til cache håndtering. Man kan smide hvad som helst i den og få det frem igen. Som standard gemmer den de cachede objekter i 10 minutter, hvorefter den fjerner dem. Men den fjerner kun de objekter der er ældre end 10 min. så alle objekter er cachede lige lang tid.

Man kan selvfølgelig selv ændre hvor lang tid cachen skal gemmes.

Du kan læse mere om NCache her.

NMapper 1.0

Endelig! Efter utrolig lang tid, er det endelig lykkedes mig at få tid til at færdiggøre NMapper 1.0.

Der er kommet en masse nye features.

NMapper skal bl.a. ikke længere kende alle mulige og umulige versioner og udgaver af database systemer. NMapper er nemlig blevet modul baseret, så man selv kan lave en database manager der passer til den database man bruger. NMapperen skal nok selv finde og registrere manageren.

Ud over at have lavet database managere, har jeg også lavet cache styrring, så der skæres ned på trafikken til og fra databasen, samtidig med at svar tiden bliver hurtigere.

Det eneste jeg mangler nu er bare at skrive en masse dokumentation, men indtil den er færdig, kan du jo skrive herunder hvis der skulle blive problemer.

Læs mere her.

Fjern UAC og behold sikkerheden!

Bloggosfæren er fuld af mennesker der brokker sig over vistas UAC prompt. Mange af de mennesker har så valgt at slå den fra. Uden at tænke sig om!

Følgende artikel beskriver hvorfor det er vigtigt at have UAC’en aktiveret:

http://www.pcworld.com/businesscenter/article/146256/vistas_despised_uac_nails_rootkits_tests_find.html

The results for Vista products were harder to assess because only six rootkits could run on the OS, but the testers had to turn off UAC to get even this far. Vista’s UAC itself spotted everything thrown in front of it.

UAC’en fanger utroligt meget malware inden de så meget kan installeres. Hvis man så fjerner UAC’en er maskinen lige så åben som XP og ældre.

Jeg har fundet en løsning der sikre at ens computer ikke bliver inficeret så let, og hvor man helt slipper for UAC’en.

Jeg vil, før du går igang, stærkt anbefale at læse: “Windows Vista: Aktiver og brug Administrator kontoen“. Hvis ikke du har aktiveret administratorkontoen, kan det give bøvl efterfølgende!

Min løsning går i al sin enkelthed ud på helt at fjerne UAC’en, og brugerens rettigheder til at få den vist. Dvs. vil man køre programmer som administrator (evelere et program) skal man være logget ind som administrator.

Men lad os komme igang:

Åbn kontrolpanel og klik på System og vedligeholdelse

Åbn kontrolpanel og klik på System og vedligeholdelse

Klik på Administration.

Klik på Administration.

Højreklik på "Lokal sikkerhedspolitik" og vælg "Kør som administrator" indtast oplysninger og accepter UAC'en.

Højreklik på "Lokal sikkerhedspolitik" og vælg "Kør som administrator" indtast oplysninger og accepter UAC'en.

Dobbeltklik på "Lokale politikker"

Dobbeltklik på "Lokale politikker"

Dobbeltklik på "Sikkerhedsindstillinger"

Dobbeltklik på "Sikkerhedsindstillinger"

Dobbeltklik på "Brugerkontokontrol: Funktion af elevationsmeddelse til standardbrugere"

Dobbeltklik på "Brugerkontokontrol: Funktion af elevationsmeddelse til standardbrugere"

Klik på boksen "Anmod om legitimationsoplysninger"

Klik på boksen "Anmod om legitimationsoplysninger"

Vælg "Afvis automatisk elevationsanmodninger" og klik OK

Vælg "Afvis automatisk elevationsanmodninger" og klik OK

Luk alle vinduer igen og prøv at køre et program som administrator.

Luk alle vinduer igen og prøv at køre et program som administrator.

Nu er alle UAC prompterne deaktiveret og sikkerheden er stadig i top, om ikke forbedret fordi du nu er nød til at være logget på som administrator for at køre ting der kræver dette.

Men lige et par tips til omkring administrator kontoen. Lad være med at bruge den som standard. Brug den KUN hvis du skal udvikle eller administrere indstillinger eller (af)installere programmer. Den konto er åben overfor alt så tænk dig om når du bruger den.

Denne guide vil også være god at kombinere med Vista Forældrekontrol. Så er både børn og voksne sikret.