我正在测试一个通过SendKeys
移动另一个应用程序的应用程序,当Windows登录时,每个工作正常。这是记事本的测试代码(记事本已打开):
Process p = System.Diagnostics.Process.GetProcessesByName("notepad").Last();
if (p != null)
{
IntPtr h = p.MainWindowHandle;
SetForegroundWindow(h);
SendKeys.SendWait("Hellow world");
}
我希望在Windows被锁定时它可以正常工作,但错误是“访问被拒绝”#39;记事本是测试应用程序,锁定系统是断开远程桌面的模拟,所以我必须在锁定模式下访问。有什么建议吗?
答案 0 :(得分:0)
我想这是因为当Windows被锁定时,桌面的可访问性被锁定,现在桌面无法接收输入。桌面的焦点丢失了。 GET / SETForegroundWindow,将无法正常工作。
我没试过,但是
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.male);
list = (ListView) findViewById(R.id.lv_stars_male);
Resources res = getResources();
star_names = res.getStringArray(R.array.starnames);
star_dates = res.getStringArray(R.array.stardates);
MaleLikeDislikeAdapter adapter = new MaleLikeDislikeAdapter(this,star_names,star_images, star_dates );
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position==0) {
Intent intent = new Intent("com.example.shahid.myapp.List_Activity");
startActivity(intent);
la.setContentView(R.layout.listviewlayout);
// la is an object of List_Activity to which i want to set different layouts on item click
}
else {
Intent intent = new Intent("com.example.shahid.myapp.List_Activity");
startActivity(intent);
la.setContentView(R.layout.list_layout);
}
}
});
此功能可能有助于https://msdn.microsoft.com/en-us/library/windows/desktop/ms684303(v=vs.85).aspx