作为我正在研究的媒体播放器应用程序的一部分,我想要连接媒体控制键的全局按键(播放,跳过,跳回等).
我一直在寻找大约2个小时试图寻找解决方案 - 但我找不到一个有效的方法.我找到了几个关于同一件事的Stackoverflow答案,但没有一个有效.
我尝试了MouseKeyHookNuGet包,但它永远不会触发事件.我也试过了这个FMUtils.KeyboardHook包,但是同样的事情发生了,除了它在控制台中打印出它在启动后立即关闭了钩子 - 我不知道为什么,查看源代码后的事件.
我试图得到这个代码项目项目http://www.codeproject.com/Articles/18638/Using-Window-Messages-to-Implement-Global-System-H但我甚至无法运行演示,这两个演示只是抛出了我无法追查的奇怪错误.
我的问题是,在我的Winforms应用程序没有聚焦时,我可以用来捕获键盘按下的.net 4.0中的键盘按键的工作方式是什么?
谁能帮我?我想弄清楚如何为这个 SVG 路径(目前用 Raphael 绘制它)获得漂亮、平滑的边缘。这是问题的 CodePen 模型(您可能需要向下滚动才能看到窗口中的对角线 - 它与顶部有点偏移)。
http://codepen.io/anon/pen/qbxYOg
<DOCTYPE html>
<body>
<div style="width:3484px; height:2000px;">
<svg style="width:100%; height:100%;">
<path fill="#fe0000" stroke="#fe0000" d="M606.182,649.872L739.73,670.2349999999999M743.215,670.366C742.902,669.307,741.7900000000001,668.702,740.73,669.015C739.6700000000001,669.33,739.066,670.442,739.38,671.501C739.694,672.5609999999999,740.806,673.165,741.865,672.851C742.925,672.538,743.53,671.425,743.215,670.366ZM594.333,649L463.09799999999996,628.047M459.614,627.881C459.917,628.943,461.02299999999997,629.559,462.085,629.256C463.14799999999997,628.953,463.763,627.845,463.46,626.784C463.156,625.721,462.04999999999995,625.106,460.988,625.409C459.927,625.713,459.311,626.819,459.614,627.881Z" style="transform: scale(.75); fill: red; stroke: red; stroke-width: 4px"></path>
</svg>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
基本上问题是线条看起来很锯齿,没有平滑/抗锯齿,我需要能够将这个 SVG 路径从 100% 缩放比例缩放到 50% 缩放比例以用于交互式地图。缩小它会使边缘看起来锯齿状,但我只注意到对角线上的线条有这个问题......
有人能帮我解决这个问题吗?
谢谢一堆!
我有一个从 csv 文件生成的 json 对象:
{"FID":["FID"],"the_geom":["the_geom"],"X":["X"],"Y":["Y"],"ROW":["ROW"],"COL":["COL"],"EMH":["EMH"],"B":["B_SURF","B_SUB1","B_SUB2"],"BP_CA":["BP_CA_SUR","BP_CA_SUB1","BP_CA_SUB2"],"BP_K":["BP_K_SURF","BP_K_SUB1","BP_K_SUB2"],"BP_MG"["BP_MG_SUR","BP_MG_SUB1","BP_MG_SUB2"],"BP_NA":["BP_NA_SUR","BP_NA_SUB1","BP_NA_SUB2"],"CA"["CA_SURF","CA_SUB1","CA_SUB2"],"CAMG":["CAMG_SURF","CAMG_SUB1","CAMG_SUB2"],"CEC"["CEC_SURF","CEC_SUB1","CEC_SUB2"],"CLAY":["CLAY_SURF","CLAY_SUB1","CLAY_SUB2"],"CU"["CU_SURF","CU_SUB1","CU_SUB2"],"DPRR_SUMM":["DPRR_SUMM"],"DRAIN_SUMM"["DRAIN_SUMM"],"FE":["FE_SURF","FE_SUB1","FE_SUB2"],"K"["K_SURF","K_SUB1","K_SUB2"],"KMG":["KMG_SURF","KMG_SUB1","KMG_SUB2"],"MG"["MG_SURF","MG_SUB1","MG_SUB2"],"MN":["MN_SURF","MN_SUB1","MN_SUB2"],"NA":["NA_SURF","NA_SUB1","NA_SUB2"],"OM":["OM_SURF","OM_SUB1","OM_SUB2"],"P"["P_SURF","P_SUB1","P_SUB2"],"PAVL"["PAVL_SURF","PAVL_SUB1","PAVL_SUB2"],"PAW24_SUMM":["PAW24_SUMM"],"PAW30_SUMM"["PAW30_SUMM"],"PAW36_SUMM":["PAW36_SUMM"],"PAW42_SUMM":["PAW42_SUMM"],"PAW48_SUMM":["PAW48_SUMM"],"PH":["PH_SURF","PH_SUB1","PH_SUB2"],"RZFC_SUMM":["RZFC_SUMM"],"RZKUSAT_SU"["RZKUSAT_SU"],"RZPAW_SUMM":["RZPAW_SUMM"],"RZPWP_SUMM"["RZPWP_SUMM"],"RZSAT_SUMM":["RZSAT_SUMM"],"S":["S_SURF","S_SUB1","S_SUB2"],"SAND":["SAND_SURF","SAND_SUB1","SAND_SUB2"],"TEX"["TEX_SURF","TEX_SUB1","TEX_SUB2"],"THICK"["THICK_SURF","THICK_SUB1","THICK_SUB2"],"TIP":["TIP_SURF","TIP_SUB1","TIP_SUB2"],"ZN":["ZN_SURF","ZN_SUB1","ZN_SUB2"],"EMV"["EMV"],"ASP":["ASP"],"DEM":["DEM"],"SLOPE\r":["SLOPE\r"]}
Run Code Online (Sandbox Code Playgroud)
最后,slope 对象的名称中有一个回车(它是从 csv 转换中继承过来的)
我需要从对象中删除那个回车,因为它会弄乱解析对象的其他一些脚本。
我尝试通过以下方式对其进行测试:
console.log("Without carrage return: " + JSON.stringify(jsonObject).replace(/[\n\r]/g, ''));
Run Code Online (Sandbox Code Playgroud)
但是当我打印它时,它仍然包含回车符。
我可能在这里做了一些愚蠢的事情,我只是太累了,我没有注意到。
任何帮助表示赞赏,谢谢!
说我有这个枚举:
public enum MyEnum{
ValueOne = 1,
ValueTwo = 2,
ValueThree = 3
}
Run Code Online (Sandbox Code Playgroud)
然后这个字段/变量:
public MyEnum myEnumInstance = MyEnum.ValueTwo;
Run Code Online (Sandbox Code Playgroud)
我需要得到name的myEnumInstance通过反射从另一个类。
我试过:
myClassInstance.GetType().GetField("myEnumInstance").GetValue(myClassInstance)
Run Code Online (Sandbox Code Playgroud)
ValueOne无论myEnumInstance设置为什么,它始终返回。
如何通过反射获取枚举字段的字符串值/名称?
我正在使用csv-parser来解析我拥有的csv文件.然后,当它解析每一行时,我正在检查行中的每个值以获得最小值和最大值.
我的问题是我的最大值在COL和ROW列中保持为99.当他们的最大行数约为200行时,300行为col.我不知道那里发生了什么,据我所知,我的方法应该有效.
这是我的相关代码:
var mins = {}
var maxs = {}
function loadCSV(finishedCallback) {
console.log("Loading csv...");
fs.createReadStream(__dirname + '/data.csv')
.pipe(stream)
.on('data', function (data) {
for (var k in data) {
if (data.hasOwnProperty(k)) {
if (mins[k] == undefined)
mins[k] = data[k];
if (maxs[k] == undefined)
maxs[k] = data[k];
if (mins[k] > data[k])
mins[k] = data[k];
if (maxs[k] < data[k])
maxs[k] = data[k];
}
}
}).on('finish', function () {
console.log("Finished reading csv!")
finishedCallback();
console.log("Maxs: " + JSON.stringify(maxs));
console.log("Mins: " + …Run Code Online (Sandbox Code Playgroud) c# ×2
csv ×2
.net ×1
antialiasing ×1
enums ×1
hook ×1
html ×1
javascript ×1
json ×1
node.js ×1
reflection ×1
svg ×1
winforms ×1