我有一个Swing窗口,其中包含敏感信息,我想阻止用户截取屏幕截图,或者在截取屏幕截图时使用窗口隐藏.
我怎样才能做到这一点?
我在使用NotifyIcons时发现了一个重入问题.重现起来非常简单,只需在表单上删除NotiftIcon,click事件应如下所示:
private bool reentrancyDetected;
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (reentrancyDetected) MessageBox.Show("Reentrancy");
reentrancyDetected = true;
lock (thisLock)
{
//do nothing
}
reentrancyDetected = false;
}
Run Code Online (Sandbox Code Playgroud)
同时启动后台线程会导致一些争用:
private readonly object thisLock = new object();
private readonly Thread bgThread;
public Form1()
{
InitializeComponent();
bgThread = new Thread(BackgroundOp) { IsBackground = true };
bgThread.Start();
}
private void BackgroundOp()
{
while (true)
{
lock (thisLock)
{
Thread.Sleep(2000);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您开始单击notifyicon,将弹出消息,指示重入.我知道为什么STA中的托管等待应该为某些窗口泵送消息的原因.但是我不确定为什么要通知notifyicon的消息.还有一种方法可以在进入/退出方法时避免使用一些布尔指示器进行抽吸吗?
通常,我在这样的反射中访问一个方法:
class Foo
{
public void M () {
var m = this.GetType ().GetMethod ("M");
m.Invoke(this, new object[] {}); // notice the pun
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当M是显式实现时,这会失败:
class Foo : SomeBase
{
void SomeBase.M () {
var m = this.GetType ().GetMethod ("M");
m.Invoke(this, new object[] {}); // fails as m is null
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用反射访问显式实现的方法?
我写了一个Android应用程序,运行后,它在主菜单中出现两次.我的意思是,这个应用程序有两个图标,但只有一个可以打开.
如果我卸载此应用程序,我在应用程序列表中只找到一个条目.
如果应用程序在模拟器或手机上运行,它也是一样的.我的其他应用程序没有这个问题.
有任何想法吗???
非常感谢提前.
穆尔
可能重复:
C#:如何枚举枚举?
大家好我想知道,假设我定义了一个类似的枚举
enum color
{
red=4;
blue=5;
gray=6;
green=8;
}
Run Code Online (Sandbox Code Playgroud)
所以我们可以在for循环的帮助下打印常量值,我的意思是我们可以通过循环来控制它; 另一个问题是我们可以将它与下拉列表集成,如数组.我的意思是当我们在侧面数组中声明一个元素时假设我写了相同的颜色元素,并且我们可以在asp.net中添加列表或下拉列表(带控件的简单单词绑定),我们可以用枚举执行同样的事情.
我见过人们在类中使用尾随下划线作为成员变量,例如在着名的C++ FAQ Lite中.
我认为它的目的不是将变量标记为成员,而是"m_"的用途.它的实际目的是使一个名为field的访问器方法成为可能,如下所示:
class Foo {
public:
bar the_bar() { return the_bar_; }
private:
bar the_bar_;
}
Run Code Online (Sandbox Code Playgroud)
访问器省略了"get_"部分在STL和boost中是常见的,我正在尝试尽可能接近这些开发编码风格,但我不能真正看到它们使用下划线技巧.我无法在STL或boost中找到一个只返回私有变量的访问器.
我有几个问题我希望你能回答:
如何使用VideoView播放本地文件系统中的视频(例如:在res/a.3gp中).我需要示例代码.我想尝试播放如下:
import android.app.Activity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class videoSample extends Activity {
/** Called when the activity is first created. */
String path="D:/mApp2/videoSample/res/drawable-hdpi/adf.mp4";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
VideoView videoView = (VideoView) findViewById(R.id.VideoView01);
MediaController mediaController = new MediaController(this);
mediaController.setMediaPlayer(videoView);
videoView.setVideoPath(path);
videoView.setMediaController(mediaController);
videoView.requestFocus();
videoView.start();
mediaController.show();
}
}
Run Code Online (Sandbox Code Playgroud)
由于视频无法播放,我收到错误.任何人都可以帮我解决这个问题吗?提前致谢.
我有(再次)在R中组合数据帧的问题.但这一次,一个是SpatialPolygonDataFrame(SPDF),另一个是通常的data.frame(DF).将SPDF有大约1000行的DF只有400两者有一个共同的列,QDGC
现在,我试过了
oo <- merge(SPDF,DF, by="QDGC", all=T)
Run Code Online (Sandbox Code Playgroud)
但这只会导致正常的data.frame,而不再是空间多边形数据框.我在其他地方读到,这不起作用,但我不明白在这种情况下该做什么(必须对ID列做一些事情,合并使用)
哦,这么难的问题,我...
谢谢!延
我正在寻找iOS版本部署百分比的最新报告.像Chitikia报告但最新的东西.
这个信息对于决定iOS版本部署我的应用程序非常重要...
知道在哪里找到它?Apple是否为其注册开发者发布此类报告?
非常感谢!
在创建数据库时,我对de default collations有点困惑.存储在数据库中的数据将使用不同的语言.该数据库的主要用户将使用西班牙语,但它也将用于英语,法语...由于西班牙语默认排序规则是Modern_Spanish_CI_AS,英语,法语意大利语..默认为Latin1_General_CI_AS,我想建议使用哪种排序规则,以及使用一种排序规则或另一种排序规则是否有一些缺点.
非常感谢您的帮助
哈维尔
c# ×3
android ×2
.net ×1
c++ ×1
dataframe ×1
enums ×1
iphone ×1
java ×1
member ×1
merge ×1
polygon ×1
r ×1
reentrancy ×1
reflection ×1
screenshot ×1
spatial ×1
sql-server ×1
swing ×1