在本文中,我们将为您详细介绍GetWindowRect在一个应用程序上返回错误的值,所有其他应用程序都是正确的的相关知识,此外,我们还会提供一些关于.net–将应用程序配置添加到Windows窗体应用
在本文中,我们将为您详细介绍GetWindowRect在一个应用程序上返回错误的值,所有其他应用程序都是正确的的相关知识,此外,我们还会提供一些关于.net – 将应用程序配置添加到Windows窗体应用程序、.net:在一个应用程序中加密字符串以便只能被另一个应用程序读取的最佳实践是什么?、android intent隐式调用之一个应用程序启动另一个应用程序、android – 从其他应用程序打开Twitter应用程序并加载一些页面的有用信息。
本文目录一览:- GetWindowRect在一个应用程序上返回错误的值,所有其他应用程序都是正确的
- .net – 将应用程序配置添加到Windows窗体应用程序
- .net:在一个应用程序中加密字符串以便只能被另一个应用程序读取的最佳实践是什么?
- android intent隐式调用之一个应用程序启动另一个应用程序
- android – 从其他应用程序打开Twitter应用程序并加载一些页面
GetWindowRect在一个应用程序上返回错误的值,所有其他应用程序都是正确的
我正在使用Windows API的GetwindowRect获取正在运行的应用程序的边界,然后使用这些边界来截取应用程序。
我的代码适用于我testing过的10个程序,notepad.exe和其他一些程序,但是我希望与RocLink800一起使用它,它将返回静态值,而不pipe应用程序的位置如何。
代码是C#.NET
[StructLayout(LayoutKind.Sequential)] public struct RECT { public int X; public int Y; public int Width; public int Height; } [DllImport("user32.dll",SetLastError = true)] static extern bool GetwindowRect(IntPtr hWnd,ref RECT Rect); IntPtr error = GetwindowRect(proc.MainWindowHandle,ref rect); ... main code while (error == (IntPtr)0) { error = GetwindowRect(proc.MainWindowHandle,ref rect); } int width = rect.right - rect.left; int height = rect.bottom - rect.top;
现在所有的应用程序都返回正确的宽度和高度,roclink800返回错误值1,表示成功,但不pipe应用程序位置如何,它都会返回下列值:
Onenote开发
InvokeMember获取特定属性值的可能值
更新.Net Windows服务
事件查看器中的行号
.net框架的产品代码
rect.right = 960 rect.left = 960 rect.bottom = 600 rect.top = 600
我完全难住为什么发生这种情况或如何纠正它,roclink800是一个从windows95天移植的旧程序,所以也许它是使用一些奇怪的api,如果是这样的话,是否有任何替代scheme从Windows API(user32.dll )来获取其屏幕坐标?
我想我可以强制应用程序去全屏和屏幕捕获这种方式,但它不那么优雅。
想法任何人?
编辑:我的代码获取句柄
Process roclink = new Process(); roclink.StartInfo.FileName = "C:/Program Files (x86)/ROCLINK800/Roclink.exe"; //roclink.StartInfo.FileName = "notepad.exe"; roclink.Start(); IntPtr error = GetwindowRect(roclink.MainWindowHandle,ref rect);
要么
try { proc = Process.GetProcessesByName("roclink")[0]; } catch (IndexOutOfRangeException e) { return null; }
这两个代码块返回相同的IntPtr,但他们都返回9609660600,但如果我打电话
int error = SetwindowPos(roclink.MainWindowHandle,HWND_TOPMOST,25,50,SWP_SHOWWINDOW);
然后我得到返回的坐标是0,50,但应用程序大小不会改变。
我试图破坏程序,closuresroclink,SetwindowPos和GetwindowRect都返回0,并且不返回false值,表明句柄确实是正确的句柄。
所以看起来这个应用程序不能通过windows API来设置或获取窗口大小,任何人都可能得到任何线索为什么这可能是?
roclink.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
这也被忽略,应用程序将不能全屏打开,只是它最后打开的大小。
编辑:我能拿出唯一的解决办法是做一个roclink.exe的副本,手动全屏手动打开,然后closures它,提供没有其他人打开这个文件,它将始终打开全屏,这是狡猾的,我做不喜欢它,但除非有人有任何想法,为什么这种情况下,我可能不得不采取这一点。
.net – 将应用程序配置添加到Windows窗体应用程序
#
On the Project menu,click Add New
Item.The Add New Item dialog Box appears.
#Select the Application Configuration
File template and then click Add.A file named app.config is added to
your project
但是Add New ITem Dialog中没有app.config!
为什么?
我正在使用visual Studio 2010
VB.NET WIndows表单.
解决方法
.net:在一个应用程序中加密字符串以便只能被另一个应用程序读取的最佳实践是什么?
如何解决.net:在一个应用程序中加密字符串以便只能被另一个应用程序读取的最佳实践是什么?
| 我有一个应用程序(App1),它需要写出一个加密的字符串。另一个应用程序(App2)需要能够解密和读取该字符串,并通过解密来验证它是否已被App1加密。 App2应该不能写出新的加密字符串。 我知道这涉及公钥/私钥对,但是我不知道该领域当前的最佳实践技术是什么,也不知道哪个.net类实现了它?我可以根据需要使用证书。 任何输入表示赞赏。 谢谢。解决方法
App1 -> Data + App2-PublicKey = Encrypted Data
App2 -> Encrypted Data + App2-PrivateKey = Data
因此,App1或App2仅使用对方的公钥加密数据,以便只有应用程序才能使用对方的私钥对其进行解密。这样,数据交换是安全的。如果加密方式如下:
App1 -> Data + App1-PrivateKey + App2-PublicKey = Encrypted Data
App2 -> Encrypted Data + App1-PublicKey + App2-PrivateKey = Data
现在,数据交换既安全又可靠(即可以确保两个应用程序是与之通信的另一个应用程序)。参考:http://en.wikipedia.org/wiki/Transport_Layer_Security
提醒:公钥用于加密,私钥用于验证。同样,签名步骤始终是最后一步,因为它是在最终处理的数据上完成的。
android intent隐式调用之一个应用程序启动另一个应用程序
理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收者之间的耦合。另外Intent除了发送外,还可用于广播.
显示调用 1.Intent intent = new Intent(); intent.setClass(A.this,B.class); //intent.setClassName("com.view","com.view.B");前者是A的包名,后者是B的代包类名
startActivity(Intent);
隐式调用:private static String MY_ACTION = "com.view.my_action";
Intent intent = new Intent(); intent.setAction(MY_ACTION);
或者// Intent intent = new Intent(MY_ACTION);
startActivity(Intent);
隐式调用注意不只是在AndroidManifest.xml文件中声明,还要加上intent-filter
在B类的activity中加上:
<intent-filter>
<action android:name="com.view.my_action"/> <!-- 自定义 -->
</intent-filter>
加上这句话就可以跳转到B类了
如果是想启动另外一个应用程序,如B类是在另外一个应用程序的入口,在其activity中再另外加上一个intent-filter
<activity android:name=".B" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.view.my_action"/>
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
android – 从其他应用程序打开Twitter应用程序并加载一些页面
例如,我有自己的Android应用程序,我想使用Intent打开Twitter应用程序.
我怎样才能做到这一点?
回答一些例子将非常感激.
解决方法
try{ Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,"this is a tweet"); intent.setType("text/plain"); final PackageManager pm = getPackageManager(); final List<?> activityList = pm.queryIntentActivities(intent,0); int len = activityList.size(); for (int i = 0; i < len; i++) { final ResolveInfo app = (ResolveInfo) activityList.get(i); if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) { final ActivityInfo activity=app.activityInfo; final ComponentName name=new ComponentName(activity.applicationInfo.packageName,activity.name); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); intent.setComponent(name); startActivity(intent); break; } } } catch(final ActivityNotFoundException e) { Log.i("twitter","no twitter native",e ); }
今天关于GetWindowRect在一个应用程序上返回错误的值,所有其他应用程序都是正确的的介绍到此结束,谢谢您的阅读,有关.net – 将应用程序配置添加到Windows窗体应用程序、.net:在一个应用程序中加密字符串以便只能被另一个应用程序读取的最佳实践是什么?、android intent隐式调用之一个应用程序启动另一个应用程序、android – 从其他应用程序打开Twitter应用程序并加载一些页面等更多相关知识的信息可以在本站进行查询。
本文标签: