请问大侠们,如何用程序打开显卡属性对话框,并转到“疑难解答”页面。

taxi 2007-05-24 11:41:41
就是在桌面中右击鼠标,点“属性-设置-高级”出现的那个对话框。
...全文
1077 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxtdxvb 2007-05-24
  • 打赏
  • 举报
回复
想要再进入子页面,就需要再研究一下了。
哈哈。
sxtdxvb 2007-05-24
  • 打赏
  • 举报
回复
其实就是打开个bpl

桌面属性对应的bpl就是 desk.bpl
用delphi的函数可以启动

1、shellexecute 2、winexec 等

语法是 rundll32 shell32,Control_RunDLL desk.cpl,,3

可以在开始运行中输入回车看到效果了。
chtlovezj 2007-05-24
  • 打赏
  • 举报
回复
ok了?
hongqi162 2007-05-24
  • 打赏
  • 举报
回复
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
CACACACACA 2007-05-24
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var I:integer;
begin
Winexec(pchar('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3'),SW_SHOWNORMAL );

keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), KEYEVENTF_KEYUP , 0 );
keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 );


for I := 1 to 4 do
begin
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), 0 , 0 );
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), KEYEVENTF_KEYUP , 0 );
end;

for I := 1 to 5 do
begin
keybd_event( VK_RIGHT, MapVirtualKey( VK_RIGHT, 0 ), 0 , 0 );
keybd_event( VK_RIGHT, MapVirtualKey( VK_RIGHT, 0 ), KEYEVENTF_KEYUP , 0 );
end;

sleep(500);

for I := 1 to 8 do
begin
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), 0 , 0 );
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), KEYEVENTF_KEYUP , 0 );
sleep(200);
end;

keybd_event( VK_SPACE, MapVirtualKey( VK_SPACE, 0 ), 0 , 0 );
keybd_event( VK_SPACE, MapVirtualKey( VK_SPACE, 0 ), KEYEVENTF_KEYUP , 0 );

keybd_event( VK_RETURN, MapVirtualKey( VK_RETURN, 0 ), 0 , 0 );
keybd_event( VK_RETURN, MapVirtualKey( VK_RETURN, 0 ), KEYEVENTF_KEYUP , 0 );

sleep(2000);

keybd_event( VK_RETURN, MapVirtualKey( VK_RETURN, 0 ), 0 , 0 );
keybd_event( VK_RETURN, MapVirtualKey( VK_RETURN, 0 ), KEYEVENTF_KEYUP , 0 );
sleep(1000);
Application.Terminate;
end;
chtlovezj 2007-05-24
  • 打赏
  • 举报
回复
转到疑难解答页面,我在2000下调试通过,你的什么环境?
var I:integer;
begin
Winexec(pchar('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3'),SW_SHOWNORMAL );

keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), KEYEVENTF_KEYUP , 0 );
keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 );


for I := 1 to 4 do
begin
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), 0 , 0 );
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0 ), KEYEVENTF_KEYUP , 0 );
end;

for I := 1 to 3 do
begin
keybd_event( VK_RIGHT, MapVirtualKey( VK_RIGHT, 0 ), 0 , 0 );
keybd_event( VK_RIGHT, MapVirtualKey( VK_RIGHT, 0 ), KEYEVENTF_KEYUP , 0 );

end;
taxi 2007-05-24
  • 打赏
  • 举报
回复
原来有大小写区分。
sxtdxvb 2007-05-24
  • 打赏
  • 举报
回复
我的是xp机器,我测试了,是可以的。
taxi 2007-05-24
  • 打赏
  • 举报
回复
按照一楼和三楼的方法,出错误,说“shell32出错,丢失条目:Control_Rundll”
taxi 2007-05-24
  • 打赏
  • 举报
回复
可不可以再详细一点,在运行中输入“desk.cpl”只能打开桌面属性对话框,不能打开显卡属性对话框。
chtlovezj 2007-05-24
  • 打赏
  • 举报
回复
模拟按键应该
var I:integer;
begin
Winexec(pchar('rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3'),SW_SHOWNORMAL );

keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), 0 , 0 );
keybd_event( 86, MapVirtualKey( 86, 0 ), KEYEVENTF_KEYUP , 0 );
keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 );
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧