像一个简单的脚本
a::msgbox hi!
Run Code Online (Sandbox Code Playgroud)
曾经在Windows 7下正常工作.现在我升级到Windows 10,当某些窗口处于活动状态时,它无法正常工作.特别是LButton-Hotkeys会搞乱一切,导致你真正需要任务管理器的情况.
这里是一个很小的应用程序列表,其中不再识别热键:(相反,从上面的脚本开始,a发送一个简单的)
它起作用的地方:(例子)
有人可以复制这个吗?
Win10中的AutoHotkey有什么问题?
怎么解决这个问题?
(AHKscript vers.1.1.22.3 Unicode 64位)
简而言之:如何将生成的组件CSS作为字符串?
- >我想获得组件的快照.也就是说,这个视图看起来像什么.正如你点击右边看到的那样 - >检查.Html&css 独立于任何Javascript 呈现组件.
动机:使用该快照以便以后导出为PDF.我可以在服务器方面创建PDF,但是由于Angular有一个整洁的模板引擎,为什么不使用它呢?欢迎评论.
我设法从我的组件中获取快照html代码,banana
如下所示:
// banana component file
@Component( {
selector: 'banana',
template: `<div id="report">some text</div>`,
styles: [ '#report { font-weight:bold; }' ]
})
export class BananaComponent {
constructor(public elementRef: ElementRef) { }
}
// parent component file
@Component(...)
export class App {
@ViewChild(BananaComponent) myBanana;
private getSnapshot() {
let bananaSnapshotHtml = this.myBanana.elementRef.nativeElement.outerHTML;
let bananaSnapshotCss = // ?? TODO
}
}
Run Code Online (Sandbox Code Playgroud)
snapshotHtml
例如,变量如下所示:
<banana _ngcontent-c2="" _nghost-c4="" ng-reflect-render="true"><!--bindings={
"ng-reflect-ng-if": "true"
}--><div _ngcontent-c4="" id="report">
some …
Run Code Online (Sandbox Code Playgroud) <form>
<input type="number" step="1" required>
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
在上面的代码段中,如果您插入
0.0000001
Run Code Online (Sandbox Code Playgroud)
输入数字后,您将无法提交表单:“ step”属性可以防止这种情况。
但是如果你插入
0.00000001
Run Code Online (Sandbox Code Playgroud)
它可以在Chrome / Chromium中使用!为什么在验证输入时似乎只读取前七个小数位?是否在任何地方对此进行了记录,并且我可以采取什么措施防止这种情况发生?
我测试了Firefox,它不接受任何此类值。它不能是浮点精度问题(例如0.1 + 0.2
),仅与更多的十进制数字有关
0.30000000000000004 === 0.1+0.2
Run Code Online (Sandbox Code Playgroud) 当我只使用处理程序捕获 Promise 拒绝时,如何确定发生在哪里onunhandledrejection
?
console.error = ()=>{}\nwindow.addEventListener(\'unhandledrejection\', (promiseRejectionEvent) => {\n console.log(\'unhandled: \', Error().stack)\n})\n\nfunction main() {\n new Promise(() => { throw null })\n}\nmain()
Run Code Online (Sandbox Code Playgroud)\r\n如果运行此命令后检查浏览器的控制台,您将看到类似以下内容的内容:
\n\n
唯一Error().stack
的在其堆栈跟踪中包含拒绝处理程序函数本身(灰色输出js:14:30
)。但浏览器似乎确实知道拒绝发生在哪里:还有另一个红色错误输出(Uncaught (in promise) null
),指向目标行(js:18
)。如何获取该线路信息?
后一个输出似乎是由浏览器的内部完成的,因为它无法通过console.error
像上面的示例中那样的覆盖来防止。正如MDNpromiseRejectionEvent.preventDefault()
上所解释的,只能通过调用来防止这种情况。但我无论如何都不想阻止它,而是检索它,例如用于记录目的。
现实世界用例:当然可以不依赖onunhandledrejection
事件处理程序,例如通过添加.catch()
短语或至少抛出throw new Error(null)
。但就我而言,我无法控制它,因为它是第三方代码。今天它在客户端浏览器上意外抛出(可能是库错误),并且自动错误报告不包含堆栈跟踪。我试图缩小上述根本问题的范围。谢谢!
编辑回应评论:
\n\n\n将第三方代码包装在 try/catch 中?\xe2\x80\x93 世界
\n
好点,但这没有帮助,因为拒绝实际上发生在回调内:
\n我希望我的程序例外发送到以下每个,最好是同时发送:
我怎样才能做到这一点?
我的尝试:
System.setErr(PrintStream err)
将所有例外转发给新流.我不能说多个流.
打电话System.setErr(PrintStream err)
给人工书面OutputStream
:
"你可以编写自己的流类转发到多个流,并在该类的实例上调用System.setOut" - Jeffrey Bosboom
我找到了一种方法来做到这一点.但这非常讨厌.它"收集" PrintStream
's write
-bytes,将它们放入一个吹气(500毫秒超时),最后显示给用户(Proceed
):
/* ErrorOutput.java */
public static t_ErrBuffer t_activeErrBuffer = new t_ErrBuffer("");
public static void setStdErrToFile(final File file) {
ps = new PrintStream(fos) {
@Override
public void write(byte[] buf, int off, int len) {
byte[] bn = new byte[len];
for (int i = off, j = 0; i < (len + off); i++, j++) …
Run Code Online (Sandbox Code Playgroud)我的 MYSQL-Table 有 3 个表。
我无法让给定的示例工作。
在Java 中,使用java.sql.*
,我想知道整个数据库还剩下多少空间,因为空间非常有限。
这是我的方法:
// this.conn = DriverManager.getConnection("jdbc:mysql://......");
public long remainingSpace() {
String sql = "SELECT table_schema AS \"Database\", "
+ "ROUND(SUM(data_length + index_length) / 1024, 2) AS \"Size (KB)\" "
+ "FROM information_schema.TABLES GROUP BY table_schema;";
ResultSet rs;
PreparedStatement prpSttm = this.conn.prepareStatement(sql);
rs = prpSttm.executeQuery();
rs.next();
long remainingSpace = rs.getInt("Size (KB)");
return remainingSpace;
}
Run Code Online (Sandbox Code Playgroud)
这将返回9
(KB)。
phpMyAdmin 反而告诉我我的64 KiB
一张表中有数据:
如何在 Java 中获得正确的大小?
鉴于我有一些课程,其中包含各种领域:
class MyClass {
private String s;
private MySecondClass c;
private Collection<someInterface> coll;
// ...
@Override public int hashCode() {
// ????
}
}
Run Code Online (Sandbox Code Playgroud)
而且,我确实有各种各样的物品,我想存放在一个HashMap
.对于这一点,我需要的hashCode()
的MyClass
.
我得去到各个领域和各个父类递归,以确保它们都实现hashCode()
正常,否则hashCode()
的MyClass
可能没有考虑到一些值.这是正确的吗?
我该怎么办Collection
?我可以一直依赖它的hashCode()
方法吗?它是否会考虑我的someInterface
对象中可能存在的所有子值?
我在这里打开了关于唯一ID对象的实际问题的第二个问题:如何为对象生成(几乎)唯一的哈希ID?
澄清:
你班上有什么或多或少的不合理吗?字符串s?然后只将其用作哈希码.
如果coll
更改其中一个对象中的任何值,则两个对象的MyClass hashCode()肯定会有所不同.如果两个对象的所有字段都存储相同的值,HashCode应该只返回相同的值.基本上,在MyClass对象上进行一些耗时的计算.如果计算已经使用完全相同的值在前一段时间完成,我想多余时间.为此,如果结果已经可用,我想查看HashMap.
你会在HashMap中使用MyClass作为键还是值?如果是键,则必须覆盖equals()和hashCode()
因此,我使用hashCode OF MyClass作为HashMap中的键.值(计算结果)将是不同的,如整数(简化).
您认为平等对多个馆藏意味着什么?它应该依赖于元素排序吗?它应该只取决于存在的绝对元素吗?
这不会取决于存储的Collection类型coll
吗?虽然我觉得订购并不重要,不
你从这个网站得到的回应是华丽的.谢谢你们
@AlexWien取决于该集合的项是否是该类的等价定义的一部分.
是的,是的,他们是.
文件Files.move(Path source, Path target, CopyOption... options)
说:
或者,假设我们要将文件移动到新目录,保留相同的文件名,并替换目录中该名称的任何现有文件:
Run Code Online (Sandbox Code Playgroud)Path source = ... Path newdir = ... Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
为什么我在以下代码中出现错误呢?
Files.move(Paths.get("outputFilePath"), Paths.get("inputFilePath"), REPLACE_EXISTING);
Run Code Online (Sandbox Code Playgroud)
REPLACE_EXISTING无法解析为变量
<?php
$URL="http://cor-forum.de/forum/images/smilies/zombie.png";
list($width, $height) = getimagesize($URL);
echo 'width: '.$width.'<br>
height: '.$height;
?>
Run Code Online (Sandbox Code Playgroud)
这导致以下输出:
width:
height:
Run Code Online (Sandbox Code Playgroud)
编辑,我得到以下警告:
警告:getimagesize(http://cor-forum.de/forum/images/smilies/zombie.png):无法打开流:HTTP请求失败!HTTP/1.1 403禁止在第6行的/home/webpages/lima-city/regnum-forum/html/DATEIEN/scheisstest.php中
- 如果我使用另一张图片,它会显示正确的值
$URL='http://getfavicon.appspot.com/http://google.com?defaulticon=1pxgif';
Run Code Online (Sandbox Code Playgroud)
编辑:我想在论坛中启用外部图像,但我想先检查它们的大小.那么,我该怎么做才能获得图像的大小,其服务器是"阻止我"?
编辑:allow_url_fopen设置为ON,是的.
在 Chrome 上(虽然不是在 Firefox 上),
JSON.parse("")
Run Code Online (Sandbox Code Playgroud)
因“脚本错误”而失败。您可以通过运行上面的脚本或运行https://jsfiddle.net/xupf27nh/1/来重现它。为什么会出现脚本错误?这里没有cors活动...?
try {
JSON.parse("")
} catch(e) {
throw e;
}
Run Code Online (Sandbox Code Playgroud)
正确打印错误信息"message": "Uncaught SyntaxError: Unexpected end of JSON input",
。为什么这次不一样?为什么不
a.b.c.d.e.f()
Run Code Online (Sandbox Code Playgroud)
失败script error
但正确显示错误消息?
java ×4
exception ×2
javascript ×2
angular ×1
autohotkey ×1
chromium ×1
collections ×1
database ×1
file ×1
getimagesize ×1
hashcode ×1
html ×1
move ×1
mysql ×1
php ×1
promise ×1
replace ×1
stack-trace ×1
stderr ×1
stdout ×1
throw ×1
windows-10 ×1