將滑鼠指向要執行的程式, 先按住 shift 鍵後, 再按滑鼠右鍵, 就會出現該功能選項(以不同使用者身分執行)
記得要執行該程式的使用者先設定好密碼
2010年12月17日 星期五
使用 php winbinder 寫一個計算檔案的 MD5 碼
< ?php
include "winbinder.php";
define("IDC_STATUSWIN", 101);
define("IDC_TEXTWIN", 102);
define("ID_OPEN" , 201);
define("ID_CLOSE", 202);
function process_main($window, $id)
{
switch($id) {
case ID_OPEN:
$filename = wb_sys_dlg_open($window, "Choose a file", array(array("All files", "*.*")) );
if(file_exists($filename) )
{
$sn="S/N: ".md5_file($filename);
wb_set_text(wb_get_control($window,IDC_TEXTWIN) , $filename);
wb_set_text(wb_get_control($window,IDC_STATUSWIN), $sn );
}
break;
case IDCLOSE : // IDCLOSE is predefined
case ID_CLOSE: wb_destroy_window($window); break;
}
}
$mainwin = wb_create_window(null, AppWindow,"PHP " . PHP_VERSION, WBC_CENTER, WBC_CENTER,500,100);
wb_create_control($mainwin, Menu,
array(iconv('big5','utf-8',"檔案-&File"),
array(ID_OPEN ,iconv('big5','utf-8',"開啟-&Open") , NULL, "" ,"Ctrl+O"), null,
array(ID_CLOSE,iconv('big5','utf-8',"關閉-&Close"), NULL, "" ,"Ctrl+X")
)
);
wb_create_control($mainwin, Label ,"Choose a file" ,1, 10, 290, 80, IDC_TEXTWIN);
wb_create_control($mainwin, StatusBar,"MD5:" ,0, 0, 0, 0, IDC_STATUSWIN);
wb_set_handler($mainwin, "process_main");
wb_main_loop();
?>
include "winbinder.php";
define("IDC_STATUSWIN", 101);
define("IDC_TEXTWIN", 102);
define("ID_OPEN" , 201);
define("ID_CLOSE", 202);
function process_main($window, $id)
{
switch($id) {
case ID_OPEN:
$filename = wb_sys_dlg_open($window, "Choose a file", array(array("All files", "*.*")) );
if(file_exists($filename) )
{
$sn="S/N: ".md5_file($filename);
wb_set_text(wb_get_control($window,IDC_TEXTWIN) , $filename);
wb_set_text(wb_get_control($window,IDC_STATUSWIN), $sn );
}
break;
case IDCLOSE : // IDCLOSE is predefined
case ID_CLOSE: wb_destroy_window($window); break;
}
}
$mainwin = wb_create_window(null, AppWindow,"PHP " . PHP_VERSION, WBC_CENTER, WBC_CENTER,500,100);
wb_create_control($mainwin, Menu,
array(iconv('big5','utf-8',"檔案-&File"),
array(ID_OPEN ,iconv('big5','utf-8',"開啟-&Open") , NULL, "" ,"Ctrl+O"), null,
array(ID_CLOSE,iconv('big5','utf-8',"關閉-&Close"), NULL, "" ,"Ctrl+X")
)
);
wb_create_control($mainwin, Label ,"Choose a file" ,1, 10, 290, 80, IDC_TEXTWIN);
wb_create_control($mainwin, StatusBar,"MD5:" ,0, 0, 0, 0, IDC_STATUSWIN);
wb_set_handler($mainwin, "process_main");
wb_main_loop();
?>
2010年12月13日 星期一
Windows7 建立一個隱藏目錄防君子不防小人
1. 開啟 dos 視窗, 先建立一個目錄: secrete..\
mkdir secrete..\
2. 將要隱藏的檔案放到目錄 secrete..\
3. 同一資料夾下再建立一個相同名稱的目錄
mkdir secrete
4. 然後將 secrete 隱藏起來
attrib +h secrete
則 secrete..\ 目錄下的東西, 在 windows7 會以為是 secrete 內的東西, 因而消失不見了
5. 除非用 dos 視窗將 secrete 目錄刪除, windows7 才可以看到 secrete..\ 下的內容
神奇吧!
WindowsXP 應該也可以!
mkdir secrete..\
2. 將要隱藏的檔案放到目錄 secrete..\
3. 同一資料夾下再建立一個相同名稱的目錄
mkdir secrete
4. 然後將 secrete 隱藏起來
attrib +h secrete
則 secrete..\ 目錄下的東西, 在 windows7 會以為是 secrete 內的東西, 因而消失不見了
5. 除非用 dos 視窗將 secrete 目錄刪除, windows7 才可以看到 secrete..\ 下的內容
神奇吧!
WindowsXP 應該也可以!
2010年11月7日 星期日
使用 phpExcel 讀取 excel 檔
phpExcel 網址:http://phpexcel.codeplex.com/
底下原始碼, 假設將 phpExcel 放在 httpd 所設定的 $DocumentRoot/phpExcel 下面
另外,tag <> 內的空格須自行刪除,加空格目的是避免此 blog 會當成tag 來解釋, 而影響 php 原始碼的閱讀性,
< ?php
require_once './phpExcel/Classes/PHPExcel.php';
require_once './phpEXCEL/Classes/PHPExcel/IOFactory.php';
header("Content-Type: text/html; charset=big5");
$file="sample.xls";
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '< table border="1">';
foreach ( $objWorksheet->getRowIterator() as $row )
{
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
echo '< tr>';
foreach ($cellIterator as $cell)
{
echo '< td>';
echo iconv('utf-8','big5', $cell->getValue() . ' ');
echo '< /td>';
}
echo '< /tr>';
}
echo '< /table>';
?>
底下原始碼, 假設將 phpExcel 放在 httpd 所設定的 $DocumentRoot/phpExcel 下面
另外,tag <> 內的空格須自行刪除,加空格目的是避免此 blog 會當成tag 來解釋, 而影響 php 原始碼的閱讀性,
< ?php
require_once './phpExcel/Classes/PHPExcel.php';
require_once './phpEXCEL/Classes/PHPExcel/IOFactory.php';
header("Content-Type: text/html; charset=big5");
$file="sample.xls";
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '< table border="1">';
foreach ( $objWorksheet->getRowIterator() as $row )
{
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
echo '< tr>';
foreach ($cellIterator as $cell)
{
echo '< td>';
echo iconv('utf-8','big5', $cell->getValue() . ' ');
echo '< /td>';
}
echo '< /tr>';
}
echo '< /table>';
?>
2010年10月23日 星期六
twbbs.org 網域 + hinet 轉址
1. 申請免費網域可到 twbbs.org 註冊一個帳號, 一個帳號可申請多組網域(例如 your_domain,則所申請的網域將會是 your_domain.twbbs.org)
來去 twbbs 網站申請一個帳號及網域吧: http://twbbs.org/
(A) 使用者登錄 twbbs.org 後, 按 "設定‧修改 網域"
(B) 挑選所要設定的 your_domain 網域處, 按 "設定" 紐,
(C) 接著再按 "設定DNS" 項,
(D) 將 FQDN 欄位的 your_doamin.twbbs.org, 挑選型態為 A 的 record, 將位址(ip)以 203.66.87.5 直接填入, 按 "新增一筆資料"
完成設定
2. Hinet 用戶可到 Hinet 轉址服務網頁申請一個帳號,
(例如帳號為 your_web,則所申請的網址將會是 http://your_web.myweb.hinet.net)
來去 hinet 網站申請一個帳號及網頁吧: http://www.myweb.hinet.net
(A) 登錄帳號後, 點選 "網站資料修改"
(B) 將 "網域名稱" 欄位內填入在步驟 1 所填的 ip 位址所對應的網域名稱
(例如 your_doamin.twbbs.org )
(C) 等待 dns 完成資料交換, 開啟 dos 視窗,
ping your_doamin.twbbs.org
如果 domain name 已經對應成功, 203.66.87.5 會回應, 則代表已完成設定
3. 開始瀏覽 your_domain.twbbs.org, 開啓瀏覽器填入網址:
http://your_domain.twbbs.org
便會轉址到 http://your_web.myweb.hinet.net
另外原來在 hinet 的 your_web 網頁,並不受影響,仍可以用網址
http://your_web.myweb.hinet.net 直接瀏覽
註: Hinet 的轉址僅限定 http 轉址, 其它如 mail 等並不適用
來去 twbbs 網站申請一個帳號及網域吧: http://twbbs.org/
(A) 使用者登錄 twbbs.org 後, 按 "設定‧修改 網域"
(B) 挑選所要設定的 your_domain 網域處, 按 "設定" 紐,
(C) 接著再按 "設定DNS" 項,
(D) 將 FQDN 欄位的 your_doamin.twbbs.org, 挑選型態為 A 的 record, 將位址(ip)以 203.66.87.5 直接填入, 按 "新增一筆資料"
完成設定
2. Hinet 用戶可到 Hinet 轉址服務網頁申請一個帳號,
(例如帳號為 your_web,則所申請的網址將會是 http://your_web.myweb.hinet.net)
來去 hinet 網站申請一個帳號及網頁吧: http://www.myweb.hinet.net
(A) 登錄帳號後, 點選 "網站資料修改"
(B) 將 "網域名稱" 欄位內填入在步驟 1 所填的 ip 位址所對應的網域名稱
(例如 your_doamin.twbbs.org )
(C) 等待 dns 完成資料交換, 開啟 dos 視窗,
ping your_doamin.twbbs.org
如果 domain name 已經對應成功, 203.66.87.5 會回應, 則代表已完成設定
3. 開始瀏覽 your_domain.twbbs.org, 開啓瀏覽器填入網址:
http://your_domain.twbbs.org
便會轉址到 http://your_web.myweb.hinet.net
另外原來在 hinet 的 your_web 網頁,並不受影響,仍可以用網址
http://your_web.myweb.hinet.net 直接瀏覽
註: Hinet 的轉址僅限定 http 轉址, 其它如 mail 等並不適用
2010年10月10日 星期日
nginx config 內容小解
漂浮線 ~ 用來指示隨後的 regular expression 大小寫不介意
漂浮線加星號 ~* 用來指示隨後的 regular expression 須區分大小寫
漂浮線加星號 ~* 用來指示隨後的 regular expression 須區分大小寫
2010年10月8日 星期五
另一好用的 Web server: nginx
下載 nginx web server
http://nginx.org/en/download.html
設定檔: nginx.conf 放在 nginx/conf
docroot 一般設定在 nginx/html
讓 php-cgi 可支援, 修改 nginx.conf,加入以下內容:
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如果要支援 drupal,修改 nginx.conf,加入以下內容:
location /drupal {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /drupal/index.php?q=$1 last;
}
}
如果要支援 wordpress , 修改 nginx.conf
location /wordpress {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /wordpress/index.php?q=$1 last;
}
}
如果要使用 sqlite 資料庫, 則到 wordpress 官網下載 pdo_sqlite plugin, 並將此plugin 模組放入 wp-content 目錄下, 另外需修改 wp-config.php, 加入以下的程式碼:
define('DB_TYPE','sqlite');
Drupal 7 才開始有支援 php data object (PDO) 的 slite 資料庫 (pdo_sqlite),
但我用起來不是很穩, 看起來 drupal7 與 nginx 相容性友有待驗證
須修改 php.ini 的 extension 設定值, 將以下的 extension enable:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
將 nginx 檔案全部放入 c:\nginx
將 php 檔案全部放入 c:\nginx\php
啟動 nginx
start c:\nginx\nginx.exe
命令 php-cgi listen port 9000
start c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini
http://nginx.org/en/download.html
設定檔: nginx.conf 放在 nginx/conf
docroot 一般設定在 nginx/html
讓 php-cgi 可支援, 修改 nginx.conf,加入以下內容:
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如果要支援 drupal,修改 nginx.conf,加入以下內容:
location /drupal {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /drupal/index.php?q=$1 last;
}
}
如果要支援 wordpress , 修改 nginx.conf
location /wordpress {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /wordpress/index.php?q=$1 last;
}
}
如果要使用 sqlite 資料庫, 則到 wordpress 官網下載 pdo_sqlite plugin, 並將此plugin 模組放入 wp-content 目錄下, 另外需修改 wp-config.php, 加入以下的程式碼:
define('DB_TYPE','sqlite');
Drupal 7 才開始有支援 php data object (PDO) 的 slite 資料庫 (pdo_sqlite),
但我用起來不是很穩, 看起來 drupal7 與 nginx 相容性友有待驗證
須修改 php.ini 的 extension 設定值, 將以下的 extension enable:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
將 nginx 檔案全部放入 c:\nginx
將 php 檔案全部放入 c:\nginx\php
啟動 nginx
start c:\nginx\nginx.exe
命令 php-cgi listen port 9000
start c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini
訂閱:
文章 (Atom)