понедельник, 13 апреля 2009 г.

Как определить x64 или x86 у нас OS?

Нужно определить под чем запущено наше 32битное приложение ,под 32х-битной Windows или по 64.
Пока ничего умнее не придумал как делать так:


def IsItx64():
import _winreg
import win32con
try:
RegPath = r"SOFTWARE\Wow6432Node"
hKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE, RegPath,0, win32con.KEY_READ | win32con.KEY_WOW64_64KEY)
except:
return False
return True

пятница, 10 апреля 2009 г.

Редирект в SharePoint

Появилась задача перенаправлять обращения по некоторым URL в SharePoint'е на другие URL в нем же. Оказывается люди такое уже делают.

Получилось и у меня:

Делаю редирект с урла вида
 http://server/TestRedirectionSharePoint/ 

на
 http://server/NewRedirectionSite/ 




using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Text.RegularExpressions;
using Microsoft.SharePoint;

namespace SP2007RedirectExample
{
public class RedirectModule : IHttpModule
{
public void Dispose()
{ }

public void Init(HttpApplication context)
{
context.BeginRequest +=
new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
string requestUrl = app.Request.Url.ToString();

if (requestUrl.Contains("TestRedirectionSharePoint"))
{
var destinationUrl = requestUrl.Replace("TestRedirectionSharePoint", "NewRedirectionSite");
app.Response.AddHeader("Location", destinationUrl);
app.Response.StatusCode = 301;
}
}
}
}


Редирект в браузере при этом работает прекрасно , а вот когда мы пытаемся открыть офисный документ лежащий на SharePoint'е то в случае если по оригинальному пути он существует ,то открыть будет старый документ , а если не существует то тот документ на который указал редирект.

четверг, 9 апреля 2009 г.

Публикация исходных текстов в блоге

Когда то я уже писал о том как вставлять куски исходников в блог, но тем способом вставлять сырцы не очень удобно. Сегодня я нашел новый ,более удобный, способ для этого. На мой взгляд он более прост.
После его применения получаются вот такие вот фрагментики:


public void Init(HttpApplication context)
{
context.BeginRequest +=
new EventHandler(context_BeginRequest);
}