PsyProg
asked on
setting mouse essped delphi 7
how to change the mouse speed into a delphi 7 application? I mean, I want to inform the new speed value on running application.
ASKER
I tried this:
mspeed[0] := 0;
mspeed[1] := 0;
mspeed[2] := 0;
and this
mspeed[0] := 4;
mspeed[1] := 6;
mspeed[2] := 2;;
if not SystemParametersInfo(SPI_S ETMOUSE, 0, @mspeed[0], 0) then
showmessage('Error');
No error message and NO mouse speed alteration...
any new idea? tks
mspeed[0] := 0;
mspeed[1] := 0;
mspeed[2] := 0;
and this
mspeed[0] := 4;
mspeed[1] := 6;
mspeed[2] := 2;;
if not SystemParametersInfo(SPI_S
showmessage('Error');
No error message and NO mouse speed alteration...
any new idea? tks
ASKER
I read thar "spi_setmousespeed" doesn't work at windows xp, but "spi_setmouse" works?
NOT
SystemParametersInfo(SPI_S
BUT
SystemParametersInfo(SPI_S
ASKER
BdLm,
I appreciate your attention, but doesn't work yet. the name of the varaible after "@" doesn't matter, since you have wrote them like array[0..2] of integer.
i know that the statement "if not SystemParametersInfo(SPI_S ETMOUSE, 0, @mspeed[0], 0) then
showmessage('Error');" has been reading without error, but the question is why the mouse keeps the same speed? I tried "@mspeed" and "@mspeed[0]" (like the link you show me). and I tried with "@a"...
tks
I appreciate your attention, but doesn't work yet. the name of the varaible after "@" doesn't matter, since you have wrote them like array[0..2] of integer.
i know that the statement "if not SystemParametersInfo(SPI_S
showmessage('Error');" has been reading without error, but the question is why the mouse keeps the same speed? I tried "@mspeed" and "@mspeed[0]" (like the link you show me). and I tried with "@a"...
tks
ASKER
and
I tried the fourth part with:
SPIF_SENDCHANGE - no error
SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE - error
SPIF_SENDWININICHANGE - error
SPIF_UPDATEINIFILE - error
0 - no error
but no mouse speed alteration.
[]
I tried the fourth part with:
SPIF_SENDCHANGE - no error
SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE - error
SPIF_SENDWININICHANGE - error
SPIF_UPDATEINIFILE - error
0 - no error
but no mouse speed alteration.
[]
@mspeed and @mspeed[0] are completely equivalent.
I found some similar codes (even Delphi ones) and tested them too but to no effect.
On one topic, some people where saying that it worked for them, and other said that it had no effect, so I guess this method just don't work with some OS/mouse drivers combinations. That was the conclusion of those guys in the source website.
Another way of doing that will have to be found....
I found some similar codes (even Delphi ones) and tested them too but to no effect.
On one topic, some people where saying that it worked for them, and other said that it had no effect, so I guess this method just don't work with some OS/mouse drivers combinations. That was the conclusion of those guys in the source website.
Another way of doing that will have to be found....
Remove the @... just pass by value, the doc is wrong
SystemParametersInfo(SPI_S ETMOUSE, 0, 20, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE);
SystemParametersInfo(SPI_S
ASKER
hi epasquier and DragonSlayer,
tanks for the help.
the delphi code doesn't compile with a integer value at the third place. Message: incompatible types: Integer and Pointer.
tks
tanks for the help.
the delphi code doesn't compile with a integer value at the third place. Message: incompatible types: Integer and Pointer.
tks
Hi PsyProg...
1. Have you tried with SPI_SETMOUSESPEED instead?
2. There have been forums that shows people redefining their call to SystemsParameterInfo to send an actual value instead of a pointer
1. Have you tried with SPI_SETMOUSESPEED instead?
2. There have been forums that shows people redefining their call to SystemsParameterInfo to send an actual value instead of a pointer
ASKER
Can you help me to translate this VB code,
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Integer, ByVal fuWinIni As Long) As Long
to delphi code?
how should this part (Lib "user32" Alias "SystemParametersInfoA") be write into delphi code?
tks
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Integer, ByVal fuWinIni As Long) As Long
to delphi code?
how should this part (Lib "user32" Alias "SystemParametersInfoA") be write into delphi code?
tks
ASKER
Hi BdLm,
I read that post before, but this is the solution that doesn't generate error and still doesn't change the speed mouse...
I am inclinated to try the alternative to redelcare the function SystemParametersInfo into the code...but i don't know how to translate the Vb to delphi...
tks
I read that post before, but this is the solution that doesn't generate error and still doesn't change the speed mouse...
I am inclinated to try the alternative to redelcare the function SystemParametersInfo into the code...but i don't know how to translate the Vb to delphi...
tks
not talking on the vb solution the link on the delpho pages, last post here was: solutions works fine
ASKER
my code following the delphi page you posted::
procedure Mousesol;
var
a: array [0..2] of integer;
begin
a[0] := 0; //4; // threshold value
a[1] := 0; //6; // threshold value
a[2] := 0; //2; // mouse speed
if not SystemParametersInfo(SPI_S ETMOUSE, 0, @a, SPIF_SENDCHANGE) then
showmessage('Tem Erro Aqui');
end;
I also tried without "if not then"...
I tried several changes on the parameters third and fourth...but nothing.
the fourth part with:
SPIF_SENDCHANGE - no error
SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE - no error
SPIF_SENDWININICHANGE - no error
SPIF_UPDATEINIFILE - no error
0 - no error
the third part with
0 0 0
6 4 2
0 0 5
20 20 20
1 1 1
3 3 3
so on...
that is the reason i want to try the vb solution redeclaring the function...
tks
procedure Mousesol;
var
a: array [0..2] of integer;
begin
a[0] := 0; //4; // threshold value
a[1] := 0; //6; // threshold value
a[2] := 0; //2; // mouse speed
if not SystemParametersInfo(SPI_S
showmessage('Tem Erro Aqui');
end;
I also tried without "if not then"...
I tried several changes on the parameters third and fourth...but nothing.
the fourth part with:
SPIF_SENDCHANGE - no error
SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE - no error
SPIF_SENDWININICHANGE - no error
SPIF_UPDATEINIFILE - no error
0 - no error
the third part with
0 0 0
6 4 2
0 0 5
20 20 20
1 1 1
3 3 3
so on...
that is the reason i want to try the vb solution redeclaring the function...
tks
PsyProg;
Here you go!
Here you go!
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
with reg do begin
try
if OpenKey('\Control Panel\mouse', False) then begin
reg.WriteString ('MouseSensitivity','20') ;
reg.WriteString ('MouseSpeed','1') ;
SystemParametersInfo (SPI_SETMOUSE,0, nil,SPIF_SENDWININICHANGE) ;
end
finally
reg.Free;
end;
end;
end;
Or using the ScrollBar;
Don't forget the : uses Registry;
Don't forget the : uses Registry;
procedure TForm1.FormCreate(Sender: TObject);
begin
Scrollbar1.max:=20;
Scrollbar1.OnChange := ScrollBar1Change;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
with reg do begin
try
if OpenKey('\Control Panel\mouse', False) then begin
reg.WriteString ('MouseSensitivity', inttostr(ScrollBar1.position)) ;
SystemParametersInfo (SPI_SETMOUSE,0, nil,SPIF_SENDWININICHANGE) ;
end
finally
reg.Free;
end;
end;
end;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
perfect.
ASKER
systan,
I still need to try your code, but the DragonSlayer's code works just fine.
tks
I still need to try your code, but the DragonSlayer's code works just fine.
tks
https://www.experts-exchange.com/questions/11060127/speed-of-the-mouse-cursor.html
if yes, we can port that code to delphi