30.5.08

Visto, očisti se!

Ako ste na Vistu instalirali SP1, zadovoljni ste ponašanjem operativnog sustava, ne planirate više nikada deinstalirati SP1, onda pokrenite VSP1CLN programčić...

image

...koji će vam obisati sve RTM datoteke koje su izmijenjene sa SP1-om i time efektivno onemogućiti uninstall.

Ja sam pokretanjem ovog programčića dobio 1,6GB slobodnijeg prostora na disku. Nije preznačajno, ali je 1,6GB manje za defragmenter i 1,6GB više prostora za filmove! smile_wink

 

Više na stranici: http://technet2.microsoft.com/WindowsVista/en/library/0505991e-49c2-494b-8703-257a14c3d4721033.mspx?mfr=true 

smile_shades

24.5.08

Windows Forms/WPF i komandno-linijska aplikacija u jednom...?

Nedavno sam na jednom projektu imao zathjev da se aplikacija može pokrenuti u sučelju u kojem korisnik interaktivno može postavljati parametre procesiranja, te da se ta ista aplikacija može pokrenuti u komandnoj liniji gdje se svi parametri procesiranja postavljaju kao komandno-linijski argumenti.

Iako na prvu problem ne zvuči komplicirano ugrađena podrška za takav scenarij ne postoji u .NET Frameworku. Ukoliko za projekt Windows aplikacije Output type promijenimo u Console Application...

image

image

...rezultat neće biti ono što bi se svakome svidjelo:

image

Srećom Win32 API ima metode kojima se to može riještiti.

private const uint ATTACH_PARENT_PROCESS = 0x0ffffffff;

[DllImport("kernel32.dll")]
public static extern bool AllocConsole();

public static bool AttachConsole()
{
return AttachConsole(ATTACH_PARENT_PROCESS);
}

[DllImport("kernel32.dll")]
public static extern bool AttachConsole(uint dwProcessId);

[DllImport("kernel32.dll")]
public static extern bool FreeConsole();


Korištenjem navedenih P/Invoke metoda možemo otvoriti samo konzolu ili samo Windows aplikaciju kao u slijedećem kodu:



static void Main(string[] args)
{
if (args.Length > 0 && args[0].Equals("/cmd"))
{
if (!AttachConsole())
{
AllocConsole();
}

// do Console.* work...

FreeConsole();
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}


AttachConsole će se pokušati spojiti na postojeću konzolu (ako je aplikacija pokrenuta iz komandne linije), a ako ne uspije (AttachConsole vrati false) pozvat ćemo AllocConsole što će kreirati novu konzolu i u njoj izvršiti aplikaciju. FreeConsole na kraju pozivamo kako bismo oslobodili lock na trenutnu konzolu.



smile_shades

5.5.08

Microsoft Photosynth

U posljednjoj epizodi CSI New Yorka demonstrirana je Microsoftova Photosynth tehnologija. Za one koje nisu upoznati radi se o aplikaciji/tehnologiji koja iz niza prividno nepovezanih slika neke okoline može izgenerirati virtualnu 3D scenu kroz koju se može "prošetati" u svim smjerovima. Dakako, mogućnosti približavanja objektima (zoom) ovisi i o kvaliteti samih fotografija.

Više informacija i demo tehnologije možete pogledati na adresi: http://labs.live.com/photosynth/

 

U jednoj sceni Flack ispituje sumnjivca i pokazuje mu slike generiranje Photsynthom:

- Here you are... Heading into the science lab with him at 10:20.
- How do you know that's me?
- It's Microsoft's world, kid... I'm just living in it.

smile_regular

Cijelu epizodu možete pogledati na CBS-ovim stranicama: CBS - CSI:NY Video

CSI: NY nakon ove i ranije demonstracije Cisco TelePresence-a definitivno postaje naj-techy serija bez nepotrebnog lupetanja gluposti ili sci-fi overkilla, kao CSI Miami i njihovo korištenje "modernih tehnologija" kako smo mogli vidjeti ovdje... smile_wink