2011年9月29日 星期四

開機1小時自動關機批次檔

我的兩個兒子,一開電腦就不想關機,之前使用PB寫一個程式,開機滿一小時,就自動叫用Shutdown,提示小朋友們,時間快到了哦,準備關機。

用了好一陣子,效果還不錯,但最近這兩個小毛頭,不知去那學會Shutdown -a 來破解我的倒數計時提示功能,真利害。

今日特別將久未使用的 DOS 批次檔搬出來,在DOS時代,都用這個寫應用程式的MENU,現在拿來製作開機後,倒數1小時自動關機功能。


思路說明

開機後,即自動加入兩個排程

第一個排程是已開機滿一小時,自動叫用 shutdown /t 300 /s,讓電腦出現再5分鐘就會關機的訊息,讓兩個小毛頭準備,該存檔的快點存檔。

第二個排程,是開機滿一小時又五分鐘,直接叫用 shutdown /s /f,強迫關機。

使用雙重機制,免的又被他們的 shutdown /a 破解

相關程式
1. shutdown
2. schtasks ( 這個用來取代 at )

檔名: AutoShutdown.BAT


@ECHO off
cls
REM 拆取時分秒
set h1=%time:~0,1%
set h2=%time:~1,1%
set m1=%time:~3,1%
set m2=%time:~4,1%
set s1=%time:~6,1%
set s2=%time:~7,1%
ECHO %h1%%h2%點 %m1%%m2%分 %s1%%s2%秒

REM 增加一小時,準備關機時間
set /a h2=%h2% + 1
IF /I %h2% GTR 9 GOTO ps1
GOTO hrok

:ps1
set h2=%h2:~1,1%
set /a h1=%h1% + 1

:hrok
set hh=%h1%%h2%
set mm=%m1%%m2%
set ss=%s1%%s2%
set t01=%hh%:%mm%:%ss%



REM 再增5分鐘,為強制關機時間
set /a m2=%m2% + 5
IF /I %m2% GTR 9 GOTO pm1
GOTO end

:pm1
set m2=%m2:~1,1%
set /a m1=%m1% + 1
IF /I %m1% GTR 5 GOTO pm2
GOTO end

:pm2
set m1=0
set /a h2=%h2% + 1

:end
set hh=%h1%%h2%
set mm=%m1%%m2%
set ss=%s1%%s2%
set t02=%hh%:%mm%:%ss%
ECHO %t01%
ECHO %t02%

schtasks /delete /tn ShutdownMSG /f
schtasks /delete /tn ShutdownPC /f

schtasks /create /tn ShutdownMSG /tr "C:\Windows\system32\Shutdown.exe -s -t 300" /sc once /st %t01% /ru 使用者名 /rp 密碼
schtasks /create /tn ShutdownPC /tr "C:\Windows\system32\Shutdown.exe -s -f -t 0" /sc once /st %t02% /ru 使用者名 /rp 密碼

2011年9月27日 星期二

PowerBuilder .NET 12.5 建立第一個WPF

1.開啟PB,點選New,只有Solution,與VS相同,而不是傳統PB的WorkSpace
2.建立Solution後,再次點選New,項目變為Target,與原PB相同,有4個項目,選取WPF Window Application
3.New WPF Target有2個選項,一個是將舊有的Win32轉為WPF,我沒有舊Target可轉,選取建立新的
4.按Next後,維持預設值,直接Finish
5.系統幫我們建立了一個wpfapp.pbl,內含一個程式入口wpfapp及一個Project(p_wpfapp_wpf)
6.再次按New,這一回出現的可多了,選WPF Window,我只想看新的WPF是什模樣
7.哇~出現了,有XAML,不太清楚這是什麼
8.存檔先,檔名是wCustomers,哦! 新PB保留大小寫,很棒
9.拉一個datawindow object,PB的技術核心,選用Grid
10.名稱為dCustomers
11.資料來源使用SQL
12.選用SQL Select,自動組出未曾見過的語法,暫不研究
 
13.dwo已建立了,能預覽
14.回wCustomers,拉一個dwc進來,並調整一下版面,讓其看起來很平衡

15.再拉一個Button
16.在Button的Clicked Event寫上連接資料庫與讀取資料,資料庫連接請取用上一篇的連接字串,直接貼這來即可
17.於程式入口wpfapp的open中寫上開啟wCustomers視窗
18.全部存檔,執行看看,很順利
19.按下Retrieve,看能否順利取出資料,好的,取出了
20.精彩的來了,改變視窗大小看看,dwc會自動放大,button會一直保持在應有的位置,太漂亮了

2011年9月24日 星期六

PowerBuilder .NET 12.5 連接資料庫

測試PowerBuilder .NET 12.5 的資料庫連接
我取微軟的北風資料庫來測試
1.執行PowerBuilder .NET 12.5 
2.使用Database Profiles
3. .NET當然要選用ADO .NET,按New...
4.Profile Name:自已喜好
Namespace:連接Sql Server,要選 System.Data.SqlClient
Data Source: 資料庫主機位置,小弟只有一台電腦,使用localhost
Database: 北風
我安裝Sql Server時,是使用信任模式,所以勾選 Trusted Connection
5.切至Preview,測試設定是否正確,按一下Test Connection,可正確連接

6.使用Database Painter,再次驗正是真的連上了嗎
7.下一段SQL測試 SELECT * FROM Customers;
8.能正確取出資料
9.拉Employees Table進來測試,能否編輯資料,還不錯,畫面比以前美觀


2011年9月20日 星期二

PowerBuilder 12.5 評估版下載

PowerBuilder 12.5已正式上市
評估版下載地址: http://www.sybase.com.tw/detail_list?id=3610

PowerBuilder 12.5 Overview 影片
http://powerbuildertv.com/index.php/en/archived-webinars/powerbuilder/80-powerbuilder-125

倍力官網
http://www.mpinfo.com.tw/news_detail_3.php?id=108

延長測試時間 ( 好像只對 Classic 有效 )
http://www.cnblogs.com/wallis0922/archive/2011/09/02/2163405.html

今日試安裝PB12.5,很順利,並寫上一個 BAT 檔並加到啟動裏,這樣可等到有空時再來試用



2011年1月25日 星期二

PowerBuilder 12 MDI放置圖片


網上找到一個簡易在MDI上顯示背景圖片效果的程式,使用PB12來測試看看
1.建立一個Window,名稱為w_back,WindowType為child!,屬性設置如圖
2.於w_back貼上picture control,名為p_1
3.於w_back建立一window function
function : uf_set_background
argument: string as_image

p_1.Picturename=as_image

4.於w_back的resize event寫下
p_1.resize( this.width, this.height)

5.於w_back的activate event寫下
this.bringtotop=false // 測試結果,這行沒有作用

6.於MDI的open event寫下
w_back background
opensheet(background,this,0,layered!)
background.uf_set_background('Eclat_VN.jpg')
註: 因我用 .Net WindwoForm,直接使用OpenSheet(w_back, this)會出現錯誤

完成後,經測試,還有不少問題,要能實用,還需花點心思才行
使用的PB版本: PowerBuilder 12.1
Target: .Net Windows Forms