Trigger the handler
- 8月 09 週二 201618:17
HTML test
Trigger the handler
- 7月 14 週四 201615:33
程式開發 | Web | 用Google Chrome Console測試DOM語法 | 自動點擊按鈕
1. 開啟Google Chrome Console
打開Chrome -> 按F12 -> 選擇標籤[Console]
- 7月 14 週四 201611:34
重灌必備 | Google當掉? |真糟糕!Google Chrome 當掉了?

根據chorme的使用說明,有這麼一項
"「真糟糕!Google Chrome 當掉了﹗」 問題"
Google Chrome 意外關閉時會顯示此錯誤。
也列了一些解決方法,如下。
1.請嘗試重新啟動您的瀏覽器。
→無效,跳過
2.您是否安裝了 Internet Download Manager?
如果您安裝了 Internet Download Manager,請更新為 IDM 6.03 Beta 版 (僅提供英文
版),或是前往 [選項] > [一般],停用「進階瀏覽器整合」選項。
→沒安裝,跳過
3.檢查衝突的軟體。
您可以在網址列中輸入 about:conflicts(註:在chrome網址列下輸入),檢查 Windows
是否安裝了衝突的軟體。如果您安裝了會造成 Google Chrome 當機的軟體,則頁面中
會標示這些軟體,並提供解決衝突的建議操作。在許多情況下,造成衝突的軟體是惡意
軟體,需要使用防毒軟體將其移除。
→檢查過,似乎是沒有。
4.請確認您是否需要重新建立瀏覽器的使用者設定檔。
如果這個錯誤訊息一直出現,表示您的瀏覽器使用者設定檔可能已經毀損。首先,請試著
將「User Data」資料夾內的「Default」子資料夾移到別處,再看看問題是否已解決︰
hint:記得先把chrome關掉
一、輸入鍵盤快速鍵:Windows 鍵 + E 鍵,開啟 Windows Explorer。
在顯示的 Windows Explorer 視窗網址列中,輸入下列適用的目錄:
Windows
Windows XP:
%USERPROFILE%\Local Settings\Application Data\Google\Chrome\User Data\
Windows Vista/ Windows 7/ Windows 8:%LOCALAPPDATA%\Google\Chrome\User Data\
Mac OS X:~/Library/Application Support/Google/Chrome/Default
Linux:~/.config/google-chrome/Default
二、按一下 [確定]。
三、在開啟的視窗中,將「Default」資料夾重新命名為「 Backup」。
四、將「Backup」資料夾從「User Data」資料夾移到上一層的「Chrome」資料夾。
如果持續發生錯誤,請試著建立新的使用者設定檔來取代現有的設定檔。
→似乎有效,不過我是很乾脆的把Default資料夾砍了,根據google說法,每次開
都會重新建一個default資料夾。其實這個資料夾就是管你的書籤跟瀏覽紀錄etc.
重灌以後我就是做了這個步驟才不會一直當機。(不過書籤都要重弄就是了。)
5.檢查受保護的系統檔案是否出現問題。
依序按一下 [開始] 功能表 > [執行]。
輸入以下指令:SFC.EXE /SCANNOW (請務必在 SFC.EXE 和 /SCANNOW 之間保留一個空格)
。 上述指令會啟動 Microsoft 的檢測公用程式,並針對電腦上受保護的系統檔案進行掃
描,同時試圖修復問題。
請嘗試開啟 Google Chrome,看看錯誤訊息是否持續出現。
→這個步驟我也有實行,雖然不知道效果如何,但是檢查一下總是好的。
- 7月 13 週三 201608:15
程式開發| [VC/MFC] 讀寫ini檔案 | 儲存程式設定 | 多語系切換 | 小型資料庫
配置文件中經常用到ini文件,在VC中其函數分別為:
寫入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
讀取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
讀取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);
其中個參數的意思:
LPCTSTR lpAppName ------- INI文件中的一個字段名
LPCTSTR lpKeyName -------- lpAppName 下的一個鍵名,也就是裡面具體的變量名
LPCTSTR lpString ---------是鍵值,也就是變量的值, 必須為LPCTSTR或CString類型
LPCTSTR lpFileName --------完整的INI文件路徑名
LPCTSTR lpDefaut ----------如果沒有其前兩個參數值,則將此值賦給變量
LPSTR lpReturnedString --------接收INI文件中的值的CString對象,即接收緩衝區
DWORD nSize ------接收緩衝區的大小
例子:
CString StrName,Strtemp;
int nAge;
StrName = "jacky";
nAge = 13;
WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");
結果:(INI文件中顯示如下:)
[Student]
Name=jacky
讀取:
CString SName;
GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");
結果:SName = "jacky";這裡需要注意點就是用完GetBuffer函數後一定要釋放(用SName.ReleaseBuffer()函數),不然後面再用到SName的其他子函數就會失靈。
讀整數比較簡單,如下
int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即為所讀取的結果!
在GetPrivateProfileString最後一個參數是配置文件路徑的參數,此路徑只能是絕對路徑,不能是相對路徑,但現在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函數。
原代碼如下:
CString server_ip;
CString des="";
::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
des.ReleaseBuffer();
des+="\\config.ini";
GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);
server_ip.ReleaseBuffer();
注意:在這裡使用CString變量時,在使用完GetBuffer後,緊接著一定要使用ReleaseBuffer()函數,才可以進行其他的諸如字符串+操作
寫入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
讀取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
讀取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);
其中個參數的意思:
LPCTSTR lpAppName ------- INI文件中的一個字段名
LPCTSTR lpKeyName -------- lpAppName 下的一個鍵名,也就是裡面具體的變量名
LPCTSTR lpString ---------是鍵值,也就是變量的值, 必須為LPCTSTR或CString類型
LPCTSTR lpFileName --------完整的INI文件路徑名
LPCTSTR lpDefaut ----------如果沒有其前兩個參數值,則將此值賦給變量
LPSTR lpReturnedString --------接收INI文件中的值的CString對象,即接收緩衝區
DWORD nSize ------接收緩衝區的大小
例子:
CString StrName,Strtemp;
int nAge;
StrName = "jacky";
nAge = 13;
WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");
結果:(INI文件中顯示如下:)
[Student]
Name=jacky
讀取:
CString SName;
GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");
結果:SName = "jacky";這裡需要注意點就是用完GetBuffer函數後一定要釋放(用SName.ReleaseBuffer()函數),不然後面再用到SName的其他子函數就會失靈。
讀整數比較簡單,如下
int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即為所讀取的結果!
在GetPrivateProfileString最後一個參數是配置文件路徑的參數,此路徑只能是絕對路徑,不能是相對路徑,但現在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函數。
原代碼如下:
CString server_ip;
CString des="";
::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
des.ReleaseBuffer();
des+="\\config.ini";
GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);
server_ip.ReleaseBuffer();
注意:在這裡使用CString變量時,在使用完GetBuffer後,緊接著一定要使用ReleaseBuffer()函數,才可以進行其他的諸如字符串+操作
- 7月 12 週二 201614:04
程式開發 | [Linux][C] 使用 gettimeofday() 函式計算時間
一. gettimeofday()基本介紹
- 7月 12 週二 201613:19
程式開發 | C/C++ static 關鍵字用途
Static variable
A static variable inside a function keeps its value between invocations.
A static global variable or a function is "seen" only in the file it's declared in
A static variable inside a function keeps its value between invocations.
A static global variable or a function is "seen" only in the file it's declared in
- 3月 31 週四 201610:02
Ubuntu FTP SERVER 安裝設置( vsftp 版本 )
拷貝來源:http://blog.udn.com/nigerchen/2261345
FTP SERVER 架設 (vsftp 版)
如果你有看了前幾篇的教學或是有了基本的知識,到了這裡,你就不用太過於擔心,一定可以駕輕就熟。
如同安裝LAMP一樣,我們使用ubuntu預設的 apt-get 套件來做安裝。
sudo apt-get install vsftpd
過程中,它會問你是否要安裝,請你按Y即可。
安裝完成後,我們可以來查看是否安裝成功,可用下列指令。
netstat -tul | grep ftp
下列會顯示一行訊息,最後會有一個LISTEN,表示已運行待命中。
接下來,就可以使用FTP軟體來做連線的動作。若順利連上就表示完成了,你可以使用你ubuntu的權限來進行登入,也可以使用匿名來登入,此時,vsftp的設定尚未完全。
如何設定vsftp權限
一般設定檔案的副檔名都叫作 .conf 居多,因此,它的設定檔,所在位置是
sudo vim /etc/vsftpd.conf
打開後,記得要編輯時都要按 Insert 或是 i 才能編輯,否則會錯亂一陣。
以下是文件的內容:(如你的文件內與此文件內容不同或是缺少,可以新增在最下方,若不需要此功能可在前面加上#號,即不會啟動)
#接受匿名用戶
anonymous_enable=YES
#匿名用戶login時不詢問密碼
no_anon_password=YES
#接受本地用戶
local_enable=YES
#可以上傳(全局控制).若想要匿名用戶也可上傳則需要設置anon_upload_enable=YES,若想要匿名用戶可以建立目錄則需要anon_mkdir_write_enable=YES.這裡禁止匿名用戶上傳,所以不設置這兩項.
write_enable=YES
#本地用戶上傳文件的umask
local_umask=022
#使用上傳/下載日誌,日誌文件默認為/var/log/vsftpd.log,可以通過xferlog_file選項修改
xferlog_enable=YES
#日誌使用標準xferlog格式
xferlog_std_format=YES
#login時的歡迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#設置的話將覆蓋上面的ftpd_banner設置,用戶login時將顯示/etc/vsftpd/banner中的內容
banner_file=/etc/vsftpd/banner
#為YES則進入目錄時顯示此目錄下由message_file選項指定的文本文件(,默認為.message)的內容
dirmessage_enable=YES
#本地用戶login後所在目錄,若沒有設置此項,則本地用戶login後將在他的home目錄(/etc/passwd的第六個欄位)中.匿名用戶的對應選項是anon_root<
local_root=/var/ftp
#設置為YES則下面的控制有效
chroot_list_enable=YES
#若為NO,則記錄在chroot_list_file選項所指定的文件(默認是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄後所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這裡選擇YES.(管理員使用居多)
chroot_local_user=NO
#若設置為YES則記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES
#若為NO,則僅接受記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_deny=NO
#注意!!!vsftpd還要檢查/etc/vsftpd.ftpusers文件,記錄在這個文件中的用戶將無法login!!
#伺服器以standalong模式運行,這樣可以進行下面的控制
listen=YES
#匿名用戶的傳輸比率(b/s)
anon_max_rate=51200
#本地用戶的傳輸比率(b/s)
local_max_rate=512000
#可接受的最大client數目
max_clients=100
#每個ip的最大client數目
max_per_ip=5
connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=ftp
都改好了嗎?記得要重新啟動vsftp,才會生效
sudo /etc/init.d/vsftpd restart
記得每變更一次這個檔案,就要重啟一次,這樣子才會正常!!
------
補充:
一般我們會新增其他新的帳號來針對某些服務來做一些限制,像我在這裡新增了一個帳號是 www1 ,這個帳號就管理我的web server當然你也可以新增好幾個帳號,依照你所擁有的服務來創造管理的帳號。
那我們要怎麼限制這個帳號要控管哪個資料夾呢?
假設你已新增了一個帳號test,依照上面的設定,你的 chroot_local_user=NO,而且在/etc/vsftpd.chroot_list 也輸入了test這個帳號,那這個帳號將被限定在/home/test/,登入ftp後,將會無法回上一層,你的/home/test/被限定為根目錄,但是我的web server資料夾不是test,那怎麼做??
我們要修改帳號的初始路徑
sudo vim /etc/passwd
我們會看到下面的訊息(假設帳號為test)
test : x : 1001 : 1001 : test : /home/test : /bin/bash
^^^ ^^^ ^^^ ^^ ^^^^^^^
帳號 帳號id 群組id 群組名 家目錄位置
我們的目錄已改變在 /home/www/,那這個test帳號要管理web server 的資料夾,則可以把 /home/test/ 改成 /home/www/
家目錄的位置可以這樣修改,但是其餘的參數請勿在此修改,若導致帳號無法處理,我可無法負責。
我們可以看是否有修改成功,可以下這個指令
sudo grep test /etc/passwd
若出現
test : x : 1001 : 1001 : test : /home/www : /bin/bash
那就是修改正確,那就可以去你的ftp上面看是不是可以看到www裡的內容
FTP SERVER 架設 (vsftp 版)
如果你有看了前幾篇的教學或是有了基本的知識,到了這裡,你就不用太過於擔心,一定可以駕輕就熟。
如同安裝LAMP一樣,我們使用ubuntu預設的 apt-get 套件來做安裝。
sudo apt-get install vsftpd
過程中,它會問你是否要安裝,請你按Y即可。
安裝完成後,我們可以來查看是否安裝成功,可用下列指令。
netstat -tul | grep ftp
下列會顯示一行訊息,最後會有一個LISTEN,表示已運行待命中。
接下來,就可以使用FTP軟體來做連線的動作。若順利連上就表示完成了,你可以使用你ubuntu的權限來進行登入,也可以使用匿名來登入,此時,vsftp的設定尚未完全。
如何設定vsftp權限
一般設定檔案的副檔名都叫作 .conf 居多,因此,它的設定檔,所在位置是
sudo vim /etc/vsftpd.conf
打開後,記得要編輯時都要按 Insert 或是 i 才能編輯,否則會錯亂一陣。
以下是文件的內容:(如你的文件內與此文件內容不同或是缺少,可以新增在最下方,若不需要此功能可在前面加上#號,即不會啟動)
#接受匿名用戶
anonymous_enable=YES
#匿名用戶login時不詢問密碼
no_anon_password=YES
#接受本地用戶
local_enable=YES
#可以上傳(全局控制).若想要匿名用戶也可上傳則需要設置anon_upload_enable=YES,若想要匿名用戶可以建立目錄則需要anon_mkdir_write_enable=YES.這裡禁止匿名用戶上傳,所以不設置這兩項.
write_enable=YES
#本地用戶上傳文件的umask
local_umask=022
#使用上傳/下載日誌,日誌文件默認為/var/log/vsftpd.log,可以通過xferlog_file選項修改
xferlog_enable=YES
#日誌使用標準xferlog格式
xferlog_std_format=YES
#login時的歡迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#設置的話將覆蓋上面的ftpd_banner設置,用戶login時將顯示/etc/vsftpd/banner中的內容
banner_file=/etc/vsftpd/banner
#為YES則進入目錄時顯示此目錄下由message_file選項指定的文本文件(,默認為.message)的內容
dirmessage_enable=YES
#本地用戶login後所在目錄,若沒有設置此項,則本地用戶login後將在他的home目錄(/etc/passwd的第六個欄位)中.匿名用戶的對應選項是anon_root<
local_root=/var/ftp
#設置為YES則下面的控制有效
chroot_list_enable=YES
#若為NO,則記錄在chroot_list_file選項所指定的文件(默認是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄後所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這裡選擇YES.(管理員使用居多)
chroot_local_user=NO
#若設置為YES則記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES
#若為NO,則僅接受記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_deny=NO
#注意!!!vsftpd還要檢查/etc/vsftpd.ftpusers文件,記錄在這個文件中的用戶將無法login!!
#伺服器以standalong模式運行,這樣可以進行下面的控制
listen=YES
#匿名用戶的傳輸比率(b/s)
anon_max_rate=51200
#本地用戶的傳輸比率(b/s)
local_max_rate=512000
#可接受的最大client數目
max_clients=100
#每個ip的最大client數目
max_per_ip=5
connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=ftp
都改好了嗎?記得要重新啟動vsftp,才會生效
sudo /etc/init.d/vsftpd restart
記得每變更一次這個檔案,就要重啟一次,這樣子才會正常!!
------
補充:
一般我們會新增其他新的帳號來針對某些服務來做一些限制,像我在這裡新增了一個帳號是 www1 ,這個帳號就管理我的web server當然你也可以新增好幾個帳號,依照你所擁有的服務來創造管理的帳號。
那我們要怎麼限制這個帳號要控管哪個資料夾呢?
假設你已新增了一個帳號test,依照上面的設定,你的 chroot_local_user=NO,而且在/etc/vsftpd.chroot_list 也輸入了test這個帳號,那這個帳號將被限定在/home/test/,登入ftp後,將會無法回上一層,你的/home/test/被限定為根目錄,但是我的web server資料夾不是test,那怎麼做??
我們要修改帳號的初始路徑
sudo vim /etc/passwd
我們會看到下面的訊息(假設帳號為test)
test : x : 1001 : 1001 : test : /home/test : /bin/bash
^^^ ^^^ ^^^ ^^ ^^^^^^^
帳號 帳號id 群組id 群組名 家目錄位置
我們的目錄已改變在 /home/www/,那這個test帳號要管理web server 的資料夾,則可以把 /home/test/ 改成 /home/www/
家目錄的位置可以這樣修改,但是其餘的參數請勿在此修改,若導致帳號無法處理,我可無法負責。
我們可以看是否有修改成功,可以下這個指令
sudo grep test /etc/passwd
若出現
test : x : 1001 : 1001 : test : /home/www : /bin/bash
那就是修改正確,那就可以去你的ftp上面看是不是可以看到www裡的內容
- 12月 08 週二 201513:40
免費軟體 | Daemon Sync | 超簡單搭建私有雲 | 全自動同步備份手機照片影片到電腦
如今手機照片/影片自動備份同步工具的雲端硬碟服務有很多,
但照片影片都是隱私,很多人並不希望把它們放到網上去 ,
但照片影片都是隱私,很多人並不希望把它們放到網上去 ,
- 12月 08 週二 201513:31
NoSleep | 近期新增 2015.12
- 12月 02 週三 201515:53
免費軟體 | QuickMark | 線上製作QR code | 簡單動作完成網路名片

軟體網頁:點此進入