Archive
ASP.NET Crash on “OnBubbleEvent”
Capturing a webcam to an AVI file
SendMessage(lwndC, WM_CAP_FILE_SAVEDIB, 0&, filename)
End Sub
Where WM_CAP_FILE_SAVEDIB is defined as WM_USER+25
– It also requires an overloaded SendMessage declaration, which accepts a string as it’s final parameter.
I then found some CS code which converts BMP files to AVI (http://midget3d.com/gabe/AviLib.zip)
then used this to write bitmaps to disk, and build them into an AVI
saveFileDialog.Filter="*.avi|*.avi";
saveFileDialog.ShowDialog();
string strAVI = saveFileDialog.FileName;
string strBMP = saveFileDialog.FileName.Replace(".avi",".bmp");
AviWriter aviWriter =
new AviWriter(strAVI, AviCompression.None, 24, 320, 240);
isRecording =
true;
while(isRecording)
{
webcamControl1.SaveBitmap(strBMP);
aviWriter.WriteFrame(
new Bitmap(strBMP));
Application.DoEvents();
}
aviWriter.Close();
Compress an AVI movie using C#
private
bool ConvertToQuickTime(AxQTOControlLib.AxQTControl Control,string fromFileName,string toFileName){
this.axQTControl1.URL = fromFileName; if (!axQTControl1.Movie.CanExport) return false;QTOLibrary.QTQuickTime qt;
qt = axQTControl1.QuickTime;
if (qt.Exporters.Count == 0) qt.Exporters.Add();QTOLibrary.QTExporter exp;
exp = qt.Exporters[1];
// Set exporter type: AVI, 3G, MPEG-4, PNG, etc.exp.TypeName = "QuickTime Movie";
exp.SetDataSource(axQTControl1.Movie);
exp.DestinationFileName = toFileName;
exp.ShowProgressDialog =
true;exp.BeginExport();
return true;}
Converting a DataTable to a Hashtable
private
Hashtable convertDataTableToHashTable(DataTable dtIn,string keyField,string valueField){
Hashtable htOut =
new Hashtable(); foreach(DataRow drIn in dtIn.Rows){
htOut.Add(drIn[keyField].ToString(),drIn[valueField].ToString());
}
return htOut;}
Parsing WindJet routes
private
string GetWindJetRoutes(string HTML){
string outRoutes = ""; // Step 1. Delete between FL_Departure> and /SELECT string strOutboundRoutes = DeleteBetween(HTML,"FL_Departure>","/SELECT");MatchCollection mcDepIata = Regex.Matches(strOutboundRoutes,"value=(?<FromIata>[A-Z]{3})");
// Step 2. extract ToIata Array string strRegex = @"arrayVoli[(?<IDFrom>d+)][(?<IDTo>d+)]=new.Option(‘w.*'(?<ToIata>w{3})";MatchCollection mcDestIata = Regex.Matches(HTML,strRegex);
for(int iMatch=0;iMatch<mcDestIata.Count;iMatch++){
int intIDFrom = Convert.ToInt32(mcDestIata[iMatch].Groups["IDFrom"].Value); string strFromIata = mcDepIata[intIDFrom-1].Groups["FromIata"].Value; string strToIata = mcDestIata[iMatch].Groups["ToIata"].Value;outRoutes += "’" + strFromIata + "’,’" + strToIata + "’rn";
}
return outRoutes;}
Might be of interest to someone out there…. (or if not, my own personal reference)
Sage Data Objects for .NET
Interop.SageDataObject111.SageDataObjects sdo =
new Interop.SageDataObject111.SageDataObjects();Interop.SageDataObject111.WorkSpace wsStock;
Interop.SageDataObject111.StockRecord srStock;
wsStock = sdo.GetWorkSpace();
string strACCData = @"C:Program FilesSageAccountsACCDATA";wsStock.Connect(strACCData, "MANAGER", "", "ThisIsUnique");
srStock = (StockRecord)wsStock.CreateObject("StockRecord");
srStock.MoveFirst();
object objDescription = (object)"DESCRIPTION"; string strDescription = srStock.Fields.Item(ref objDescription).Value.ToString();MessageBox.Show(strDescription);
wsStock.Disconnect();
Object model is still quite messy. Going to try to clean that up, and put some decent help files together.
Making a server-side click work when Javascript is disabled
public
static void MakeNoJSSafe(LinkButton lb,string alternativeURL){
string strJSLink = "javascript:__doPostBack(‘" + lb.ClientID + "’,”)";lb.Attributes.Add("onClick",strJSLink + ";this.href=’#’");
lb.Attributes["href"] = alternativeURL;
return;}
For me, an hour of trial-and-error, for you, a minutes cut & paste.
Please credit me, if you use this script.
Internet Voicemail service set live
Extract email address with SQL UDF
RETURNS @Results TABLE (Items nvarchar(4000))
AS
DECLARE @INDEX INT
DECLARE @SLICE nvarchar(4000)
— HAVE TO SET TO 1 SO IT DOESNT EQUAL Z
— ERO FIRST TIME IN LOOP
SELECT @INDEX = 1
— following line added 10/06/04 as null
— values cause issues
IF @String IS NULL RETURN
WHILE @INDEX !=0
— GET THE INDEX OF THE FIRST OCCURENCE OF THE SPLIT CHARACTER
SELECT @INDEX = CHARINDEX(@Delimiter,@STRING)
— NOW PUSH EVERYTHING TO THE LEFT OF IT INTO THE SLICE VARIABLE
IF @INDEX !=0
SELECT @SLICE = LEFT(@STRING,@INDEX – 1)
ELSE
SELECT @SLICE = @STRING
— PUT THE ITEM INTO THE RESULTS SET
INSERT INTO @Results(Items) VALUES(@SLICE)
— CHOP THE ITEM REMOVED OFF THE MAIN STRING
SELECT @STRING = RIGHT(@STRING,LEN(@STRING) – @INDEX)
— BREAK OUT IF WE ARE DONE
IF LEN(@STRING) = 0 BREAK
END
RETURN
END
( @TextContainingEmail varchar(1000) )
RETURNS varchar(1000)
AS
BEGIN
declare @retval varchar(1000)
select top 1 @retval=items from dbo.split(@TextContainingEmail,’ ‘)
where items like ‘%@%’
return @retval
END