Thursday, December 8, 2005
Windows Tablet as a portable gaming device?
I reckon Microsoft is missing a trick here. They should, in my opinion, push Windows Tablet Edition as a portable gaming platform rather than the lacklustre Windows CE. The larger form factor is much more conducive to immersive gaming and the Windows platform easier to port existing games across than the crippled CE platform.
Thursday, October 27, 2005
VBScript to set all local users' passwords to non-expire
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
Wscript.Echo objUser.Name objUserFlags = objUser.Get("UserFlags")
objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
objUser.Put "userFlags", objPasswordExpirationFlag
objUser.SetInfo
Next
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
Wscript.Echo objUser.Name objUserFlags = objUser.Get("UserFlags")
objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
objUser.Put "userFlags", objPasswordExpirationFlag
objUser.SetInfo
Next
Labels:
Code
Sunday, October 23, 2005
Set AD user password to non-expiry
using System.DirectoryServices;using ActiveDs;
//Add reference to COM Active DS TypeLib
static void DontExpirePassword(DirectoryEntry User)
{
int val;
const int ADS_UF_DONT_EXPIRE_PASSWD =0x10000;
val = (int) User.Properties["userAccountControl"].Value;
User.Properties["userAccountControl"].Value = val ADS_UF_DONT_EXPIRE_PASSWD;
User.CommitChanges();
}
//Add reference to COM Active DS TypeLib
static void DontExpirePassword(DirectoryEntry User)
{
int val;
const int ADS_UF_DONT_EXPIRE_PASSWD =0x10000;
val = (int) User.Properties["userAccountControl"].Value;
User.Properties["userAccountControl"].Value = val ADS_UF_DONT_EXPIRE_PASSWD;
User.CommitChanges();
}
Labels:
Code
Wednesday, September 28, 2005
Shutting down remote PCs
Dim oFSO, oTS, sClient, oWindows, oLocator, oConnection, oSys
Dim sUser, sPassword
'set remote credentials
sUser = "Administrator"sPassword = "password"
'open list of client names
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile("C:\clients.txt")
Do Until oTS.AtEndOfStream
'get next client name
sClient = oTS.ReadLine
'get WMI locator
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
'Connect to remote WMI
Set oConnection = oLocator.ConnectServer(sClient, "root\cimv2", sUser, sPassword)
'issue shutdown to OS ' 4 = force logoff ' 5 = force shutdown ' 6 = force rebooot ' 12 = force power off
Set oWindows = oConnection.ExecQuery("Select " & "Name From Win32_OperatingSystem")
For Each oSys In oWindows
oSys.Win32ShutDown(5)
Next
Loop
'close the text fileoTS.CloseWScript.Echo "All done!"
You should know a couple of things about this script. First, you need to have a text file named C:\Clients.txt on the machine where the script runs. That file should contain the list of client names you want to shut down. Instead of using a text file, you can modify this script to use ADSI, enabling it to query computer names from Active Directory or an NT domain. However, as you probably don’t want to run this script against every computer on your network (shutting down all of your servers might be bad), the text file provides you with complete control over which computers the script will affect.
Dim sUser, sPassword
'set remote credentials
sUser = "Administrator"sPassword = "password"
'open list of client names
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile("C:\clients.txt")
Do Until oTS.AtEndOfStream
'get next client name
sClient = oTS.ReadLine
'get WMI locator
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
'Connect to remote WMI
Set oConnection = oLocator.ConnectServer(sClient, "root\cimv2", sUser, sPassword)
'issue shutdown to OS ' 4 = force logoff ' 5 = force shutdown ' 6 = force rebooot ' 12 = force power off
Set oWindows = oConnection.ExecQuery("Select " & "Name From Win32_OperatingSystem")
For Each oSys In oWindows
oSys.Win32ShutDown(5)
Next
Loop
'close the text fileoTS.CloseWScript.Echo "All done!"
You should know a couple of things about this script. First, you need to have a text file named C:\Clients.txt on the machine where the script runs. That file should contain the list of client names you want to shut down. Instead of using a text file, you can modify this script to use ADSI, enabling it to query computer names from Active Directory or an NT domain. However, as you probably don’t want to run this script against every computer on your network (shutting down all of your servers might be bad), the text file provides you with complete control over which computers the script will affect.
Labels:
Code
Wednesday, August 24, 2005
Setting a User Account Expiration
Type type = usr.NativeObject.GetType();
Object adsNative = usr.NativeObject;
type.InvokeMember("AccountExpirationDate", BindingFlags.SetProperty, null, adsNative, new object[]{"21/01/2006"});
usr.CommitChanges();
Object adsNative = usr.NativeObject;
type.InvokeMember("AccountExpirationDate", BindingFlags.SetProperty, null, adsNative, new object[]{"21/01/2006"});
usr.CommitChanges();
Labels:
Code
Tuesday, August 16, 2005
Getting PHP to work with MySQL on IIS/W2k3
Make sure that the PHP directory is in the System PATH variable. Only version 5.1.5 works with 64bit W2K3.
Labels:
Code
Monday, July 25, 2005
Getting a .Net Compact Framework Form to cover full screen
The form must not have a menu or a control box. Set the WindowState to Maximized in the form load event. That's it.
Labels:
Code
Wednesday, July 13, 2005
Getting PHP MySQL to work on Fedora Core 3
The Php MySQl module is not installed by default on Fedora Core 3. Install the following RPM:
ftp://rpmfind.net/linux/fedora/core/updates/3/i386/php-mysql-4.3.11-2.6.i386.rpm
ftp://rpmfind.net/linux/fedora/core/updates/3/i386/php-mysql-4.3.11-2.6.i386.rpm
Importing GPG public keys on Fedora Core 3
# rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY*
Labels:
Code
Wednesday, June 8, 2005
VBScript to delete all files older than 2 months
const fldname = "c:\test"
set fso = createobject("scripting.filesystemobject")
set fldr = fso.getfolder(fldname)
set dttoday = date
set dt2monthsago = dateadd("m", -2, dttoday)
recurse fldr
sub recurse( byref fldr)
dim subfolders,files,folder,file
set subfolders = fldr.subfolders
set files = fldr.files
wscript.echo fldr.path
for each file in files
if file.datelastmodified < dt2monthsago then
wscript.echo "Deleting " & file.name & " last modified: " & file.datelastmodified
on error resume next
file.delete
end if
next
for each folder in subfolders
recurse folder
next
set subfolders = nothing
set files = nothing
end sub
set fso = createobject("scripting.filesystemobject")
set fldr = fso.getfolder(fldname)
set dttoday = date
set dt2monthsago = dateadd("m", -2, dttoday)
recurse fldr
sub recurse( byref fldr)
dim subfolders,files,folder,file
set subfolders = fldr.subfolders
set files = fldr.files
wscript.echo fldr.path
for each file in files
if file.datelastmodified < dt2monthsago then
wscript.echo "Deleting " & file.name & " last modified: " & file.datelastmodified
on error resume next
file.delete
end if
next
for each folder in subfolders
recurse folder
next
set subfolders = nothing
set files = nothing
end sub
Labels:
Code
Sunday, June 5, 2005
Getting PHP to work on IIS6 on Win2K3
Copy c:\php\php.ini-distrib to c:\windows\php.ini
In IIS, under 'Home Directory', click on the 'Configuration', 'Application Mappings' tab.
Click 'Add' and enter C:\php\php5isapi.dll for .php extensionGo back to IIS.
Add and allow the PHP ISAPI Extension to IIS Web Service Extensions: C:\PHP\php5isapi.dll Open IIS Manager
Click on "Web Service Extensions"
Add a new Web service extension...Enter "PHP ISAPI Extension" as the "Extension name" Click the "Add..." button and browse to the php5isapi.dll file in your PHP install directory Check the "Set extension status to Allowed" checkbox and click "OK"
In IIS, under 'Home Directory', click on the 'Configuration', 'Application Mappings' tab.
Click 'Add' and enter C:\php\php5isapi.dll for .php extensionGo back to IIS.
Add and allow the PHP ISAPI Extension to IIS Web Service Extensions: C:\PHP\php5isapi.dll Open IIS Manager
Click on "Web Service Extensions"
Add a new Web service extension...Enter "PHP ISAPI Extension" as the "Extension name" Click the "Add..." button and browse to the php5isapi.dll file in your PHP install directory Check the "Set extension status to Allowed" checkbox and click "OK"
Labels:
Code
Wednesday, June 1, 2005
Getting the virtual URL of a SharePoint web app script
Request.Url doesn't give you what it says on the browser Url box. You need to use the following:
string scriptUrl = Request.ServerVariables["HTTP_VTI_SCRIPT_NAME"];
string scriptUrl = Request.ServerVariables["HTTP_VTI_SCRIPT_NAME"];
Labels:
Code
Tuesday, May 31, 2005
Test for AlphaNumeric in C#
public bool IsAlphaNumeric(String str){
Regex regexAlphaNum=new Regex("[^a-zA-Z0-9]");
return !regexAlphaNum.IsMatch(str);
}
Regex regexAlphaNum=new Regex("[^a-zA-Z0-9]");
return !regexAlphaNum.IsMatch(str);
}
Friday, May 27, 2005
To create a Sharepoint web app with Visual Studio.Net
Map a drive (S:) to the sharepoint server at "C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\LAYOUTS".
Create a new project at http://sharepointserver/_layouts/WebAPP.
Visual Studio will fail. Change the path to S:\WebApp and retry.
Visual STudio will complain about permission problems and the need to create an application at the server. Just click okay all the way through.
Go to the sharepoint server. Start the IIS management applet, and browse to the WebApp folder just created. Right-click and select properties. Create an application. Select the Sharepoint application pool.
Restart IIS using iisreset.
Go back to Visual Studio and add reference to Microsoft.SharePoint.dll.
Within each code file, add the following:
using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;using Microsoft.SharePoint.Utilities;
Create a new project at http://sharepointserver/_layouts/WebAPP.
Visual Studio will fail. Change the path to S:\WebApp and retry.
Visual STudio will complain about permission problems and the need to create an application at the server. Just click okay all the way through.
Go to the sharepoint server. Start the IIS management applet, and browse to the WebApp folder just created. Right-click and select properties. Create an application. Select the Sharepoint application pool.
Restart IIS using iisreset.
Go back to Visual Studio and add reference to Microsoft.SharePoint.dll.
Within each code file, add the following:
using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;using Microsoft.SharePoint.Utilities;
Labels:
Code
Wednesday, May 25, 2005
T-Mobile GPRS UK Settings
Session Type Continuous/Permanent
Security Off
Gateway Address 149.254.001.010
Authentication Normal
Access Point Name general.t-mobile.uk
Port number 9201
Mail server (SMTP) smtp.t-email.co.uk
Username user
Password one2one
Home Page http://wap.t-mobile.co.uk/
http://www.t-zones.co.uk
Security Off
Gateway Address 149.254.001.010
Authentication Normal
Access Point Name general.t-mobile.uk
Port number 9201
Mail server (SMTP) smtp.t-email.co.uk
Username user
Password one2one
Home Page http://wap.t-mobile.co.uk/
http://www.t-zones.co.uk
Friday, May 6, 2005
Send mail in ASP.NET
MailMessage oMsg = new MailMessage();
oMsg.From = "me@MyServer.Net";
oMsg.To = "you@YourServer.Net";
oMsg.Cc = "him@HisServer.Net";
oMsg.Subject = "Test";oMsg.Body = "This is only a test";
oMsg.Attachments.Add(new MailAttachment("c:\temp\Test.txt"));
SmtpMail.Send(oMsg);
oMsg.From = "me@MyServer.Net";
oMsg.To = "you@YourServer.Net";
oMsg.Cc = "him@HisServer.Net";
oMsg.Subject = "Test";oMsg.Body = "This is only a test";
oMsg.Attachments.Add(new MailAttachment("c:\temp\Test.txt"));
SmtpMail.Send(oMsg);
Labels:
Code
Tuesday, April 19, 2005
.Net Remoting
Process currentProcess = Process.GetCurrentProcess(); Process [] duplicateProcesses = Process.GetProcessesByName(currentProcess.ProcessName); if (duplicateProcesses.Length == 1) { AssociateFileTypes(); TcpChannel chan = new TcpChannel(8420); ChannelServices.RegisterChannel(chan); RemotingConfiguration.RegisterWellKnownServiceType( System.Type.GetType("InteractiveLogBook.RemoteExecute, InteractiveLogBook"), "RemoteExecute", WellKnownObjectMode.SingleCall); } else { TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); RemoteExecute obj = (RemoteExecute) Activator.GetObject(typeof(RemoteExecute), "tcp://127.0.0.1:8420/RemoteExecute"); if (obj == null) MessageBox.Show("Could not locate running Interactive LogBook", "Error", MessageBoxButtons.OK,MessageBoxIcon.Error); else obj.ProcessArgs(args); return; } public class RemoteExecute : MarshalByRefObject { public RemoteExecute() { } public bool ProcessArgs(String[] Args) { InteractiveLogBook.FormILB.mainForm.ProcessCommandLine(Args); return true; } } |
Labels:
Code
Downloading a file from Sharepoint 2
// C#
public void DownloadDocument(string localFile,string remoteFile)
{
try
{
// Create the web request object
WebRequest request = WebRequest.Create(remoteFile);
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Method = "GET";
// Get a web response back
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream reader = response.GetResponseStream();
FileStream fstream = new FileStream(localFile, FileMode.OpenOrCreate, FileAccess.Write);
byte [] buffer = new byte[1024];
int bytesRead = 0;
do
{
bytesRead = reader.Read(buffer,0,1024);
fstream.Write(buffer,0,bytesRead);
} while(bytesRead >0);
response.Close();
fstream.Close();
}
catch(Exception ex)
{
MessageBox.Show(host.HostForm,ex.Message,"Error Downloading",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
public void DownloadDocument(string localFile,string remoteFile)
{
try
{
// Create the web request object
WebRequest request = WebRequest.Create(remoteFile);
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Method = "GET";
// Get a web response back
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream reader = response.GetResponseStream();
FileStream fstream = new FileStream(localFile, FileMode.OpenOrCreate, FileAccess.Write);
byte [] buffer = new byte[1024];
int bytesRead = 0;
do
{
bytesRead = reader.Read(buffer,0,1024);
fstream.Write(buffer,0,bytesRead);
} while(bytesRead >0);
response.Close();
fstream.Close();
}
catch(Exception ex)
{
MessageBox.Show(host.HostForm,ex.Message,"Error Downloading",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
Uploading a file to Sharepoint 2
//C#
public void UploadDocument(string localFile, string remoteFile)
{
// Read in the local file
FileStream fstream = new FileStream(localFile, FileMode.Open, FileAccess.Read);
byte [] buffer = new byte[fstream.Length];
fstream.Read(buffer, 0, Convert.ToInt32(fstream.Length));
fstream.Close();
try
{
// Create the web request object
WebRequest request = WebRequest.Create(remoteFile);
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Method = "PUT";
request.ContentLength = buffer.Length;
// Write the local file to the remote system
BinaryWriter writer = new BinaryWriter(request.GetRequestStream());
writer.Write(buffer, 0, buffer.Length);
writer.Close();
// Get a web response back
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
}
catch(Exception ex)
{
MessageBox.Show(host.HostForm,ex.Message,"Error Uploading");
}
}
public void UploadDocument(string localFile, string remoteFile)
{
// Read in the local file
FileStream fstream = new FileStream(localFile, FileMode.Open, FileAccess.Read);
byte [] buffer = new byte[fstream.Length];
fstream.Read(buffer, 0, Convert.ToInt32(fstream.Length));
fstream.Close();
try
{
// Create the web request object
WebRequest request = WebRequest.Create(remoteFile);
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Method = "PUT";
request.ContentLength = buffer.Length;
// Write the local file to the remote system
BinaryWriter writer = new BinaryWriter(request.GetRequestStream());
writer.Write(buffer, 0, buffer.Length);
writer.Close();
// Get a web response back
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
}
catch(Exception ex)
{
MessageBox.Show(host.HostForm,ex.Message,"Error Uploading");
}
}
Subscribe to:
Posts (Atom)