Posts

Showing posts from 2011

Active Directory - Change Password

Imports System.DirectoryServices Partial Class _Default     Inherits System.Web.UI.Page     Private Sub ChangeUserADPassword(ByVal Username As String, ByVal Password As String, ByVal newPwd As String)         Dim dcDNS As String = "rockworth.local"         Dim rootDN As String         Dim rootDSE As DirectoryEntry         Dim searchRoot As DirectoryEntry         Dim userEntry As DirectoryEntry         Dim searcher As DirectorySearcher         Dim results As SearchResultCollection         Dim result As SearchResult         Dim oldPassword As String = Password         Dim newPassword As String = newPwd         Try             result = Nothing             rootDSE = New DirectoryEntry(String.Format("LDAP://{0}/rootDSE",dcDNS), Username, oldPassword, AuthenticationTypes.Secure Or AuthenticationTypes.Sealing Or AuthenticationTypes.ServerBind)             rootDN = DirectCast(rootDSE.Properties("defaultNamingContext").Value, String)        

asp:Menu Control on Chrome

     ถ้ามีการใช้งาน Browser ที่เป็น Google Chrome และมีการใช้งาน Menu Control จะทำให้แสดงผลที่ไม่ถูกต้อง ดังนั้นมีวิธีการแก้ไขโดยการเพิ่ม Code ดังนี้ (Visual Studio 2010) Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init         If Not IsPostBack Then             If (Request.UserAgent.IndexOf("AppleWebKit") > 0) OrElse (Request.UserAgent.IndexOf("Safari") > 0) OrElse (Request.UserAgent.IndexOf("Chrome") > 0) Then                 Request.Browser.Adapters.Clear()             End If         End If     End Sub

Recursive for Microsoft SQL Server 7.0

1. Create Table for Test CREATE TABLE dbo.Emp ( EmpID int PRIMARY KEY, EmpName varchar(30), MgrID int FOREIGN KEY REFERENCES Emp(EmpID) ) GO 2. Create Index CREATE NONCLUSTERED INDEX NC_NU_Emp_MgrID ON dbo.Emp(MgrID) GO 3. Insert Sample Data INSERT dbo.Emp SELECT 1, 'President', NULL INSERT dbo.Emp SELECT 2, 'Vice President', 1 INSERT dbo.Emp SELECT 3, 'CEO', 2 INSERT dbo.Emp SELECT 4, 'CTO', 2 INSERT dbo.Emp SELECT 5, 'Group Project Manager', 4 INSERT dbo.Emp SELECT 6, 'Project Manager 1', 5 INSERT dbo.Emp SELECT 7, 'Project Manager 2', 5 INSERT dbo.Emp SELECT 8, 'Team Leader 1', 6 INSERT dbo.Emp SELECT 9, 'Software Engineer 1', 8 INSERT dbo.Emp SELECT 10, 'Software Engineer 2', 8 INSERT dbo.Emp SELECT 11, 'Test Lead 1', 6 INSERT dbo.Emp SELECT 12, 'Tester 1', 11 INSERT dbo.Emp SELECT 13, 'Tester 2', 11 INSERT dbo.Emp SELECT 14, 'Team Leader 2',

Deadlock Solution

ให้ทำการ Run ใน Query Analyzer ไปเรื่อยๆจนกว่าจะไม่เจอ 'Remaining Blockers' และ Victim Count=0 use master go  select getdate() go -- Report on blocking spids to be terminated. select blocked as "Blocker"  ,count(*) as "Victim Count"  from master..sysprocesses  where blocked > 0  group by blocked go DECLARE @blocker varchar(75) DECLARE blocker_cursor CURSOR FOR select distinct blocked from sysprocesses where blocked !=0 OPEN blocker_cursor FETCH NEXT FROM blocker_cursor INTO @blocker WHILE (@@fetch_status <> -1) BEGIN    IF (@@fetch_status = -2)       BEGIN          FETCH NEXT FROM blocker_cursor INTO @blocker          CONTINUE       END    -- Only kill process if it is the leader and more than 5 seconds old.    IF @blocker not in (select spid from sysprocesses where blocked != 0)  AND (select datediff(ss,last_batch,getdate()) FROM sysprocesses where blocked = @blocker) > 5        BEGIN          print 'killing hea

Convert Visual Studio 2005 to Visual Studio 2010 for Crystal Report

Solution >> 1. Open solution (create by visual studio 2005) on visual studio 2010 for Convert environment to visual studio 2010 2. Copy web.config from another project, create by visual studio 2010 crystal report project 3. Crystal Report (.rpt file) update database connection from "SQL Native Client" to "Microsoft OLEDB for SQL Server"

Send Mail by GMail

1. โหลดไฟล์ php class ที่ชื่อว่า phpmailer ก่อน 2. เปิดใช้งาน openssl โดยการ เอาเครื่องหมาย ; หน้า extension=php_openssl.dll จาก php.ini ออก และ Save แล้ว restart Apache 3.ตัวอย่าง code <?php require(“class.phpmailer.php”); require(“class.smtp.php”); $mail=new PHPMailer(); $mail->IsSMTP(); $mail->IsHTML(true); $mail->SMTPAuth = true; $mail->SMTPSecure = “ssl”; $mail->Host = “smtp.gmail.com”; $mail->Port = 465; $mail->Username = “username@gmail.com“; $mail->Password = “password“; $mail->From = “username@gmail.com“; $mail->FromName = “Sender Name“; $mail->Subject = “This is a testing subject from gmail“; $mail->Body = “Hi,This is testing <b>HTML</b> message.”; $mail->AddAddress(“your-friend@domain.com“,”your-friend@domain.com“); if(!$mail->Send()) { echo “Mailer Error: ” . $mail->ErrorInfo; } else { echo “Message has been sent”; } ?> Credit 1 Credit 2 Download PHPMailer

Microsoft Security Essentials (MSE) ติดตั้งแล้ว Validation ไม่ผ่าน

1. ไปที่เมนู Start > Run แล้วพิมพ์ %WINDIR%\system32\drivers\etc 2. เปิดไฟล์ที่ชื่อว่า host แล้วเพิ่มข้อความด้านล่างต่อท้าย      127.0.1.1 spynettest.microsoft.com      127.0.1.1 spynet2.microsoft.com      127.0.1.1 mpa.one.microsoft.com  3. ไปที่เมนู Start > Run แล้วพิมพ์ "%ALLUSERSPROFILE%\Application Data\Windows Genuine Advantage\Data" ลบไฟล์ที่ชื่อว่า data.dat 4. Restart เครื่องแล้วตัว MSE ก็สามารถใช้งานได้ตามปกติแล้ว

วิธีแก้ Windows XP ให้เป็นของแท้

1. ไปที่เมนู Start > Run แล้วพิมพ์ regedit แล้วเข้าไปที่ HKey_Local_Machine\Software\Microsoft\WindowsNT\Current Version\WPAEvents ทางด้านขวาให้เลือกที่ OOBETimer แล้วคลิ๊กขวาเลือก Modify ลบข้อมูลออกให้หมด จะเหลือเพียง 0000 เท่านั้น 2. จากนั้นพิมพ์ %systemroot%\system32\oobe\msoobe.exe /a ที่ Start > Run จะปรากฎหน้าต่างของ Activate Windows ขึ้นมา ให้เลือก Yes, I want to telephone a customer service representative ti activate Windows แล้วกด Next 3. ให้เลือก Change Product Key 4. ใส่ Product Key :: B3P7V-Q2WTH-CRK4R-YHJRF-39H4M แล้วกด Update แล้วปิดหน้าต่างนี้ไป 5. Restart เครื่องหนึ่งครั้ง แล้วพิมพ์ %systemroot%\system32\oobe\msoobe.exe /a ถ้าทำทั้ง 4 ข้อข้างต้นผ่านจะปรากฎหน้าต่าง Windows is already activated 

Clear cache of DHCP Server

   ไม่แน่ใจว่าเคยเจอปัญหานี้กันบ้างหรือเปล่า ที่เครื่องที่ทำหน้าที่แจก IP หรือที่เรียกว่า DHCP นั่นแหละ หลังจากที่เครื่อง Client ได้ IP ไปแล้วจะมีเวลากำหนดอยู่ว่า IP ดังกล่าวจะอยู่ำกี่วัน กี่ชั่วโมง     แต่ถ้าเกิดมีการแก้ไขค่าใน DHCP อาทิเช่น เปลี่ยน Range ของ IP ใหม่ แต่ปัญหาที่เกิดขึ้นคือ เครื่อง Client ยังไม่ได้ IP ใหม่ยังคงจำ IP เก่้าที่เคยได้อยู่ ดังนั้นเรามีวิธีการเคลียร์ค่าต่างๆตรงนี้ โดยวิธีการดังนี้ 1. เข้าไปที่ Command Prompt 2. พิมพ์ ipconfig /flushdns เพื่อบอกให้ Client ทำการเคลยร์ค่า DNS ต่างๆที่เคยจำเอาไว้ 3. พิมพ์ ipconfig /release เพื่อบอกให้ Client ทำการลืมค่า IP ที่เคยได้รับจาก DHCP ไป 4. พิมพ์ ipconfig /renew เพื่อบอกให้ Client ทำการรับ IP ใหม่จาก DHCP Server    ดังนั้น หลังจากที่เราทำทั้ง 4 ขั้นตอนแล้่วจะได้ว่าเครื่อง Client จะได้ IP ชุดใหม่ *** หมายเหตุ แต่บางครั้งเคยเจอปัญหาว่าได้ IP ชุดใหม่แล้ว แต่ค่า Routing Table ยังไม่เปลี่ยนไป วิธีการที่ง่ายแล้วทำได้คือ ลอง Manual IP ชุดใหม่ที่ว่างๆสัก 1 เบอร์ลงไปเพื่อให้ Client ทำการสร้าง Routing Table

ติดตั้ง XAMPP

ติดตั้ง XAMPP เป็นโปรแกรมที่รวบรวมหลายๆอย่างเข้าด้วยกัน เช่น Apache, MySQL, PHP และอื่นๆ 1.เข้าเว็บ http://www.apachefriends.org/en/xampp.html ดูเวอร์ชั่นล่าสุด 2.เข้าเทอร์มินัล    โปรแกรม ->เครื่องมือเครื่องใช้->เทอร์มินัล    sudo -i    (รหัสผ่าน)   #จะไม่ปรากฎตัวอักษร พิมพ์เสร็จกด ↵     sudo mkdir xampp    cd xampp    wget          http://downloads.sourceforge.net/xampp/xampp-linux-1.7.3a.tar.gz    tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt    cd /opt/lampp    sudo ./lampp start    จะมีข้อความแสดงการstart ของ apache,MySQL 3.ทดสอบการใช้ เปิดเบราเซอร์ พิมพ์ http://localhost จะขึ้น โลโก้ XAMPP ที่ด้านล่างจะมีรายการเลือกภาษา ให้เลือกภาษาอังกฤษ จะแสดงหน้าต่างหลักขึ้นมา 4.ที่หน้าต่างหลัก เลือก phpmyadmin จะขึ้นหน้าต่าง phpmyadmin ถ้าเป็นภาษาอังกฤษ เลื่อนไปที่ Language เลือกภาษาไทย แล้วหน้าต่างนี้จะเปลี่ยนเป็นภาษาไทย 5.กลับสู่หน้าต่าง XAMPP เลือกเมนูด้านซ้าย Securityจะมีคำเตือนเรื่องความปลอดภัย 6.การตั้งค่าเพิ่มระบบความปลอดภัย      เปิดเทอร์มินัล    sudo -i    cd /op

SqlDataSource Control

Q1. การใส่ค่า Sql Command เพื่อดึงข้อมูลขึ้นมา A1. sqldatasource.selectcommand = "select * from table" Q2. การเคลียร์ค่าข้อมูลที่ใส่ Sql Command ไปแล้ว A2. sqldatasource.selectcommand = nothing

TIPs of VB Scripts

- Run Exe Intro = msgbox("Auto Patch Update", vbyesno+vbquestion ,"Auto Patch Update") if Intro = VByes then   set shell=createobject("wscript.shell")   shell.run "C:\WINDOWS\system32\calc.exe"   set shell=nothing else   msgbox "No Open Calc" end if - Hide Batch Windows shell.run "t.bat",[intWindowStyle], [bWaitOnReturn] intWindowStyle = 0 is hide windows command, 1 is show windows command bWaitOnReturn = true is wait command finished and run next statement, false is run no waiting (default) - AutoClose Popup Dim ShellObj, BtnCode Set ShellObj=CreateObject("WScript.Shell") BtnCode=ShellObj.Popup("Patch Auto Update?", 10, "Server Message",  36) Select Case BtnCode Case -1 rem -1 = timeout MsgBox "Timeout" Case 6 rem 6 = Yes MsgBox " Yes " Case 7 rem 7 = No MsgBox " NO " End Select

Ghost Boot USB

การทำให้ USB Flash Drive ของเราสามารถ Boot ได้และยังสามารถใช้งาน Ghost ได้ด้วย ข้อดี :: ไม่ต้องมี CD Drive ก็สามารถ Clone ได้ สะดวก รวดเร็ว ขั้นตอนการติดตั้งดังนี้ 1. [  Download  ] แตกไฟล์และทำการ Run ไฟล์ทีี่่ชื่อว่า usb_format.exe 2. [  Download  ] เลือกหัวข้อ Create a DOS Bootable Disk และ Browse หา Folder ที่ได้จากการแตกไฟล์ 3. [ Download  ] Copy ไฟล์ Ghost.exe ไปไว้ที่ Flash Drive ที่ผ่าน 2 ข้อข้างต้นมาแล้ว

Send Mail by Gmail

การเขียนโปรแกรมส่งเมลล์ให้มีความน่าเชื่อถือมากยิ่งขึ้น กรณีที่ไม่มี SMTP ใช้เป็นของตัวเองก็สามารถใช้งาน SMTP ของ GMAIL ไปใช้งานได้ Imports System.Net.Mail Imports System.Net.Mail.MailMessage Imports System.Net.NetworkCredential Partial Class _Default     Inherits System.Web.UI.Page         Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load         Dim mail As New MailMessage()         Dim msgBody As String = ""         Dim smtp As New SmtpClient         mail.From = New MailAddress("prompratan@gmail.com", "Display-Name")         mail.To.Add("mymail@aaa.com")         mail.Subject = "Subject"         mail.Body = "msgBody"         mail.IsBodyHtml = True ' This is to enable HTML in your email body         smtp.Host = "smtp.gmail.com"         smtp.Port = 25         smtp.EnableSsl = True         smtp.Credentials = New System.Net.NetworkCredential("use

GridView : OnMouseOver, OnMouseOut

aspx.vb -- GridView_RowDataBound Protected Sub gv_Series_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_Series.RowDataBound   If (e.Row.RowType = DataControlRowType.DataRow) Then     e.Row.Attributes.Add("OnMouseOver", "javascript:setMouseOverColor(this);")     e.Row.Attributes.Add("OnMouseOut", "javascript:setMouseOutColor(this);")   End If End Sub aspx -- JavaScript var oldgridSelectedColor; function setMouseOverColor(element) {   oldgridSelectedColor = element.style.backgroundColor;   element.style.backgroundColor = 'yellow'; } function setMouseOutColor(element) {   element.style.backgroundColor = oldgridSelectedColor; }

Tip!!! อ้างอิง Rows ใน GridView จาก Event of TemplateField

สาเหตุ... จากข้อมูลใน GridView ที่มี TemplateField เป็น Checkbox และต้องการติ๊ก Checkbox เพื่อต้องการ Summary ยอดเงินรวมแสดงให้ผู้ใช้งานเห็น วิธีการเขียนโปรแกรม... จากวิธีการเดิมๆคือใช้วิธีการวนลูปเพื่อเช็คว่า Checkbox ไหนมีการติ๊กให้ทำการรวมค่าเพื่อแสดงข้อมูล แต่ปัจจุบันมีวิธีการใหม่มานำเสนอคือ Protected Sub chk_CheckedChanged( ByVal sender As Object , ByVal e As System.EventArgs)      Dim chk As CheckBox = CType(sender, CheckBox)   Dim dg_row As GridViewRow = CType(chk.NamingContainer, GridViewRow)   Dim dg_row_index As Integer = dg_row.RowIndex   lbl_SumTotal.Text = gv.Rows(dg_row_index).Cells(7).Text End Sub

Excel (.xls) Sheet To DataSet

1. Import NameSpace Imports System.Data Imports System.Data.Oledb 2. Development Dim myDataset As New DataSet() ''You can also use the Excel ODBC driver I believe - didn''t try though Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=D:\MyXls\MyExcelDB.xls;" & _ "Extended Properties=""Excel 8.0;""" ''You must use the $ after the object you reference in the spreadsheet (## Table Name is ExcelTest ##) Dim myData As New OledbDataAdapter("SELECT * FROM [Sheet1$]", strConn) myData.TableMappings.Add("Table", "ExcelTest") myData.Fill(myDataset) DataGrid1.DataSource = myDataset.Tables(0).DefaultView DataGrid1.DataBind()

Command anything.

Check Bandwidth telnet [ip router] #username and password #sh int [interface=s0/0,f0/0] Edit Configuration #en #password แสดง IP Route #show ip route Show QOS Policy #show policy-map interface Show Access-List #show access-lists Add New Access-list #en #conf t #access-list 101 permit ip host 10.10.10.9 any #access-list 101 permit ip any host 10.10.20.9 #access-list 101 permit tcp host 10.10.10.8 eq ftp any Delete Access-list #en #conf t #no access-list 101 Show cache flow #show ip cache flow include 10.10.10.9 Update Bandwidth priority of policy-map #conf t #policy-map QOS #class FAX #priority 64

การใช้งาน Convert หรือ Cast

– Microsoft SQL Server T-SQL date and datetime formats – Date time formats – mssql datetime  – MSSQL getdate returns current system date and time in standard internal format SELECT   convert ( varchar ,   getdate (),  100 )   – mon dd yyyy hh:mmAM (or PM)                                          – Oct  2 2008 11:01AM           SELECT   convert ( varchar ,   getdate (),  101 )   – mm/dd/yyyy  -  10/02/2008                   SELECT   convert ( varchar ,   getdate (),  102 )   – yyyy.mm.dd – 2008.10.02            SELECT   convert ( varchar ,   getdate (),  103 )   – dd/mm/yyyy SELECT   convert ( varchar ,   getdate (),  104 )   – dd.mm.yyyy SELECT   convert ( varchar ,   getdate (),  105 )   – dd-mm-yyyy SELECT   convert ( varchar ,   getdate (),  106 )   – dd mon yyyy SELECT   convert ( varchar ,   getdate (),  107 )   – mon dd, yyyy SELECT   convert ( varchar ,   getdate (),  108 )   – hh:mm:ss SELECT   convert ( varchar ,   getdate (),  109 )   – mon dd yyyy

การคำนวณหามูลค่าก่อนรวม Vat

มูลค่าสินค้าซื้อมารวม Vat แล้ว 250 บาท อยากทราบว่ามูลค่าก่อนรวม Vat จะได้เท่ากับ (250*100)/107 = 233.6449 บาท ถ้าคิดกลับไป 233.6449 * 7/100 จะได้ 250.000043 บาท ก็คือ 250 บาท นั่นเอง

Microsoft SQL 2005 :: SendMail

1. ไปที่ Microsoft SQL Server Management Studio แล้วทำการสร้าง Database Mail Profile ก่อน เข้าที่เมนู Management >> Database Mail 2. หลังจากที่สร้าง Database Mail Profile เป็นที่เรียบร้อยแล้ว ก็สามารถใช้งานส่งเมลล์ผ่าน SQL Query ได้ทันทีครับ โดยที่มีตัวอย่างดังนี้ EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQLDB-Mail', @recipients = 'prompratan@gmail.com', --@copy_recipients = @email_cc, --@blind_copy_recipients = @email_bc, @subject = 'test', @body = 'test', @body_format = 'HTML'

Regular Expression

Q.1 ตรวจสอบวันที่ในรูปแบบ Format YYYY-MM-DD A.1 \d{4}-\d{2}-\d{2}

Activity Monitor :: View Query

การตรวจสอบดูข้อมูลการ Run Query บน Microsoft SQL Server [Activity Monitor] DBCC InputBuffer(96)

Squid Problem :: Squid service fail.

พอดีผมพึ่งเจออยุ่ดีๆ Squid เสียครับ อาการก็คือ เน็ตเข้าไม่ได้ สั่ง restart squid fail สั่ง stop squid ก็ไม่ได้ วิธีแก้ จริงๆผมก็หาจากในเวปนี้แหละครับ แต่อยากสรุปให้ เผื่อมีใครเจอเหมือนผม 1.ให้ลบ Squid ของเดิมออกก่อน เข้า Putty--> apt-get remove squid 2.ทดสอบดูว่า Squid ถูกลบออกแล้วหรือยัง --> squid -v 3.ให้ติดตั้ง squid ใหม่ --> apt-get install squid มันจะทำการติดตั้ง squid 2.5 ให้ 4.เมื่อติดตั้งเสร็จก็ลองเช็คดู-->squid -v มันจะบอกว่าเป็น v.2.5 5.ใช้คำสั่ง --> apt-get install cc-squid ตัวนี้เป็นการติดตั้งเมนู wep prox เนื่องจากตอนที่เรา remove squid มันจะลบ menu ตัวนี้ด้วย 6.จากนั้ก็ติดตั้ง squid 2.6 และ 2.7 ตามลำดับครับ Credit :: one_kk2006@linuxthai.org

Setup ClearOS 5.2 for Internetcafe

Install ClearOS and choose Service "WebProxy" only. Download file and send to ClearOS Server [Download here] squid_SEVEN_bysiamcafedotnet.tar.gz By MR.BOM@SiamCaFe.net frox_addons_clarkconnect-1.4.tar.gz TFFroxTornadoV5.5.gz By Mr.X and Alexa@truefaster checkwan.sh  By golfberserk@Internetcafe.in.th Install Squid Check version squid  #squid -v If squid 2.6 or 2.7 else 2.5 install squid2.6 first #service squid stop #tar -zxvf squid_SEVEN_bysiamcafedotnet.tar.gz #cd squid_SEVEN_bysiamcafedotnet #./install copy squid.conf to /etc/squid  #service squid restart Install Frox #tar -zxvf frox_addons_clarkconnect-1.4.tar.gz #cd frox_addons_clarkconnect-1.4 #./install #tar -zxvf TFFroxTornadoV5.5.gz #cd TFFroxTornadoV5.5 #./install Install Firewall #copy rc.firewall.local ไปไว้ที่ /etc/rc.d #service firewall restart Install Checkwan Copy to /usr/local/sbin/  Change Permission to 777 Use by #checkwan.sh [ip address] Install no-ip #wge