Forfatterarkiv: Svend Koustrup

Hvordan starter jeg et Windows-program som administrator uden at vise UAC-dialogen?

Jeg starter Visual Studio mange gange om dagen. For at sikre, at den har lov til de ting, jeg bruger den til, starter jeg den altid som administrator. Men UAC-dialogen, der spørger, om et program har lov til at køre som administrator, den er træls at skulle trykke på hele tiden. Omvendt skal man heller ikke slå UAC helt fra på sin maskine. Hvad kan man så gøre? En måde at gøre det på, er at oprette en Task Scheduler-opgave og så en genvej, der starter denne opgave.

Læs resten

Hvordan viser jeg en potential scam-email i Gmail som tekst uden at åbne den?

Du bruger Gmail, og du har modtaget en email, der ser ud til at komme fra et firma eller organisation, som du har tillid til. Du er dog i tvivl om ægtheden af emailen og ønsker ikke at åbne emailen i din webbrowser.

Når du åbner en email i Gmail, kan du i menuen med de tre prikker i højre side, over emailen, vælge Show original. Dette åbner emailen i tekst-visning, der viser den rå tekst og kode bag emailen, uden risiko for scripts og billeder og andet, der kan udnyttes af afsenderen.

Denne mulighed er dog ikke umiddelbart tilgængelig før du åbner emailen. Ønsker du ikke at åbne emailen, kan du i stedet højreklikke på emailen i Inbox-listevisningen og vælge Forward as attachment. Samme mulighed har du i More-menuen, hvis du forinden sætter markering på mailen.

Dette åbner en ny email med den valgte email som vedhæftning. Hvis du nu klikker på vedhæftningens link, så bliver den valgte email downloaded som .eml-fil.

Nu kan du vha. fx Notepad eller anden simpel teksteditor, åbne .eml-filen (fra din Downloads-mappe) i ren tekst-visning uden nogen risiko.

Du bør dog sikre dig, at du ikke dobbeltklikker på .eml-filen, efter du har downloadet den, da dette kan åbne filen i et installeret email-program, og dette vil udgøre en væsentlig større sikkerhedsrisiko end blot at åbne mailen inde fra Gmail.

Hvordan stopper jeg Windows fra at gå i standby kort tid efter jeg låser computeren?

Jeg har sat min computer til aldrig at gå i standby, så længe den er sluttet til strøm, fordi jeg ikke ønsker, at den afbryder hvad end, jeg har gang i, bare fordi jeg ikke lige er ved computeren. Men når jeg trykker Win-L for at låse, fordi jeg lige skal hente en kop kaffe eller lign., så er computeren gået i standby så snart jeg er tilbage efter få minutter. Det er da irriterende!

Det viser sig, at der er en skjult indstilling, der gør lige præcis dette. Hvis du selv vil styre, hvor lang tid der går, fra man låser Windows til den går i standby – eller helt deaktivere dette – så læs videre herunder.

Læs resten

Hvordan viser jeg DataTable ColumnNames i en WPF ComboBox?

Denne artikel omhandler it-udvikling i C#.NET WPF

Det er let at finde eksempler på at binde et DataGrid med et DataTable, og der findes også eksempler på at binde en ComboBox med fx værdierne i en kolonne i et DataTable, men mit behov, nemlig at liste selve kolonnenavnene fra et DataTable i en ComboBox, så man kan vælge en bestemt kolonne fra fx et nærtstående DataGrid, det har været lidt svært at finde. Det viste sig, at løsningen var såre simpel, og nu skriver jeg denne artikel, så jeg selv kan finde det, næste gang jeg skal bruge dette. Måske du har fundet denne side via Google? Du skal være velkommen til at skrive i kommentarerne i bunden.

I dette eksempel har jeg i min ViewModel følgende property:

private DataTable gridInputData;
public DataTable GridInputData
{
  get { return gridInputData; }
  set { gridInputData = value; NotifyPropertyChanged(); }
}

Læg mærke til NotifyPropertyChanged() i setteren. Jeg vil ikke forklare dette pattern her, der findes masser af eksempler på dette på nettet.

Et sted i min load-rutine henter jeg noget data (i dette tilfælde fra en Excel-fil) og gemmer det første DataTable ned i min ViewModel property.

DataSet dataset = edr.Load(filepath);
vm.GridInputData = dataset.Tables[0];

Når dette sker, bliver ComboBoxen i XAML’en herunder automatisk udfyldt.
Mit issue, som jeg ikke lige kunne finde et færdigt eksempel på, var, at jeg kunne lave GridInputData.Columns. Jeg troede jeg skulle bruge en særlig parameter på bindingen for at nå til Columns, men almindelig dot-notation er altså nok.


<ComboBox x:Name="cmbVariantColumn" 
          ItemsSource="{Binding GridInputData.Columns}" 
          DisplayMemberPath="ColumnName"/>

Og så fungerer det, yeay!

Hvordan åbner jeg en CSV-fil med store tal i Excel uden de bliver vist som Scientific Notation – og hvordan gemmer jeg uden at miste præcision?

Her kommer endnu et nørde-indlæg. Alle der har arbejdet med CSV-filer med store tal, fx stregkoder eller anden identifikation, har oplevet, at når man åbner filen i Excel, så vises cellerne på en (for de fleste) underlig måde. Og skulle man formaste sig til at gemme sine ændringer, vil man på et tidspunkt se, at de mindst betydende cifre i tallene nu er lavet om til 0’er. Frustrerende? Læs videre her.

Læs resten

Hvordan logger jeg alle ændringer af stored procedures i SQL Server

Okay, dagens indlæg er nok specifikt rettet mod folk, der arbejder med SQL Server på en arbejdsplads. 

Har du brug for at kunne se, hvem der har ændret fx en stored procedure (SP), kan du aktivere denne Database Trigger på din database. Dette vil logge alle strukturelle ændringer på tabeller, view, triggers, procedurer og funktioner.

Læs resten

Hvordan laver jeg et WordPress Child Theme?

Hvorfor skal jeg bruge et child theme?

Hvis du vil lave kodeændringer i dit WordPress-tema, skal du lave et child theme, eller “undertema”. Årsagen hertil er, at hvis du laver ændringer direkte i et kendt tema, og forfatteren til temaet laver opdateringer til det, så vil det overskrive dine ændringer – spildt arbejde. Vi gider ikke spildt arbejde, så vi laver et child theme.

Du kan finde lange, forklarende opskrifter til dette på nettet, men herunder giver jeg en helt kort opskrift.

 

Læs resten