You are not logged in.
Fix items:
1.Add 16 bit mode.
2.Remove Donate Button.
I still work for vbios hack. because many programmer could not tell me how to use new method like Astray Plus.
I just work for try and error. I have no much time to reply post, sorry.
When i Announced a new version. I still release source code too.
Exe file download Link: http://140.126.130.41/~kkjj/2008/EEEPC_Utility12.zip
If you want to donate. Please go to the link : https://www.paypal.com/cgi-bin/webscr?c … et=UTF%2d8
;;====================The Following is V1.2 Source code=====================================
UNIT Unit1;
INTERFACE
USES
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry, MShape, SUIMemo, SUIButton, ExtCtrls,
SUIForm, SUIURLLabel, jpeg, ShellAPI, CoolTrayIcon, TextTrayIcon,
Menus, SUIImagePanel, SUIGroupBox, SUIRadioGroup, FileCtrl;
TYPE
TForm1 = CLASS(TForm)
suiForm1: TsuiForm;
MultiShape2: TMultiShape;
MultiShape3: TMultiShape;
Timer1: TTimer;
CoolTrayIcon1: TCoolTrayIcon;
PopupMenu1: TPopupMenu;
N1024x7681: TMenuItem;
N800x6001: TMenuItem;
N800x4801: TMenuItem;
Exit1: TMenuItem;
N1: TMenuItem;
TextTrayIcon1: TTextTrayIcon;
Timer2: TTimer;
TextTrayIcon2: TTextTrayIcon;
TextTrayIcon3: TTextTrayIcon;
suiCheckBox1: TsuiCheckBox;
suiRadioGroup1: TsuiRadioGroup;
suiButton1: TsuiButton;
Button1: TButton;
suiCheckBox2: TsuiCheckBox;
suiCheckGroup1: TsuiCheckGroup;
N1024x7682: TMenuItem;
N800x6002: TMenuItem;
N800x4802: TMenuItem;
N2: TMenuItem;
PROCEDURE suitempButton8Click(Sender: TObject);
PROCEDURE SetResolution(swidth: integer; sheight: integer; sbits: integer);
PROCEDURE FormCloseQuery(Sender: TObject; VAR CanClose: Boolean);
PROCEDURE Timer1Timer(Sender: TObject);
PROCEDURE CoolTrayIcon1DblClick(Sender: TObject);
PROCEDURE FormCreate(Sender: TObject);
PROCEDURE suiButton1Click(Sender: TObject);
PROCEDURE N800x6001Click(Sender: TObject);
PROCEDURE N1024x7681Click(Sender: TObject);
PROCEDURE N800x4801Click(Sender: TObject);
PROCEDURE LoadSetting();
PROCEDURE Exit1Click(Sender: TObject);
PROCEDURE Button1Click(Sender: TObject);
PROCEDURE Timer2Timer(Sender: TObject);
PROCEDURE suiButton2Click(Sender: TObject);
PROCEDURE FormResize(Sender: TObject);
PROCEDURE N1024x7682Click(Sender: TObject);
PROCEDURE N800x6002Click(Sender: TObject);
PROCEDURE N800x4802Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
END;
VAR
Form1: TForm1;
timercount: integer;
Tenablescaling, autostart: BOOLEAN;
detecting: integer;
Twidth, THeight, TBits: integer;
run: integer;
myReg: Tregistry;
IMPLEMENTATION
{$R *.dfm}
FUNCTION Downscaling(enabled: boolean): integer;
VAR
buffer0: ARRAY[0..3] OF char;
BEGIN
myreg := TRegistry.Create;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('SYSTEM\CurrentControlSet\Services\ialm\Device0', false) THEN
BEGIN
IF enabled THEN
BEGIN
buffer0[0] := chr($01);
Tenablescaling := true;
END
ELSE
BEGIN
buffer0[0] := chr($00);
Tenablescaling := false;
END;
buffer0[1] := chr($00);
buffer0[2] := chr($00);
buffer0[3] := chr($00);
myreg.WriteBinaryData('Display1_DownScalingEnabled', buffer0, 4);
END;
myreg.CloseKey;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('Software\EEEPC Utility', true) THEN
BEGIN
//if myreg.ValueExists('scaling') then
myreg.WriteBool('scaling', Tenablescaling);
END;
result := 0;
END;
PROCEDURE TForm1.LoadSetting();
BEGIN
TWidth := 0;
Theight := 0;
Tbits := 0;
myreg := TRegistry.Create;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('Software\EEEPC Utility', true) THEN
BEGIN
IF myreg.ValueExists('scaling') THEN
BEGIN
Tenablescaling := MYREG.ReadBool('scaling');
IF Tenablescaling THEN BEGIN suiCheckBox1.Checked := true; downscaling(true); END ELSE BEGIN downscaling(false); suiCheckBox1.Checked := false; END;
END;
IF myreg.ValueExists('CapLock') THEN
BEGIN
suiCheckGroup1.Checked[0] := MYREG.ReadBool('CapLock');
END;
IF myreg.ValueExists('NumLock') THEN
BEGIN
suiCheckGroup1.Checked[1] := MYREG.ReadBool('NumLock');
END;
IF myreg.ValueExists('ScrollLock') THEN
BEGIN
suiCheckGroup1.Checked[2] := MYREG.ReadBool('ScrollLock');
END;
IF myreg.ValueExists('Width') THEN
Twidth := myreg.ReadInteger('Width');
IF myreg.ValueExists('Height') THEN
THeight := myreg.ReadInteger('Height');
IF myreg.ValueExists('Bits') THEN
TBits := myreg.ReadInteger('Bits');
IF (TWidth <> 0) AND (Theight <> 0) AND (Tbits <> 0) THEN
BEGIN
SetResolution(Twidth, THeight, TBits);
IF (Twidth = 1024) AND (THeight = 768) THEN
BEGIN
suiRadioGroup1.ItemIndex := 0;
END;
IF (Twidth = 800) AND (THeight = 600) THEN
BEGIN
suiRadioGroup1.ItemIndex := 1;
END;
IF (Twidth = 800) AND (THeight = 480) THEN
BEGIN
suiRadioGroup1.ItemIndex := 2;
END;
END;
myreg.CloseKey;
IF myreg.OpenKey('Software\MicroSoft\Windows\CurrentVersion\Run', false) THEN
BEGIN
IF myreg.ValueExists('EEEPC Utility') THEN
BEGIN
autostart := true;
suiCheckBox2.Checked := true;
END
ELSE
BEGIN
autostart := false;
suiCheckBox2.Checked := false;
END;
END;
END;
END;
PROCEDURE TForm1.SetResolution(swidth: integer; sheight: integer; sbits: integer);
VAR
lpDevMode: TDeviceMode;
result: integer;
BEGIN
EnumDisplaySettings(NIL, 0, lpDevMode);
lpDevMode.dmFields := DM_PELSWIDTH OR DM_PELSHEIGHT;
IF sheight < 480 THEN
SetResolution(800, 480, sbits);
lpDevMode.dmPelsWidth := swidth;
Twidth := swidth;
lpDevMode.dmPelsHeight := sheight;
THeight := sHeight;
lpDevMode.dmBitsPerPel := sbits;
TBits := sbits;
//PostMessage(HWND_BROADCAST ,WM_DISPLAYCHANGE,32,sheight*65536+swidth);
result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY);
Form1.Visible := false;
CooltrayIcon1.Hint := IntToStr(TWidth) + 'x' + IntToStr(Theight) + 'x' + inttostr(TBits);
CoolTrayIcon1.MinimizeToTray := true;
myreg := TRegistry.Create;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('Software\EEEPC Utility', true) THEN
BEGIN
myreg.WriteInteger('Width', Twidth);
myreg.WriteInteger('Height', THeight);
myreg.WriteInteger('Bits', TBits);
END;
END;
PROCEDURE TForm1.suitempButton8Click(Sender: TObject);
VAR
buffer0: ARRAY[0..3] OF char;
BEGIN
myreg := TRegistry.Create;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('SYSTEM\CurrentControlSet\Services\ialm\Device0', false) THEN
BEGIN
buffer0[0] := chr($01);
buffer0[1] := chr($00);
buffer0[2] := chr($00);
buffer0[3] := chr($00);
myreg.WriteBinaryData('Display1_DownScalingEnabled', buffer0, 4);
END;
END;
PROCEDURE TForm1.FormCloseQuery(Sender: TObject; VAR CanClose: Boolean);
BEGIN
//downscaling(false);
END;
PROCEDURE TForm1.Timer1Timer(Sender: TObject);
BEGIN
inc(timercount);
IF timercount = 1 THEN
BEGIN
Timer1.Enabled := false;
IF paramcount() > 1 THEN
BEGIN
IF ParamStr(1) = '0' THEN downscaling(false);
IF ParamStr(1) = '1' THEN downscaling(true);
END;
IF paramcount() = 4 THEN
BEGIN
TRY
setresolution(StrToInt(paramStr(2)), StrToInt(paramStr(3)), StrToInt(paramStr(4)));
CoolTrayIcon1.Hint := paramStr(2) + 'x' + paramStr(3) + 'x' + paramStr(4);
FINALLY
END;
END;
loadsetting();
//suiImagePanel1.SetFocus;
Form1.Visible := false;
CoolTrayIcon1.MinimizeToTray := true;
END;
END;
PROCEDURE TForm1.CoolTrayIcon1DblClick(Sender: TObject);
BEGIN
Form1.Visible := true;
END;
PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR
handle1, handle2, handle3: Thandle;
BEGIN
timercount := 0;
handle1 := 0;
handle2 := 0;
handle3 := 0;
Form1.Left := GetSystemMetrics(SM_CXSCREEN) DIV 2 - Form1.Width DIV 2;
Form1.Top := GetSystemMetrics(SM_CYSCREEN) DIV 2 - Form1.height DIV 2;
WHILE ((handle1 = 0) OR (handle1 = 0) OR (handle1 = 0)) DO
BEGIN
handle1 := FindWindow('Shell_TrayWnd', NIL);
handle2 := FindWindow('ProgMan', NIL);
handle3 := FindWindow(NIL, 'Program Manager');
sleep(1);
END;
timer1.Enabled := true;
END;
PROCEDURE TForm1.suiButton1Click(Sender: TObject);
BEGIN
IF suiCheckBox1.Checked THEN
BEGIN
downscaling(true);
END
ELSE
downscaling(false);
CASE suiRadioGroup1.ItemIndex OF
0: BEGIN CoolTrayIcon1.Hint := '1024x768x32'; SetResolution(1024, 768, 32); END;
1: BEGIN CoolTrayIcon1.Hint := '800x600x32'; SetResolution(800, 600, 32); END;
2: BEGIN CoolTrayIcon1.Hint := '800x480x32'; SetResolution(800, 480, 32); END;
3: BEGIN CoolTrayIcon1.Hint := '1024x768x32'; SetResolution(1024, 768, 16); END;
4: BEGIN CoolTrayIcon1.Hint := '800x600x32'; SetResolution(800, 600, 16); END;
5: BEGIN CoolTrayIcon1.Hint := '800x480x32'; SetResolution(800, 480, 16); END;
END;
myreg.CloseKey;
IF myreg.OpenKey('Software\EEEPC Utility', true) THEN
BEGIN
myreg.WriteBool('CapLock', suiCheckGroup1.Checked[0]);
myreg.WriteBool('NumLock', suiCheckGroup1.Checked[1]);
myreg.WriteBool('ScrollLock', suiCheckGroup1.Checked[2]);
END;
IF suiCheckBox2.Checked THEN
BEGIN
myreg := TRegistry.Create;
myreg.RootKey := HKEY_LOCAL_MACHINE;
IF myreg.OpenKey('Software\MicroSoft\Windows\CurrentVersion\Run', false) THEN
BEGIN
IF myreg.ValueExists('Asustray') THEN myreg.DeleteValue('Asustray');
myreg.WriteString('EEEPC Utility', Application.ExeName);
END;
END
ELSE
BEGIN
IF myreg.OpenKey('Software\MicroSoft\Windows\CurrentVersion\Run', false) THEN
BEGIN
IF myreg.ValueExists('EEEPC Utility') THEN myreg.DeleteValue('EEEPC Utility');
END;
END;
END;
PROCEDURE TForm1.N800x6001Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 1;
suiButton1Click(self);
END;
PROCEDURE TForm1.N1024x7681Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 0;
suiButton1Click(self);
END;
PROCEDURE TForm1.N800x4801Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 2;
suiButton1Click(self);
END;
PROCEDURE TForm1.Exit1Click(Sender: TObject);
BEGIN
Form1.Close;
END;
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
ks: tkeyboardstate;
BEGIN
detecting := 1;
sleep(1);
application.ProcessMessages;
IF suiCheckGroup1.Checked[1] THEN
BEGIN
TextTrayIcon1.iconvisible := true;
IF GetKeyStatE(vk_nUMlOCK) <> 0 THEN //odd(ks[VK_NUMLOCK]) THEN
BEGIN
TextTrayIcon1.Font.Color := clnavy;
TextTrayIcon1.Text := 'N';
TexttrayIcon1.COLOR := clLime;
TexttrayIcon1.Hint := 'Num Lock ON';
END
ELSE
BEGIN
TextTrayIcon1.COLOR := clBtnFace;
TextTrayIcon1.Text := '';
TexttrayIcon1.Hint := 'Num Lock OFF';
END;
END
ELSE
BEGIN
TextTrayIcon1.iconvisible := false;
END;
IF suiCheckGroup1.Checked[0] THEN
BEGIN
sleep(1);
application.ProcessMessages;
TextTrayIcon2.iconvisible := true;
IF GetKeyStatE(VK_CAPITAL) <> 0 THEN
BEGIN
TextTrayIcon2.Text := 'A';
TexttrayIcon2.COLOR := clAqua;
TextTrayIcon2.Font.Color := clNavy;
TexttrayIcon2.Hint := 'Cap Lock ON';
END
ELSE
BEGIN
TextTrayIcon2.Text := 'a';
TexttrayIcon2.Hint := 'Cap Lock OFF';
END;
END
ELSE
BEGIN
TextTrayIcon2.iconvisible := false;
END;
IF suiCheckGroup1.Checked[2] THEN
BEGIN
TextTrayIcon3.iconvisible := true;
sleep(1);
application.ProcessMessages;
IF GetKeyStatE(VK_SCROLL) <> 0 THEN
BEGIN
TextTrayIcon3.Font.Color := clnavy;
TextTrayIcon3.Text := 'S';
TextTrayIcon3.COLOR := clFuchsia;
TexttrayIcon3.Hint := 'Scroll Lock ON';
END
ELSE
BEGIN
TextTrayIcon3.Text := '';
TextTrayIcon3.COLOR := clBtnFace;
TexttrayIcon3.Hint := 'Scroll Lock OFF';
END;
END
ELSE
BEGIN
TextTrayIcon3.iconvisible := false;
END;
detecting := 0;
END;
PROCEDURE TForm1.Timer2Timer(Sender: TObject);
BEGIN
IF detecting = 0 THEN
Button1Click(self);
END;
PROCEDURE TForm1.suiButton2Click(Sender: TObject);
BEGIN
//ShellExecute(0, pchar('open'), 'https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kkjj_tw%40msn%2ecom&item_name=EEEPC%20Utility&no_shipping=0&no_note=1&tax=0¤cy_code=USD&lc=TW&bn=PP%2dDonationsBF&charset=UTF%2d8', NIL, NIL, SW_MAXIMIZE);
END;
PROCEDURE TForm1.FormResize(Sender: TObject);
BEGIN
Form1.Width := 387;
Form1.Height := 165;
END;
PROCEDURE TForm1.N1024x7682Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 3;
suiButton1Click(self);
END;
PROCEDURE TForm1.N800x6002Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 4;
suiButton1Click(self);
END;
PROCEDURE TForm1.N800x4802Click(Sender: TObject);
BEGIN
suicheckBox1.Checked := true;
suiRadioGroup1.ItemIndex := 5;
suiButton1Click(self);
END;
END.
Offline
Here are the virus reports for AsTray+ 1.2 (3/32) and EEEPC_Utility V1.2 (0/32).
Offline
First,I'm not a vga enginner, but a student. ^^
And astray plus use no SMM or other NDA apis, sorry...
You're form Taiwan,right?I'm a chinese.
I've sent to you my msn id, so I think we can make friends, and have a talk about our program for EEEPC.
Offline
Thanks for the update; have sent some pennies via the link - hopefully the pennies are considered virus free :-)
Brilliant little app; thank you for all your work.
Offline
@almoore
Thanks for your donate.
I will make it better. ^^
Offline
Works great, no problem with my AVG anti-virus software. Thanks for all of your hard work!
Last edited by Azdeadwood (2008-02-25 1:24:32 pm)
Offline
downloaded and installed,still prefer the 800 x 600 scaled,anything above that the text font is not so readable,even @16 or 32 bits.
Thanks for the update Huang.
Offline
Thank you kkjj, this is a great program. ![]()
Every update for each program, we get a little closer to 640x480 and other resolutions. I know you said it's difficult, but thanks for sticking with it!
Offline
kkjj,
Thank you for your effort and time. I believe many of us will benefit from your utility.
Offline
Thanks for this, I'm glad you're still working on it!
Offline
I will discuss with BASSAM.
He has not much time with MSN.
As he has free time. i wll discuss with him. and combine the feature in one application.
Offline
@kkjj and BASSAM,
Thanks for everything. We will wait for your new development. From another post, it seems that BASSAM might have hacked into the vbios successfully, and that resolution of 640 x 480, and 1000 x 600 should not be an issue.
Offline
Thanks kkjj, this little utility is great, and keeps getting better!
The only problem I'm having is that I find that my PC runs much more slowly at 1024x768, even at 16 bit colour. This was not the case when I used to use Lazertag's driver. Does anyone know why this might be? The games I run at 1024x768 are definitely much jerkier.
Offline
obsidian wrote:
Thanks kkjj, this little utility is great, and keeps getting better!
The only problem I'm having is that I find that my PC runs much more slowly at 1024x768, even at 16 bit colour. This was not the case when I used to use Lazertag's driver. Does anyone know why this might be? The games I run at 1024x768 are definitely much jerkier.
Are you using EeeCTL? It speeds up your processor to its full capacity. I think it would address your problem.
You can get it here:
http://forum.eeeuser.com/viewtopic.php?id=14770
This and the EEEPC_Utility are the 2 programs I run at startup. They are the only 2 "must have" programs I recommend.
Last edited by Azdeadwood (2008-03-01 9:16:12 am)
Offline
obsidian wrote:
Thanks kkjj, this little utility is great, and keeps getting better!
The only problem I'm having is that I find that my PC runs much more slowly at 1024x768, even at 16 bit colour. This was not the case when I used to use Lazertag's driver. Does anyone know why this might be? The games I run at 1024x768 are definitely much jerkier.
Another thought:
How much RAM do you have? You may need to increase to 2GB for your games to run properly.
Offline
Thanks for the responses guys, but that isn't the problem. I was running the games on the exact same setup, except I was using Lazertag's driver, and everything was fine. There is something different between the two drivers, and I'm wondering if anyone knows what it is, and if there's a solution.
Offline
obsidian wrote:
Thanks for the responses guys, but that isn't the problem. I was running the games on the exact same setup, except I was using Lazertag's driver, and everything was fine. There is something different between the two drivers, and I'm wondering if anyone knows what it is, and if there's a solution.
The higher resolution requires more processing power that was why I asked about your RAM and/or if you were using software to speed up the machine.
Offline
I don't post very often, but I would have to agree with the posters up there...EEEPC_Utility and EEECTL are the two applications that I cannot live without. They definitely make life a bit easier, and the fan function is an added plus. When I feel the machine getting 'warmer' under my right hand, I just turn on the fan and wham...so much cooler.
FG.
Offline
This probully a dumb question but how do you uninstall this program? I have tried every thing I can think of an everytime I restart xp its back.
-I've deleted all files
-turned off start with windows, it just checks itself for next time
-exited program before quiting, and with running...
Its a nice enough prog but I want to try others...
Offline
Azdeadwood wrote:
obsidian wrote:
Thanks for the responses guys, but that isn't the problem. I was running the games on the exact same setup, except I was using Lazertag's driver, and everything was fine. There is something different between the two drivers, and I'm wondering if anyone knows what it is, and if there's a solution.
The higher resolution requires more processing power that was why I asked about your RAM and/or if you were using software to speed up the machine.
Sorry, but I must not be making myself clear. I was running games at 1024x768 with Lazertag's driver, and they ran great. When running games at 1024x768 using the modded inf driver and kkjj's app they are much jerkier.
Offline
CASE suiRadioGroup1.ItemIndex OF
0: BEGIN CoolTrayIcon1.Hint := '1024x768x32'; SetResolution(1024, 768, 32); END;
1: BEGIN CoolTrayIcon1.Hint := '800x600x32'; SetResolution(800, 600, 32); END;
2: BEGIN CoolTrayIcon1.Hint := '800x480x32'; SetResolution(800, 480, 32); END;
3: BEGIN CoolTrayIcon1.Hint := '1024x768x32'; SetResolution(1024, 768, 16); END;
4: BEGIN CoolTrayIcon1.Hint := '800x600x32'; SetResolution(800, 600, 16); END;
5: BEGIN CoolTrayIcon1.Hint := '800x480x32'; SetResolution(800, 480, 16); END;
This looks like a bug in the source code. Shouldn't 3 be 1024x768x16 instead of 1024x768x32 ? Same for 4 and 5.
Offline
How can I remove this program? Help please
Offline
Double click on bunny in ststem tray.
Uncheck "Startup with Windows option".
Reboot Windows.
Delete EEEPC_RESV1.2.exe file from HDD.
Offline
@kkjj I really appreciate the hard work. This is a great program!
Can anyone else help me out, i'm having a small problem with it not being able to go to the highest resolution mode. It did it when ifirst installed the program, but recently, the highest I can do is the 800x600.
i seem to remember seeing something about installing R2H drivers. Does this program only work with Lazertag's modded drivers? If so, which ones? I've got both.
Thanks!
Offline